то как вы на практике будете находить её ЖНФ и матрицу перехода?
Лёгких путей тут нет -- при любом варианте будет то или иное, но занудство.
Я бы предложил так (это будет тоже занудно, но, во всяком случае, логически вполне прозрачно). Допустим, мы знаем все собственные числа и все собственные подпространства. Это в любом случае необходимо, и это легко -- во всяком случае, что касается собственных подпространств; а что касается поиска собственных чисел -- это вопрос отдельный. (Ну и проблемы, вызываемые приближённостью вычислений, оставим в стороне.)
Так вот, пусть у нас есть собственное подпространство

(ну т.е. с практической точки зрения -- есть его базис). Обозначим

(имеется в виду пересечение с образом степени матрицы; в частности,

). Практически мы, конечно, опять же ищем базисы этих подпространств. Подпространства

монотонно (не обязательно строго) сужаются и рано или поздно окажутся тривиальными; вот и считаем до тех пор, пока не наткнёмся на тривиальное.
Теперь для каждого

определим

как дополнение

до

(т.е. прямая сумма

должна совпадать с

). Практически мы опять же, конечно, ищем базисы в

. Это нетрудная процедура: фактически придётся просто найти общее решение некоторой однородной системы. Подпространства

определены неоднозначно, но это не имеет значения; принципиально, что однозначно определены их размерности.
Объединение базисов по всем

-- это некоторый базис во всём собственном подпространстве. Из каждого базисного вектора

вытягиваем циклическую цепочку, решая последовательно системы уравнений

,

-- до тех пор, пока решение такой системы существует. Так вот, набор всех получившихся векторов и будет жордановым базисом (поднабор базисных векторов, образующих каждую циклическую цепочку, породит соответствующую жорданову клетку).
Главная трудность тут -- это нахождение пересечения подпространств; задачка эта действительно противная. Но -- стандартная.
-- Вс апр 24, 2011 12:34:09 --Да, кстати:
В принципе, по-моему, для составления ЖНФ этого достаточно: находим корни хар. многочлена, затем находим ранги матриц

и пишем ЖНФ.
Этого отнюдь недостаточно. На данный момент Вы действительно знаете количество жордановых клеток, однако пока что понятия не имеете об их размерах.