Skip to content

System of Linear Difference Equations


Definition

A system of linear difference equations (first order, constant coefficients) is

xt+1=Axt+bt,t=0,1,2,…,\boldsymbol{x}_{t+1}=A\boldsymbol{x}_t+\boldsymbol{b}_t,\qquad t=0,1,2,\ldots,

where xt∈Rn\boldsymbol{x}_t\in\mathbb{R}^n is the state vector, AA is a fixed real n×nn\times n matrix and (bt)(\boldsymbol{b}_t) is a given sequence of forcing vectors. It is homogeneous if bt=0\boldsymbol{b}_t=\boldsymbol{0} for all tt. For every initial vector x0\boldsymbol{x}_0 the unique solution is

xt=Atx0+∑s=0t−1At−1−sbs.\boldsymbol{x}_t=A^t\boldsymbol{x}_0+\sum_{s=0}^{t-1}A^{t-1-s}\boldsymbol{b}_s.

Interpretation

Entry aija_{ij} says how much variable jj today contributes to variable ii in the next period. The system is the vector form of the first-order linear difference equation: the number aa becomes the matrix AA, and ata^t becomes the matrix power AtA^t.

The iterates x_0 = (1,0), x_1 = (0.9,0.1), x_2, … of the population-shares system move along the dashed line x_1 + x_2 = 1 towards x* = (2/3,1/3) on the line through (2,1).

The figure plots the population-shares example below. Writing x0=(1,0)⊤\boldsymbol{x}_0=(1,0)^{\top} in the eigenvector basis, the component along (2,1)⊤(2,1)^{\top} (λ=1\lambda=1) never changes, while the component along (1,−1)⊤(1,-1)^{\top} (λ=0.7\lambda=0.7) is multiplied by 0.70.7 each period. So the iterates move along the dashed line through x0\boldsymbol{x}_0 in direction (1,−1)⊤(1,-1)^{\top}, with steps shrinking by the factor 0.70.7, towards x∗=(2/3,1/3)⊤\boldsymbol{x}^*=(2/3,1/3)^{\top} on the blue eigenvector line.

Drag x0\boldsymbol{x}_0 or change the entries of AA: in eigenvector coordinates each component is multiplied by its own eigenvalue every period. With the default matrix the component for λ=0.7\lambda=0.7 dies out and the iterates settle on the eigenvector line of λ=1\lambda=1.

Powers of AA are hard to read off directly, which is where eigenvalues and eigenvectors come in. If Ap=λpA\boldsymbol{p}=\lambda\boldsymbol{p}, then Atp=λtpA^t\boldsymbol{p}=\lambda^t\boldsymbol{p}: along an eigenvector the system behaves like a scalar equation. When AA has nn independent eigenvectors, write x0\boldsymbol{x}_0 in that basis and each component evolves separately. This is diagonalization applied to dynamics.

Any scalar higher-order equation can be written as such a system with a companion matrix, so the system covers every linear constant-coefficient difference equation. A common mistake is to compute AtA^t entrywise, as if (At)ij=aijt(A^t)_{ij}=a_{ij}^t; this is only true for diagonal matrices.


Key Results

  • If A=PDP−1A=PDP^{-1} with D=diag⁡(λ1,…,λn)D=\operatorname{diag}(\lambda_1,\ldots,\lambda_n), then At=PDtP−1A^t=PD^tP^{-1} and the homogeneous solution is xt=∑i=1nciλitpi\displaystyle \boldsymbol{x}_t=\sum_{i=1}^n c_i\lambda_i^t\boldsymbol{p}_i with c=P−1x0\boldsymbol{c}=P^{-1}\boldsymbol{x}_0.
  • For a nondiagonalizable AA, the Jordan normal form adds terms tjλtt^j\lambda^t (λ≠0\lambda\ne0) for 0≤j<0\le j< the size of the Jordan block.
  • With constant forcing b\boldsymbol{b}, an equilibrium solves (I−A)x∗=b(I-A)\boldsymbol{x}^*=\boldsymbol{b}; it is unique if and only if 11 is not an eigenvalue of AA. Then xt−x∗=At(x0−x∗)\boldsymbol{x}_t-\boldsymbol{x}^*=A^t(\boldsymbol{x}_0-\boldsymbol{x}^*).
  • Nonreal eigenvalues of the real matrix AA come in conjugate pairs and produce oscillating real solutions.
  • The long-run behaviour is governed by the eigenvalues of largest modulus; see stability.

Examples

Diagonalizable system. Let A=(2112)A=\begin{pmatrix}2&1\\1&2\end{pmatrix}, with eigenvalues 3,13,1 and eigenvectors p1=(1,1)⊤\boldsymbol{p}_1=(1,1)^{\top}, p2=(1,−1)⊤\boldsymbol{p}_2=(1,-1)^{\top}. For x0=(3,1)⊤=2p1+p2\boldsymbol{x}_0=(3,1)^{\top}=2\boldsymbol{p}_1+\boldsymbol{p}_2,

xt=2⋅3t(11)+(1−1).\boldsymbol{x}_t=2\cdot3^t\begin{pmatrix}1\\1\end{pmatrix}+\begin{pmatrix}1\\-1\end{pmatrix}.

Check: x1=Ax0=(7,5)⊤=(6+1, 6−1)⊤\boldsymbol{x}_1=A\boldsymbol{x}_0=(7,5)^{\top}=(6+1,\,6-1)^{\top}.

Population shares. Each period 10%10\% of region 1 moves to region 2 and 20%20\% of region 2 moves to region 1: A=(0.90.20.10.8)A=\begin{pmatrix}0.9&0.2\\0.1&0.8\end{pmatrix}. The eigenvalues are 11 (eigenvector (2,1)⊤(2,1)^{\top}) and 0.70.7 (eigenvector (1,−1)⊤(1,-1)^{\top}). From x0=(1,0)⊤=13(2,1)⊤+13(1,−1)⊤\boldsymbol{x}_0=(1,0)^{\top}=\tfrac{1}{3}(2,1)^{\top}+\tfrac{1}{3}(1,-1)^{\top},

xt=13(21)+13(0.7)t(1−1)→(2/31/3).\boldsymbol{x}_t=\tfrac{1}{3}\begin{pmatrix}2\\1\end{pmatrix}+\tfrac{1}{3}(0.7)^t\begin{pmatrix}1\\-1\end{pmatrix} \to\begin{pmatrix}2/3\\1/3\end{pmatrix}.

Check: x1=(0.9,0.1)⊤\boldsymbol{x}_1=(0.9,0.1)^{\top} both ways. This is a two-state Markov chain written for column vectors.


Prerequisites



Sources

Aliases: linear system of difference equations, vector difference equation, linear discrete-time system, discrete-time linear system Keywords: x_{t+1} = A x_t + b_t, x_t = A^t x_0, A^t = P D^t P^{-1}, equilibrium (I - A) x* = b, eigenvector decomposition of the solution Symbols: element of, lambda, real numbers, sum

Last updated: 22 October 2026 19:04