---
title: Discrete and Continuous Dynamical Systems
module: Eigenvalues and Eigenvectors
moduleNumber: 5
lessonNumber: 6
order: 506
summary: >
  Eigenvalues govern the long-term behavior of a system that evolves by x
  becomes A x or by x prime equals A x. An eigenvector basis decouples both
  kinds of system into independent scalar equations; the eigenvalues then
  classify the origin as attractor, repeller, saddle, or spiral, and the
  dominant eigenpair fixes the growth rate and limiting direction.
topics: [Eigenvalues and Eigenvectors]
sources:
  - book: Lay
    ref: "§5.6 Discrete Dynamical Systems; §5.7 Applications to Differential Equations"
---

A system that changes in fixed time steps by $x_{k+1} = A x_k$, or continuously by
$x'(t) = A x(t)$, has its entire future determined by the matrix $A$ and a starting
state. Eigenvalues determine how the state grows, decays, and reorients over time. The
method for both cases is the same: write the initial state in an eigenvector basis,
and the coupled system decouples into independent scalar equations.

## The eigenvector decomposition

Suppose $A$ is diagonalizable with eigenvectors $v_1, \dots, v_n$ and eigenvalues
$\lambda_1, \dots, \lambda_n$, ordered so that
$\vert\lambda_1\vert \geq \vert\lambda_2\vert \geq \cdots \geq \vert\lambda_n\vert$.
Any initial vector expands uniquely as $x_0 = c_1 v_1 + \cdots + c_n v_n$. Because each
$v_i$ is an eigenvector,

$$
x_k = A^k x_0 = c_1 (\lambda_1)^k v_1 + c_2 (\lambda_2)^k v_2 + \cdots
     + c_n (\lambda_n)^k v_n.
$$

Each term evolves on its own, scaled by its eigenvalue raised to the $k$th power. The
long-term behavior is determined by whichever factors $(\lambda_i)^k$ are largest.

> **Dominant-eigenvalue behavior.** If $\vert\lambda_1\vert > \vert\lambda_j\vert$ for
> all $j \geq 2$ and $c_1 \neq 0$, then for large $k$,
> $$
> x_k \approx c_1 (\lambda_1)^k v_1, \qquad x_{k+1} \approx \lambda_1 x_k.
> $$
> The system eventually grows by the factor $\lambda_1$ each step, and the ratio of
> the entries of $x_k$ approaches the ratio of the entries of $v_1$.

> **Worked example (predator-prey).** Let $x_k = (O_k, R_k)$ track owls and (thousands
> of) wood rats under $x_{k+1} = A x_k$ with
> $$
> A = \begin{bmatrix} 0.5 & 0.4 \\ -0.104 & 1.1 \end{bmatrix}.
> $$
>
> The eigenvalues are $\lambda_1 = 1.02$ and $\lambda_2 = 0.58$, with eigenvectors
> $v_1 = (10, 13)$ and $v_2 = (5, 1)$. Since $(0.58)^k \to 0$,
> $$
> x_k = c_1 (1.02)^k \begin{bmatrix} 10 \\ 13 \end{bmatrix}
>     + c_2 (0.58)^k \begin{bmatrix} 5 \\ 1 \end{bmatrix}
>     \;\longrightarrow\; c_1 (1.02)^k \begin{bmatrix} 10 \\ 13 \end{bmatrix}.
> $$
> Both populations grow about $2\%$ per month and settle into the ratio $10$ owls to
> $13$ thousand rats: the dominant eigenvalue sets the growth rate, its eigenvector the
> eventual proportions.

