Module 6: Eigenvalues
Not all matrices have real eigenvectors. When the characteristic polynomial has no real roots, the eigenvalues come in complex conjugate pairs — and the geometric behavior becomes rotational rather than stretching.
If the discriminant Δ=tr(A)2−4det(A)<0, the eigenvalues are:
These are complex conjugates: λ=a±bi. The real part a controls growth/decay; the imaginary part b controls rotation.
The modulus (magnitude) of the complex eigenvalue is:
Apply the matrix repeatedly — points orbit the origin:
The angle of rotation per step is θ=arctan(b/a) — the argument of the complex eigenvalue. A rotation matrix of angle θ has eigenvaluese±iθ=cosθ±isinθ.
Pick a preset and watch how points spiral (or orbit) under repeated application of the matrix. The dashed circle is the starting unit circle. Use the steps slider to see long-term behavior.
import numpy as np
A = np.array([[0.8, -0.4], [0.4, 0.8]])
eigenvalues = np.linalg.eigvals(A)
for lam in eigenvalues:
print(f"λ = {lam:.3f}, |λ| = {abs(lam):.3f}")
# λ = 0.800+0.400j, |λ| = 0.894 → stable (spirals in)Complex eigenvalues: λ = 1.1 ± 0.5i
|λ| = 1.208
|λ| > 1 — spirals outward