@sym
: J =
jordan (A)
¶@sym
: [V, J] =
jordan (A)
¶Symbolic Jordan canonical form of a matrix.
Example:
A = sym ([6 5 -2 -3; -3 -1 3 3; 2 1 -2 -3; -1 1 5 5]); jordan (A) ⇒ ans = (sym 4×4 matrix) ⎡2 1 0 0⎤ ⎢ ⎥ ⎢0 2 0 0⎥ ⎢ ⎥ ⎢0 0 2 1⎥ ⎢ ⎥ ⎣0 0 0 2⎦
We can also compute the generalized eigenvectors:
[V, J] = jordan (A) ⇒ V = (sym 4×4 matrix) ⎡4 1 5 0⎤ ⎢ ⎥ ⎢-3 0 -3 1⎥ ⎢ ⎥ ⎢2 0 1 0⎥ ⎢ ⎥ ⎣-1 0 1 0⎦ ⇒ J = (sym 4×4 matrix) ⎡2 1 0 0⎤ ⎢ ⎥ ⎢0 2 0 0⎥ ⎢ ⎥ ⎢0 0 2 1⎥ ⎢ ⎥ ⎣0 0 0 2⎦
A*V - V*J ⇒ ans = (sym 4×4 matrix) ⎡0 0 0 0⎤ ⎢ ⎥ ⎢0 0 0 0⎥ ⎢ ⎥ ⎢0 0 0 0⎥ ⎢ ⎥ ⎣0 0 0 0⎦
The generalized eigenvectors are the columns of V. Those corresponding to a Jordan block form a cycle. We can check those columns corresponding to the leftmost Jordan block:
lambda = J(2, 2) ⇒ lambda = (sym) 2 B = A - lambda*eye (4); v2 = V(:, 2) ⇒ v2 = (sym 4×1 matrix) ⎡1⎤ ⎢ ⎥ ⎢0⎥ ⎢ ⎥ ⎢0⎥ ⎢ ⎥ ⎣0⎦ v1 = B * v2 ⇒ v1 = (sym 4×1 matrix) ⎡4 ⎤ ⎢ ⎥ ⎢-3⎥ ⎢ ⎥ ⎢2 ⎥ ⎢ ⎥ ⎣-1⎦ v0 = B * v1 ⇒ v0 = (sym 4×1 matrix) ⎡0⎤ ⎢ ⎥ ⎢0⎥ ⎢ ⎥ ⎢0⎥ ⎢ ⎥ ⎣0⎦
See also: @sym/charpoly, @sym/eig.
Package: symbolic