$$
% caption: Owl-rat trajectories grow along the dominant eigenvector v1 (ratio 10 to 13);
% off-line starts bend toward that direction as the v2 component decays.
\begin{tikzpicture}[>=stealth, scale=1.0, font=\footnotesize]
  \definecolor{acc}{HTML}{4A6FA5}
  \definecolor{red}{HTML}{B0413E}
  \draw[->, black] (0,0) -- (4.4,0) node[right, black!70] {$O$ (owls)};
  \draw[->, black] (0,0) -- (0,4.4) node[above, black!70] {$R$ (rats)};
  \draw[acc, thick] (0,0) -- (3.1,4.03);
  \node[acc, anchor=south east] at (3.05,3.6) {$v_1$: ratio 10 : 13};
  \draw[->, acc, very thick] (1.5,1.95) -- (2.2,2.86);
  \draw[->, red, thick] (3.3,0.8) .. controls (3.1,2.0) and (2.75,2.8) .. (2.6,3.5);
  \draw[->, red, thick] (0.8,2.6) .. controls (1.4,2.9) and (1.9,3.25) .. (2.3,3.6);
  \fill[red] (3.3,0.8) circle (1.7pt);
  \fill[red] (0.8,2.6) circle (1.7pt);
\end{tikzpicture}
$$

## Decoupling by change of variable

The eigenvector decomposition is a change of variable. With $P = [\,v_1 \; \cdots \;
v_n\,]$ and $A = P D P^{-1}$, define $y_k = P^{-1} x_k$, equivalently $x_k = P y_k$.
Substituting into $x_{k+1} = A x_k$,

$$
P y_{k+1} = A P y_k = P D P^{-1} P y_k = P D y_k
\implies y_{k+1} = D y_k.
$$

In the $y$-coordinates the system is diagonal: $y_i(k+1) = \lambda_i\, y_i(k)$, so each
component evolves independently as $y_i(k) = (\lambda_i)^k y_i(0)$. The vector $y_k$ is
just the coordinate vector of $x_k$ in the eigenvector basis. Working on graph paper
whose axes point along $v_1$ and $v_2$ makes the tangled motion of $A$ look like plain
axis-parallel scaling.

$$
% caption: The change of variable $y = Q x$, with $Q = P^{-1}$, replaces the coupled map
% $A$ with the diagonal map $D$; each eigencoordinate then evolves on its own.
\begin{tikzpicture}[>=stealth, font=\footnotesize,
  b/.style={draw, minimum width=14mm, minimum height=10mm, align=center}]
  \definecolor{acc}{HTML}{4A6FA5}
  \node[b] (xk) at (0,1.6) {$x_k$};
  \node[b] (xk1) at (4.6,1.6) {$x_{k+1}$};
  \node[b] (yk) at (0,0) {$y_k$};
  \node[b, draw=acc, text=acc, thick] (yk1) at (4.6,0) {$y_{k+1}$};
  \draw[->, thick] (xk) -- (xk1) node[midway, above] {multiply by $A$};
  \draw[->, thick] (xk) -- (yk) node[midway, left] {$Q$};
  \draw[->, thick] (yk1) -- (xk1) node[midway, right] {$P$};
  \draw[->, acc, very thick] (yk) -- (yk1) node[midway, below, acc] {multiply by $D$ (decoupled)};
\end{tikzpicture}
$$

## Classifying the origin (discrete case)

For a $2 \times 2$ real matrix with real eigenvalues, the sequence $x_0, x_1, x_2,
\dots$ traces a **trajectory** in the plane, and the eigenvalue magnitudes classify
the origin.

- **Attractor.** Both $\vert\lambda_1\vert, \vert\lambda_2\vert < 1$. Every trajectory
  tends to $0$. The direction of slowest approach is the eigenvector of the
  larger-magnitude eigenvalue; trajectories become tangent to it.
- **Repeller.** Both $\vert\lambda_1\vert, \vert\lambda_2\vert > 1$. Every nonzero
  trajectory is unbounded and moves away from $0$, fastest along the eigenvector of the
  larger-magnitude eigenvalue.
- **Saddle point.** One magnitude exceeds $1$ and the other is below $1$. Trajectories
  are drawn in along the eigenvector of the small eigenvalue and pushed out along the
  eigenvector of the large one.

