Жорданова каноническая форма

Жорданова каноническая форма (Жорданова нормальная форма) следует из попыток преобразовать матрицу в ее диагональную форму преобразованием подобия. Для данного матричного A найдите несингулярный матричный V, так, чтобы inv(V)*A*V, или, более кратко, J = V\A*V, был “максимально близко к диагонали”. Почти для всех матриц Жорданова каноническая форма является диагональной матрицей собственных значений, и столбцы матрицы преобразования являются собственными векторами. Это всегда происходит, если матрица симметрична или если она имеет отличные собственные значения. Некоторые несимметричные матрицы с несколькими собственными значениями не могут быть преобразованы в диагональные формы. Жорданова форма имеет собственные значения на своей диагонали, но некоторые супердиагональные элементы один вместо нуля. Оператор

J = jordan(A)

вычисляет Жорданову каноническую форму A. Оператор

[V,J] = jordan(A)

также вычисляет преобразование подобия где J = inv(V)*A*V. Столбцы V являются обобщенными собственными векторами A.

Жорданова форма чрезвычайно чувствительна к изменениям. Почти любое изменение в A заставляет свою Жорданову форму быть диагональной. Это подразумевает, что A должен быть известен точно (т.е. без ошибки округления, и т.д.) и делает очень трудным вычислить Жорданову форму надежно с арифметикой с плавающей точкой. Таким образом вычисление Жордановой формы со значениями с плавающей точкой ненадежно и не рекомендуемое.

Например, позволить

A = sym([12,32,66,116;-25,-76,-164,-294;
         21,66,143,256;-6,-19,-41,-73])
A =
[  12,  32,   66,  116]
[ -25, -76, -164, -294]
[  21,  66,  143,  256]
[  -6, -19,  -41,  -73]

Затем

[V,J] = jordan(A)

производит

V =
[  4, -2,   4,  3]
[ -6,  8, -11, -8]
[  4, -7,  10,  7]
[ -1,  2,  -3, -2]
 
J =
[ 1, 1, 0, 0]
[ 0, 1, 0, 0]
[ 0, 0, 2, 1]
[ 0, 0, 0, 2]

Покажите, что J и inv(V)*A*V равны при помощи isequal. Функция isequal возвращает логический 1 (true), означающий, что входные параметры равны.

isequal(J, inv(V)*A*V)
ans =
  logical
   1

От J мы видим, что A имеет двойное собственное значение в 1, с одним Иорданским блоком и двойным собственным значением в 2, также с одним Иорданским блоком. Матрица имеет только два собственных вектора, V(:,1) и V(:,3). Они удовлетворяют

A*V(:,1) = 1*V(:,1)
A*V(:,3) = 2*V(:,3)

Другие два столбца V являются обобщенными собственными векторами класса 2. Они удовлетворяют

A*V(:,2) = 1*V(:,2) + V(:,1)
A*V(:,4) = 2*V(:,4) + V(:,3)

В математическом обозначении с v j = v(:,j), столбцы V и собственных значений удовлетворяют отношения

(Aλ1I)v2=v1

(Aλ2I)v4=v3.