$$
% caption: Phase portraits for a diagonal $A$: attractor (both eigenvalues below 1),
% repeller (both above 1), and saddle (one of each), with arrows on the eigen-axes.
\begin{tikzpicture}[>=stealth, scale=0.62, font=\scriptsize]
  \definecolor{acc}{HTML}{4A6FA5}
  \definecolor{red}{HTML}{B0413E}
  % attractor
  \begin{scope}
    \draw[black] (-2,0) -- (2,0); \draw[black] (0,-2) -- (0,2);
    \foreach \s in {1.6,1.1,0.7} \draw[acc, thick] (\s,\s) to[bend right=20] (0.12,0.12);
    \foreach \s in {1.6,1.1,0.7} \draw[acc, thick] (-\s,\s) to[bend left=20] (-0.12,0.12);
    \foreach \s in {1.6,1.1,0.7} \draw[acc, thick] (\s,-\s) to[bend left=20] (0.12,-0.12);
    \foreach \s in {1.6,1.1,0.7} \draw[acc, thick] (-\s,-\s) to[bend right=20] (-0.12,-0.12);
    \fill[black] (0,0) circle (2.4pt);
    \node at (0,-2.7) {attractor};
  \end{scope}
  % repeller
  \begin{scope}[xshift=6cm]
    \draw[black] (-2,0) -- (2,0); \draw[black] (0,-2) -- (0,2);
    \foreach \a in {30,60,120,150,210,240,300,330}
      \draw[->, red, thick] ({0.3*cos(\a)},{0.3*sin(\a)}) -- ({1.9*cos(\a)},{1.9*sin(\a)});
    \fill[black] (0,0) circle (2.4pt);
    \node at (0,-2.7) {repeller};
  \end{scope}
  % saddle
  \begin{scope}[xshift=12cm]
    \draw[black] (-2,0) -- (2,0); \draw[black] (0,-2) -- (0,2);
    \draw[->, red, thick] (0.3,0) -- (1.9,0); \draw[->, red, thick] (-0.3,0) -- (-1.9,0);
    \draw[->, acc, thick] (0,1.9) -- (0,0.3); \draw[->, acc, thick] (0,-1.9) -- (0,-0.3);
    \draw[black] (1.5,0.4) to[bend right=25] (0.4,1.5);
    \draw[black] (-1.5,0.4) to[bend left=25] (-0.4,1.5);
    \fill[black] (0,0) circle (2.4pt);
    \node at (0,-2.7) {saddle point};
  \end{scope}
\end{tikzpicture}
$$

> **Worked example (saddle).** Classify the origin for
> $A = \begin{bmatrix} 1.25 & -0.75 \\ -0.75 & 1.25 \end{bmatrix}$.
>
> The eigenvalues are $2$ and $0.5$, with eigenvectors $v_1 = (1, -1)$ and
> $v_2 = (1, 1)$, so $x_k = c_1 2^k v_1 + c_2 (0.5)^k v_2$. One eigenvalue exceeds $1$
> and the other is below it, so the origin is a saddle: motion along $v_1$ grows, motion
> along $v_2$ decays.

When the eigenvalues are complex, the $2 \times 2$ system spirals, as developed for
[complex eigenvalues](/linear-algebra/eigenvalues/complex-eigenvalues): modulus below
$1$ spirals inward (attractor), above $1$ spirals outward (repeller), equal to $1$
gives closed elliptical orbits.

$$
% caption: Complex eigenvalues rotate each step; modulus below 1 spirals the iterates
% into the origin (spiral sink), modulus above 1 spirals them out (spiral source).
\begin{tikzpicture}[>=stealth, scale=1.0, font=\footnotesize]
  \definecolor{acc}{HTML}{4A6FA5}
  \definecolor{red}{HTML}{B0413E}
  \begin{scope}
    \draw[black] (-2,0) -- (2,0); \draw[black] (0,-2) -- (0,2);
    \draw[acc!55, thick] plot[domain=0:760,samples=120]
      ({(1.85*exp(-0.0019*\x))*cos(\x)},{(1.85*exp(-0.0019*\x))*sin(\x)});
    \foreach \a/\r in {0/1.85, 70/1.44, 140/1.12, 210/0.88, 280/0.68, 350/0.53, 420/0.42}
      \fill[acc] ({\r*cos(\a)},{\r*sin(\a)}) circle (1.7pt);
    \fill[black] (0,0) circle (1.6pt);
    \node at (0,-2.5) {spiral sink};
  \end{scope}
  \begin{scope}[xshift=6cm]
    \draw[black] (-2,0) -- (2,0); \draw[black] (0,-2) -- (0,2);
    \draw[red!55, thick] plot[domain=0:760,samples=120]
      ({(0.30*exp(0.0024*\x))*cos(\x)},{(0.30*exp(0.0024*\x))*sin(\x)});
    \foreach \a/\r in {0/0.30, 70/0.40, 140/0.53, 210/0.70, 280/0.93, 350/1.23, 420/1.63}
      \fill[red] ({\r*cos(\a)},{\r*sin(\a)}) circle (1.7pt);
    \fill[black] (0,0) circle (1.6pt);
    \node at (0,-2.5) {spiral source};
  \end{scope}
\end{tikzpicture}
$$

## Continuous systems

Many applied problems have several quantities varying continuously and coupled through
their rates of change:

$$
x'(t) = A x(t),
\qquad
x(t) = \begin{bmatrix} x_1(t) \\ \vdots \\ x_n(t) \end{bmatrix},
\qquad
x'(t) = \begin{bmatrix} x_1'(t) \\ \vdots \\ x_n'(t) \end{bmatrix}.
$$

This is linear: if $u$ and $v$ solve $x' = Ax$, so does $cu + dv$. The solution set is
an $n$-dimensional space of vector-valued functions, and a fundamental set of $n$
independent solutions is a basis for it.

The standard guess is an exponential along a fixed direction,
$x(t) = v e^{\lambda t}$. Then $x'(t) = \lambda v e^{\lambda t}$ and
$Ax(t) = A v e^{\lambda t}$, so $x' = Ax$ holds if and only if $Av = \lambda v$: each
eigenpair supplies a solution.

> **Eigenfunctions.** For each eigenpair $(\lambda, v)$ of $A$, the function
> $x(t) = v e^{\lambda t}$ solves $x' = Ax$. If $A$ is diagonalizable with independent
> eigenvectors $v_1, \dots, v_n$, the general solution is
> $$
> x(t) = c_1 v_1 e^{\lambda_1 t} + \cdots + c_n v_n e^{\lambda_n t},
> $$
> with $c_1, \dots, c_n$ fixed by the initial condition $x(0) = x_0$.

The change of variable $y = P^{-1} x$ decouples the continuous system exactly as in the
discrete case: it turns $x' = Ax$ into $y' = Dy$, i.e. $y_i' = \lambda_i y_i$, whose
solution $y_i(t) = c_i e^{\lambda_i t}$ is elementary calculus.

> **Worked example ($RC$ circuit).** Solve $x' = Ax$ with
> $A = \begin{bmatrix} -1.5 & 0.5 \\ 1 & -1 \end{bmatrix}$ and $x(0) = (5, 4)$.
>
> The eigenvalues are $-0.5$ and $-2$, with eigenvectors $(1, 2)$ and $(1, -1)$.
> Fitting the initial condition gives $c_1 = 3$, $c_2 = 2$, so
> $$
> x(t) = 3 \begin{bmatrix} 1 \\ 2 \end{bmatrix} e^{-0.5 t}
>      - 2 \begin{bmatrix} 1 \\ -1 \end{bmatrix} e^{-2 t}.
> $$
> Both terms decay to $0$; the $e^{-2t}$ term decays faster, so trajectories become
> asymptotic to the line through $(1, 2)$.

## Classifying the origin (continuous case)

For continuous systems it is the **sign of the real part** of each eigenvalue that
matters, because $e^{\lambda t} \to 0$ precisely when $\operatorname{Re}\lambda < 0$.
The stability threshold has moved from the unit circle to the imaginary axis.

| Eigenvalues of $A$ (real $2\times 2$) | Origin | Trajectories |
| --- | --- | --- |
| both real, negative | attractor / sink | decay into $0$ |
| both real, positive | repeller / source | flee from $0$ |
| real, opposite signs | saddle point | in along one axis, out along the other |
| complex, negative real part | spiral sink | spiral inward |
| complex, positive real part | spiral source | spiral outward |
| complex, zero real part | center | closed ellipses |

$$
% caption: A continuous saddle: negative-eigenvalue direction $v_2$ pulls trajectories
% in, positive-eigenvalue direction $v_1$ pushes them out.
\begin{tikzpicture}[>=stealth, scale=0.8, font=\footnotesize]
  \definecolor{acc}{HTML}{4A6FA5}
  \definecolor{red}{HTML}{B0413E}
  \draw[black] (-2.6,0) -- (2.6,0); \draw[black] (0,-2.4) -- (0,2.4);
  \draw[red!70, thick] (-2.4,-1.6) -- (2.4,1.6);
  \draw[->, red, thick] (0.9,0.6) -- (1.9,1.27) node[right, red] {$v_1$ out};
  \draw[->, red, thick] (-0.9,-0.6) -- (-1.9,-1.27);
  \draw[acc!70, thick] (-1.6,2.4) -- (1.6,-2.4);
  \draw[->, acc, thick] (1.1,-1.65) -- (0.4,0.6) node[above right, acc] {$v_2$ in};
  \draw[->, acc, thick] (-1.1,1.65) -- (-0.4,-0.6);
  \foreach \s in {1,-1} \draw[black] (\s*2.2,\s*1.0) to[bend right=15] (\s*1.0,-\s*2.0);
  \fill[black] (0,0) circle (2.2pt);
\end{tikzpicture}
$$

## Discrete versus continuous

The two settings run in parallel, with one substitution: powers $\lambda^k$ become
exponentials $e^{\lambda t}$, and the stability threshold moves from the unit circle
to the imaginary axis.

| | Discrete $x_{k+1} = A x_k$ | Continuous $x' = A x$ |
| --- | --- | --- |
| Solution | $x_k = \sum c_i \lambda_i^k v_i$ | $x(t) = \sum c_i e^{\lambda_i t} v_i$ |
| Decay to $0$ requires | $\vert\lambda_i\vert < 1$ | $\operatorname{Re}\lambda_i < 0$ |
| Growth requires | $\vert\lambda_i\vert > 1$ | $\operatorname{Re}\lambda_i > 0$ |
| Neutral / periodic | $\vert\lambda_i\vert = 1$ | $\operatorname{Re}\lambda_i = 0$ |
| Rotation from | complex $\lambda$ | complex $\lambda$ |

Both analyses depend on having an eigenvector basis. When the dominant eigenvalue is
all that is wanted — the growth rate and limiting direction — it can be estimated
directly without solving the characteristic equation, which is the
[power method](/linear-algebra/eigenvalues/power-method) of the final lesson.[^lay56][^lay57]

[^lay56]: **Lay**, _Linear Algebra and Its Applications_, 5th ed., §5.6 — Discrete Dynamical Systems: the eigenvector decomposition of $x_0$, decoupling by $y = P^{-1} x$, and the attractor/repeller/saddle classification of the origin from eigenvalue magnitudes.
[^lay57]: **Lay**, _Linear Algebra and Its Applications_, 5th ed., §5.7 — Applications to Differential Equations: eigenfunctions $v e^{\lambda t}$ solving $x' = Ax$, decoupling into $y' = Dy$, complex-eigenvalue spirals, and origin classification by the sign of $\operatorname{Re}\lambda$.
