Предполагается знакомство с разделом ((:mapping:operator:jordan ЖОРДАНОВА НОРМАЛЬНАЯ ФОРМА)).
==Функция от матрицы==
~~TOC~~
В настоящем разделе матрица $ A_{} $ считается квадратной порядка $ n_{} $.
===Полином от матрицы ==
Сначала оптимизируем вычисление степени матрицы.
!!П!! **Пример 1.** Вычислить
$$
A^{100} \quad npu \quad
A=\left(
\begin{array}{rrrr}
1 &2 &1 &0 \\
1 & 1 & 0 &-1 \\
-2& 0 & 1 & 2 \\
0 & 2 & 1 & 1
\end{array}
\right) \ .
$$
**Решение.** Можно организовать вычисление $ A^{100} $ по алгоритму квадрирования-умножения, заимствованному из раздела ((:modular#вычисление_остатков_степенных_выражений "MОДУЛЯРНАЯ АРИФМЕТИКА")):
$$ A^{100}=\left( \left( \left( \left( \left( \left( A \right)^2 A \right)^2 \right)^2 \right)^2 A\right)^2 \right)^2 \ . $$
Имеем: $ \underline{100}_{_{10}}=\underline{1100100}_{_2} $
$$
\begin{array}{|c|c|c|c|c|}
\hline
j & 1 & 2 & 3 & 4 \\
\hline
{\mathfrak b}_j & 1 & 1 & 0 & 0 \\
\hline
& A & A^2 A & \left(A^3 \right)^2 & \left(A^6 \right)^2 \\
&
\left(
\begin{array}{rrrr}
1 &2 &1 &0 \\
1 & 1 & 0 &-1 \\
-2& 0 & 1 & 2 \\
0 & 2 & 1 & 1
\end{array}
\right)
&
\left(
\begin{array}{rrrr}
1 &6 & 3 &0 \\
3& 1 & 0 &-3 \\
-6& 0 & 1 & 6 \\
0 & 6 & 3 & 1
\end{array}
\right)
&
\left(
\begin{array}{rrrr}
1 & 12 & 6 &0 \\
6 & 1 & 0 &-6 \\
-12& 0 & 1 & 12 \\
0 & 12 & 6 & 1
\end{array}
\right)
&
\left(
\begin{array}{rrrr}
1 & 24 & 12 &0 \\
12 & 1 & 0 &-12 \\
-24& 0 & 1 & 24 \\
0 & 24 & 12 & 1
\end{array}
\right)
\\
\hline
\end{array}
$$
$$
\begin{array}{|c|c|c|}
\hline
5 &6 &7 \\
\hline
1 &0 & 0 \\
\hline
\left(A^{12} \right)^2 A &
\left(A^{25} \right)^2&
\left(A^{50} \right)^2 \\
\left(
\begin{array}{rrrr}
1 & 50 & 25 &0 \\
25 & 1 & 0 &-25 \\
-50& 0 & 1 & 50 \\
0 & 50 & 25 & 1
\end{array}
\right)
&
\left(
\begin{array}{rrrr}
1 & 100 & 50 &0 \\
50 & 1 & 0 &-50 \\
-100& 0 & 1 & 100 \\
0 & 100 & 50 & 1
\end{array}
\right)
&
\left(
\begin{array}{rrrr}
1 & 200 & 100 &0 \\
100 & 1 & 0 &-100 \\
-200& 0 & 1 & 200 \\
0 & 200 & 100 & 1
\end{array}
\right)
\\
\hline
\end{array}
$$
♦
Рассмотрим далее произвольный полином $ g(x)=b_0x^m+b_1x^{m-1}+\dots+b_m \in \mathbb C[x] $.
Вычисление его значения от матрицы $ A_{} $, т.е.
$$ g(A)=b_0A^m +b_1A^{m-1}+\dots+b_m E \ , $$
где $ E_{} $ --- единичная матрица того же порядка, что и $ A_{} $, может быть произведено с помощью
((:polynomial#схема_хорнера схемы Хорнера)) --- чтобы сэкономить на операции умножения матриц.
!!П!! **Пример 2.** Вычислить $ g(A)_{} $ для
$$ g(x)= 3\,x^4-x^3+2\,x^2-4\,x-1 \quad u \quad
A=\left( \begin{array}{rrr}
1 & -3 & 4 \\
3& 1 &8 \\
-4 & -8 & 1
\end{array}
\right) \ .
$$
**Решение.** Схему Хорнера организуем по тому же принципу, что и для вычисления значения полинома в точке:
$$
g(A)=(((3\,A-E)A+2\,E)A-4\,E)A-E \ .
$$
$$
B_1 = 3A-E =
\left( \begin{array}{rrr}
2 & -9 & 12 \\
9& 2 & 24 \\
-12 & -24 & 2
\end{array}
\right) ; \
$$
$$
B_2=B_1A+2E=
\left( \begin{array}{rrr}
-71 & -111 & -52 \\
-81& -215 & 76 \\
-92 & -4 & -236
\end{array}
\right) ; \
$$
$$
B_3=B_2A-4E=
\left( \begin{array}{rrr}
-200 & 518 & -1224 \\
-1030& -584 & -1968 \\
840 & 2160 & -640
\end{array}
\right) ; \
$$
$$
g(A)=B_4=B_3A-E=
\left( \begin{array}{rrr}
6249 & 10910 & 2120 \\
5090& 18249 & -10760 \\
9880 & 4760 & 19999
\end{array}
\right)
$$
♦
===Применение теоремы Гамильтона-Кэли==
Дальнейшие упрощения возможны в случае, когда $ \deg g \ge n $, т.е. когда степень полинома становится больше или равной порядка матрицы. Предположим, что мы в состоянии вычислить ((:algebra2:charpoly характеристический полином)) матрицы $ A_{} $:
$$ f(x)=\det (A-x E) \, . $$
!!Т!! **Теорема 1.**// Обозначим// $ g_1(x) $ //остаток от деления// $ g_{}(x) $ //на характеристический полином// $ f(x)=\det (A - x E) $. //Тогда//
$$ g(A)= g_1(A) \ .$$
**Доказательство.** Действительно, указанное равенство последует из ((:algebra2:charpoly#теорема_гамильтона-кэли теоремы Гамильтона-Кэли)) при подстановке матрицы $ A_{} $ в
формулу
$$
g(x)\equiv f(x)q(x)+g_1(x) ,\ \deg g_1 < n
$$
здесь $ q_{}(x) $ означает частное от деления $ g(x_{}) $ на $ f(x_{}) $.
♦
Эта теорема позволяет свести вычисление $ g({\mathbf A}) $ к случаю полинома степени меньшей порядка матрицы. Это соображение существенно упрощает поставленную задачу, но при этом возникает другая: как вычислить остаток от деления если делимое существенно превосходит делитель по степени? Посмотрим, как этот подход будет выглядеть для примера 1.
!!П!! **Пример 3.** Вычислить
$$
A^{100} \quad npu \quad
A=\left(
\begin{array}{rrrr}
1 &2 &1 &0 \\
1 & 1 & 0 &-1 \\
-2& 0 & 1 & 2 \\
0 & 2 & 1 & 1
\end{array}
\right) \ .
$$
**Решение.** Здесь
$$\det (A- x E) = x^4-4\,x^3+6\, x^2 - 4\, x +1 \ . $$
Деление полинома $ g(x)\equiv x^{100} $ на характеристический полином, организованное традиционным способом (т.е. ((:polynomial#делимость_полиномов "в столбик")) ) дает в остатке полином
$$ g_1(x)=161700\,x^3-480150\,x^2+475300\,x-156849 \ ; $$
при этом частное $ q_{}(x) $ является полиномом $ 96 $-й степени. Для вычислений обоих полиномов приходится использовать специализированный пакет компьютерной алгебры. Вычисление $ g_1(A) $ уже может быть произведено "вручную", например, с использованием схемы Хорнера.
♦
Заметим, что собственно частное от деления полинома $ g_{}(x) $ на характеристический полином не участвует в последующих вычислениях полинома от матрицы --- для этого нужны только коэффициенты остатка. Можно ли изобрести обходной способ вычисления остатка, который не требует промежуточного вычисления частного? --- Оказывается, можно.
Предположим, что мы в состоянии найти корни характеристического полинома $ f(x)=\det (A-x E) $, т.е. собственные числа матрицы $ A_{} $. Предположим сначала, что все эти корни $ \lambda_1,\dots,\lambda_n $ различны. Подставим их в тождество для определения частного и остатка:
$$
g(x)\equiv f(x)q(x)+g_1(x) \, .
$$
Поскольку $ f(\lambda_j)=0 $ при $ j\in \{1,\dots,n\} $, получаем равенства
$$ \{g(\lambda_j) = g_1(\lambda_j)\}_{j=1}^n \, . $$
Полином $ g_1(x) $ имеет степень меньшую $ n_{} $, а его значения совпадают со значениями полинома $ g(x) $ в $ n_{} $ точках. Такой полином определяется однозначно --- как ((:interpolation интерполяционный полином)), построенный по таблице значений
$$
\begin{array}{c|ccccc}
x & \lambda_1 & \lambda_2 & \dots & \lambda_n \\ \hline
y & g(\lambda_1) & g(\lambda_2) &\dots & g(\lambda_n)
\end{array}
$$
Для его вычислений можно использовать любой из методов, изложенных в разделе ((:interpolation "ИНТЕРПОЛЯЦИЯ")). Предпочтение отдается ((:interpolation#интерполяционый_полином_в_форме_лагранжа методу Лагранжа)):
$$
g_1(x) \equiv
\sum_{k=1}^n \frac{g(\lambda_k)}{f_k(\lambda_k)}f_k(x)
= \sum_{k=1}^n \frac{g(\lambda_k)}{f'(\lambda_k)}f_k(x)
$$
где $ f_{k}(x) $ означает частное от деления характеристического полинома на его линейный множитель:
$$
f_k(x)\equiv \frac{f(x)}{x-\lambda_k}
\equiv (x-\lambda_1)\times \dots \times (x-\lambda_{k-1})
(x-\lambda_{k+1})\times \dots \times (x-\lambda_{n})
\, .
$$
!!Т!! **Теорема 2.** //Если все собственные числа// $ \lambda_{1},\dots,\lambda_n $
//матрицы// $ A_{} $ //различны, то//
$$
g(A)= \sum_{k=1}^n \frac{g(\lambda_k)}{f_k(\lambda_k)}f_k(A)
= \sum_{k=1}^n \frac{g(\lambda_k)}{f'(\lambda_k)}f_k(A)
$$
//где// $ f_k(x) $ //означает частное от деления// $ f_{}(x) $ //на// $ x- \lambda_k $.
Каждое из суммируемых выражений в формуле можно представить в виде двух
сомножителей:
один из них зависит от полинома $ g_{}(x) $, а второй --- не зависит. Таким образом,
при изменении полинома происходит лишь пересчет значений
$ g(\lambda_1),\dots, g(\lambda_n) $, а их матричные сомножители не меняются.
Структура этих последних уже была нами установлена в пункте
☞
((:algebra2:charpoly#собственный_вектор СОБСТВЕННЫЙ ВЕКТОР)): каждая
матрица $ f_k(A) $ --- ранга $ 1 $, т.е. имеет свои столбцы пропорциональными (и равными собственным векторам, принадлежащим $ \lambda_{k} $).
!!П!! **Пример 4.** Выписать формулу $ g(A)_{} $ для произвольного
$ g(x)\in \mathbb C[x] $ и
$$
A=\left( \begin{array}{rrr}
9 & 22 & -6 \\ -1 &-4 & 1 \\ 8 & 16 & -5
\end{array}
\right) \ .
$$
**Решение.** $ \det (A-x E)=-(x-3) (x+2)(x+1) $.
Пренебрегая знаком -- , имеем:
$$
\begin{matrix}
f_1(x)=x^2+3x+2 & u & f_1(A)=
\left( \begin{array}{rrr}
40 & 80 & -20 \\ 0 &0 & 0 \\ 40 & 80 & -20
\end{array}
\right) \ , f_1(3)=20 ; \\
f_2(x)=x^2-2x-3 & u & f_2(A)=
\left( \begin{array}{rrr}
-10 & -30 & 10 \\ 5 &15 & -5 \\ 0 & 0 & 0
\end{array}
\right) \ , f_2(-2)=5 ; \\
f_3(x)=x^2-x-6 & u & f_3(A)=
\left( \begin{array}{rrr}
-4 & -8 & 4 \\ 4 & 8 & -4 \\ 8 & 16 & -8
\end{array}
\right), f_3(-1)=-4 \ .
\end{matrix}
$$
$$
g(A)=g(3)
\left(
\begin{array}{rrr}
2 & 4 & -1 \\ 0 &0 & 0 \\ 2 & 4 & -1
\end{array}
\right) + g(-2)
\left( \begin{array}{rrr}
-2 & -6 & 2 \\ 1 &3 & -1 \\ 0 & 0 & 0
\end{array}
\right)
+ g(-1)
\left( \begin{array}{rrr}
1 & 2 & -1 \\ -1 & -2 & 1 \\ -2 & -4 & 2
\end{array}
\right) \ .
$$
♦
В случае, когда характеристический полином матрицы $ A_{} $ имеет кратные корни, для вычисления полинома $ g_1(x) $ из теоремы $ 1 $ приходится привлекать обобщение понятия классического интерполяционного полинома в виде ((:interpolation#интерполяционный_полином_эрмита интерполяционного полинома Эрмита)). Действительно, полином $ g_1(x) $ определялся в теореме $ 1 $ как остаток от деления $ g_{}(x) $ на характеристический полином $ f(x)=\det (A- xE) $:
$$
g(x)\equiv f(x)q(x)+g_1(x) ;
$$
При этом $ \deg g_1 < n $, и, следовательно, полином $ g_1(x) $ вполне определялся произвольным набором $ n_{} $ своих значений --- мы брали их равными $ g(\lambda_1),\dots,g(\lambda_n) $ в случае, когда все корни $ f_{}(x) $ были различными (простыми).
Если же теперь среди корней имеются кратные и разложение характеристического полинома на линейные множители имеет вид
$$
f(x)\equiv (-1)^n(x - \lambda_1)^{{\mathfrak m}_1} \times
\dots \times (x - \lambda_{{\mathfrak r}})^{ {\mathfrak m}_{{\mathfrak r}}} \quad ; \quad
{\mathfrak m}_1+\dots+{\mathfrak m}_{{\mathfrak r}}=n, \ \lambda_k \ne
\lambda_{\ell} \ npu \ k \ne \ell, \exists {\mathfrak m}_j > 1,
$$
то для нахождения полинома $ g_1(x) $ не хватает значений $ g(\lambda_1),\dots, g(\lambda_{{\mathfrak r}}) $. Для получения дополнительных условий, можно продифференцировать тождество $ g(x)\equiv f(x)q(x)+g_1(x) $ по $ x_{} $ и подставить в получившееся значения всех кратных корней полинома $ f_{}(x) $:
$$ g^{\prime}(\lambda_j) = f^{\prime}(\lambda_j) q(\lambda_j)+f(\lambda_j) q^{\prime}(\lambda_j)+g_1(\lambda_j) \ . $$
Поскольку для любого кратного корня $ \lambda_{j} $ будет выполнено условие
(см.
☞
((:polynomial#производные_от_полинома ЗДЕСЬ)) ): $ f^{\prime}(\lambda_j)=0 $, то результатом подстановки будет равенство $ g^{\prime}(\lambda_j)=g_1^{\prime}(\lambda_j) $. Получаем дополнительные условия для определения полинома $ g_{1}(x) $. Итак, для нахождения полинома $ g_1(x) $ нам следует дополнительно к значениям $ g_{}(x) $ на всех корнях характеристического полинома (т.е. на собственных числах) матрицы $ A_{} $ вычислить еще и значения производной этой функции на всех кратных корнях. Может, однако, так случиться, что и этих дополнительных условий будет недостаточно для нахождения полинома $ g_1(x) $. Тогда следует продолжить процесс вычисления производных --- для тех значений $ \lambda_{j} $, кратность которых $ {\mathfrak m}_j $ больше $ 2_{} $. Окончательно, для определения полинома $ g_1(x) $ мы имеем значения полинома $ g(x) $
и его производных
$$
\begin{matrix}
g(\lambda_1),\dots, g^{({\mathfrak m}_{_1}-1)}(\lambda_1), \\
g(\lambda_2),\dots, g^{({\mathfrak m}_{_2}-1)}(\lambda_1), \\
\dots, \\
g(\lambda_{\mathfrak r}),\dots, g^{({\mathfrak m}_{_{\mathfrak r}}-1)}(\lambda_{\mathfrak r})\ ;
\end{matrix}
$$
при этом количество значений в каждой строке равно (алгебраической) кратности соответствующего собственного числа. По этим значениям полином степени меньшей $ n_{} $ восстанавливается однозначно.
Заметим, что данный метод нечувствителен к геометрической кратности каждого из собственных чисел (т.е. к структуре
жордановой нормальной формы матрицы $ A_{} $ вне ее главной диагонали); для его работы достаточно информации об алгебраической кратности.
!!П!! **Пример 5**. Вычислить $ A^{100} $ для
$$
A=
\left(
\begin{array}{rrrr}
1 &2 &1 &0 \\
1 & 1 & 0 &-1 \\
-2& 0 & 1 & 2 \\
0 & 2 & 1 & 1
\end{array}
\right) \ ; \
A=
\left(
\begin{array}{rrrr}
1 &0 &0 &0 \\
1 & 2 & 0 &1 \\
2& 3 & 1 & 2 \\
-1 & -1 & 0 & 0
\end{array}
\right) \ ;
A=
\left(
\begin{array}{rrrr}
1 &1 & 2 &-1 \\
1 & -1 & -4 &2 \\
0& 1 & 3 & -1 \\
0 & 0 & 1 & 1
\end{array}
\right) \ .
$$
**Решение.** У всех трех матриц одинаковый характеристический полином: $ \det (A- x E) = (x-1)^4 $. Остаток от деления $ x^{100} $ на $ (x-1)^4 $ совпадает с отрезком ряда Тейлора функции $ x^{100} $ при разложении ее по степеням $ x-1 $, т.е. с
$$
\begin{matrix}
g_1(x)&=&1+100\,(x-1)+\frac{100\cdot99}{2}(x-1)^2+\frac{100\cdot 99 \cdot 98}{6}(x-1)^3= \\
&= & -156849+475300\,x-480150\,x^2+161700\,x^3 \ .
\end{matrix}
$$
Для всех трех матриц формула вычисления $ A^{100} $ одна и та же:
$$
A^{100} =
-156849\, E+475300\,A-480150\,A^2+161700\,A^3 \ .
$$
Несмотря на то обстоятельство, что жордановы нормальные формы у этих матриц различны.
♦
В приведенном способе нахождения остатка от деления полинома $ g(x) $ на характеристический полином матрицы $ A_{} $ имеется один нюанс, требующий пояснений.
Предположим, что элементы матрицы $ A_{} $ целочислены: $ \{a_{jk} \in \mathbb Z\}_{j,k=1}^n $. Тогда и характеристический полином $ f(x)=\det (A-x E) $ является полиномом
с целочисленными коэффициентами $ f(x) \in \mathbb Z[x] $. Поскольку старший коэффициент $ f_{}(x) $ равен $ 1_{} $ по абсолютной величине, то и остаток от деления
$ g_{} (x) $ на $ f_{}(x) $ будет иметь только целые коэффициенты (см.
☞
((:polynomial:remquo ЗДЕСЬ)) ): $ g_1(x) \in \mathbb Z[x] $. Между тем, вычисление этого полинома через посредство корней характеристического полинома, в общем случае, приводит к иррациональным выражениям: корни полинома, как правило, ((:polynomial:radical#разрешимость_в_радикалах не выражаются в радикалах)) через его коэффициенты.
!!П!! **Пример 6.** Вычислить $ g(A) $ для
$$ g(x)= x^{10}-6\,x^8+11\,x^7-x^3+4\,x^2- 1 $$
и
$$
A=
\left(
\begin{array}{rrrrr}
6 &1 &5 &2 & -1 \\
-5 & -1 & -4 & -2 & 1 \\
-5 & -1 & -5 & -1 & 1 \\
-5 & -1 & -5 & -2 & 2 \\
-5 & 0 & -7 & -2 & 2
\end{array}
\right) \, .
$$
**Решение.** Характеристический полином $ f(x)= \det (A-x E)=-(x^5-4\,x-2) $ имеет корни, ((:polynomial:radical#разрешимость_в_радикалах не выражающиеся в радикалах)).
Попробуем применить теорему 2 для приближенных значений корней:
$$ \lambda_1 \approx -1.243596,\ \lambda_2 \approx -0.508499,\ \lambda_3 \approx 1.518512,\ \lambda_{4,5} \approx 0.116792 \pm {\mathbf i}\, 1.438448,\, . $$
Для нахождения частных от деления $ f_{}(x) $ на линейные множители $ (x-\lambda_j) $ воспользуемся следующим приемом. Частное от деления произвольного полинома
$$ f(x)=a_0x^5+a_1x^4+a_2x^3+a_3x^2+a_4x+a_5 $$
на линейный полином $ x - \lambda $ находится по формуле
$$
q(x,\lambda)=a_0x^4+(a_0\lambda + a_1)x^3+(a_0\lambda^2+a_1\lambda+a_2)x^2+(a_0\lambda^3+a_1\lambda^2+a_2\lambda+a_3)x+
$$
$$
+(a_0\lambda^4+a_1\lambda^3+a_2\lambda^2+a_3 \lambda+a_4) \, ,
$$
которая является развернутым вариантом ((:polynomial#схема_хорнера схемы Хорнера)). Подставляя сюда значения коэффициентов характеристического полинома $ f_{}(x) $ и приближенные значения его корней, получаем приближения полиномов $ f_j(x) $:
$$
\begin{array}{ccl}
f_1(x) &\approx & -x^4+1.243596\,x^3-1.546532\,x^2+1.923266\,x+1.608239 \, , \\
f_2(x) & \approx &-x^4+0.508499\,x^3-0.258572\,x^2+0.131483\,x+3.933141\, , \\
f_3(x) & \approx & \dots \\
f_{4,5}(x) & \approx & -x^4+(-0.116792\mp 1.438448\, \mathbf i)\,x^3+(2.055491\mp 0.335998\, \mathbf i)\,x^2+ \dots
\end{array}
$$
Вычисляем значения этих полиномов на матрице $ A_{} $:
$$
f_1(A) \approx
\left(
\begin{array}{rrrrr}
1.844873 & 0.503518 & 3.247794 & -1.280266 & 0.201656 \\
0.383692& 0.104720 & 0.675468 & -0.266266 & 0.041940 \\
-4.616308& -1.259922 & -8.126748 & 3.203527 &-0.504592 \\
1.601674 & 0.437142 & 2.819656 &-1.111496 & 0.175073 \\
-6.130986 & -1.673321 & -10.793252 & 4.254651 & -0.670156
\end{array}
\right)
$$
$$
f_2(A) \approx
\left(
\begin{array}{rrrrr}
-6.028030 & -5.334374 & -3.876435 & 0.470253 & 0.893870 \\
9.342582 & 8.267515 & 6.007919& -0.728825 & -1.385371\\
4.342582 & 3.842873 & 2.792577 & -0.338769 & -0.643943\\
6.885079 & 6.092801 & 4.427577 & -0.537112 & -1.020959\\
5.592221 & 4.948714 & 3.596180 &-0.436255 & -0.829246
\end{array}
\right)
$$
$$
f_3(A) \approx \dots
$$
$$
f_{4,5}(A) \approx
\left(
\begin{array}{rrr}
-4.833170\pm 17.111687 \, \mathbf i & -10.621186 \pm 0.712576 \, \mathbf i & \dots \\
6.383099 \mp 14.587375 \, \mathbf i & 9.509036 \pm 0.668706 \, \mathbf i & \dots \\
1.383099 \mp 14.587376 \, \mathbf i & 8.504395\mp 2.151023 \, \mathbf i & \dots \\
0.799140 \mp 21.779614 \, \mathbf i & 12.443094\mp 3.925469 \, \mathbf i & \dots \\
11.076597 \mp 23.459604 \, \mathbf i & 15.455549\pm 1.532904 \, \mathbf i & \dots
\end{array}
\right) \, .
$$
Несмотря на кажущуюся хаотичность формирования элементов этих матриц, столбцы каждой из них пропорциональны (впрочем, равно как и строки).
Составляем матрицу из теоремы $ 2 $:
$$
\sum_{k=1}^5 \frac{g(\lambda_k)}{f_k(\lambda_k)}f_k(A) =
\sum_{k=1}^5 \frac{g(\lambda_k)}{f_k(\lambda_k)} q(A,\lambda_k) \approx
$$
$$
\approx
\left(
\begin{array}{rrrrr}
-94.999999 & -173.999999 & -237.999999 & 143.999999 & 198.999999 \\
159.999999 & 149.999999& 301.999999&-101.999999&-191.999999\\
39.999999&156.999999&79.999999&-127.999999&-125.999999\\
194.999999 &277.999999&229.999999&-239.999999&-140.999999\\
404.999999&273.999999&435.999999&-67.999999&-278.999999
\end{array}
\right)
$$
(при уменьшении точности вычислений возможно появление ненулевых мнимых частей). Полученный ответ можно интерпретировать как приближение истинного, а именно, целочисленного:
$$
\left(
\begin{array}{rrrrr}
-95&-174&-238&144&199\\
160&150&302&-102&-192\\
40&157&80&-128&-126\\
195&278&230&-240&-141\\
405&274&436&-68&-279
\end{array}
\right) \, .
$$
Возникает вопрос: можно ли было получить этот ответ, не прибегая к численным методам (и использованию мнимых чисел)? Где именно "заложена" принципиальная целочисленность ответа? Для ответа посмотрим на выражение
$$
\sum_{k=1}^5 \frac{g(\lambda_k)}{f_k(\lambda_k)}f_k(A) = \sum_{k=1}^5 \frac{g(\lambda_k)}{f_k(\lambda_k)}f_k(A) =
$$
$$
\sum_{k=1}^5 \frac{g(\lambda_k)}{f_k(\lambda_k)} \left(a_0A^4+(a_0\lambda_k + a_1)A^3 + (a_0\lambda_k^2+a_1\lambda_k+a_2)A^2 \dots \right)=
$$
$$
= \left(a_0\sum_{k=1}^5 \frac{g(\lambda_k)}{f_k(\lambda_k)} \right)A^4 +
\left( a_0 \sum_{k=1}^5 \frac{g(\lambda_k)\lambda_k}{f_k(\lambda_k)}+a_1 \sum_{k=1}^5 \frac{g(\lambda_k)}{f_k(\lambda_k)} \right) A^3+ \dots \, ,
$$
здесь $ a_0=(-1)^n,a_1, a_2,\dots $ обозначают коэффициенты полинома $ f_{}(x) $. Выражения в круглых скобках представляют собой симметрические рациональные функции от корней этого полинома. Согласно ((:polynomial#симметрические_функции_корней теореме Гаусса)), эти функции допускают представление в виде рациональных функций от коэффициентов $ a_0,a_1, a_2,\dots $ (а, на самом деле, ((:algebra2:vander#обобщенная_матрица_вандермонда полиномов)) от этих коэффициентов). Так что ответ в задаче действительно должен быть целочисленным. Другое дело, что для его практического поиска мы привлекли численные методы поскольку явное представление симметрических рациональных функций через коэффициенты полинома --- задача весьма сложная.
♦
===Анализ с помощью жордановой нормальной формы==
Все применения **ЖНФ** основаны на формулах ((:mapping:operator#матрица_оператора подобия)) матрицы и ее **ЖНФ**:
$$C^{-1}{\mathbf A}C ={\mathbf A}_{_{\mathfrak J}} \quad \iff \quad {\mathbf A}=
C{\mathbf A}_{_{\mathfrak J}}C^{-1} \ . $$
Оказывается, что любая мыслимая операция над
матрицей $ {\mathbf A} $ может быть сведена к этой же операции над формой Жордана:
$$g({\mathbf A})= Cg({\mathbf A}_{_{\mathfrak J}})C^{-1} \ .$$
В самом деле, имеем, например:
$$
{\mathbf A}^2 =(C{\mathbf A}_{_{\mathfrak J}}C^{-1})^2=C{\mathbf A}_{_{\mathfrak J}}C^{-1}C{\mathbf A}_{_{\mathfrak J}}C^{-1}=C{\mathbf A}_{_{\mathfrak J}}^2C^{-1} \ .
$$
По индукции можно показать справедливость равенства
$$
{\mathbf A}^N=C{\mathbf A}_{_{\mathfrak J}}^NC^{-1} \quad npu \quad \forall N \in \mathbb N \ .
$$
Далее, справедливость равенства $ {\mathbf A}^0=E=C{\mathbf A}_{_{\mathfrak J}}^0C^{-1} $
очевидна.
Но тогда можно доказать и справедливость равенства
$$ g({\mathbf A}) = Cg({\mathbf A}_{_{\mathfrak J}})C^{-1} $$
для любого ((:polynomial полинома)) $ g(x)=b_0x^m+\dots+b_m \in \mathbb C[x] $. Отсюда --- прямая дорога к аналитическим функциям от матрицы... Этот переход обсудим ((#аналитическая_функция_от_матрицы НИЖЕ)),
а пока остановимся и проведем анализ структуры полинома от **ЖНФ**.
Мы будем рассматривать матрицы и их **ЖНФ** над полем $ \mathbb C_{} $. Пусть характеристический полином матрицы $ \mathbf A_{} $
имеет следующее разложение на линейные множители над полем $ \mathbb C_{} $:
$$
f(\lambda)= \det (\mathbf A - \lambda E) \equiv (-1)^n(\lambda - \lambda_1)^{{\mathfrak m}_1} \times
\dots \times (\lambda - \lambda_{{\mathfrak r}})^{ {\mathfrak m}_{{\mathfrak r}}} \quad ; \quad
{\mathfrak m}_1+\dots+{\mathfrak m}_{{\mathfrak r}}=n, \ \lambda_k \ne
\lambda_{\ell} \ npu \ k \ne \ell.
$$
**ЖНФ** матрицы $ \mathbf A_{} $ имеет вид блочно-диагональной матрицы
$$
{\mathbf A}_{_{\mathfrak J}}=\left(
\begin{array}{cccc}
\mathbf A_1 & \mathbb O & \dots & \mathbb O \\
\mathbb O & \mathbf A_2 & \dots & \mathbb O \\
\vdots & & \ddots & \vdots\\
\mathbb O & \mathbb O & \dots & \mathbf A_{{\mathfrak r}}
\end{array}
\right) \quad , \quad \mbox{ здесь } \ \mathbf A_j - \mbox{ матрица порядка }\
{\mathfrak m}_j\times {\mathfrak m}_j \ .
$$
В свою очередь, каждая из составляющих матриц
$ \mathbf A_j $ имеет снова блочно-диагональный вид
$$
\mathbf A_j=
\left(
\begin{array}{cccc}
{\mathbf A}_{j1} & \mathbb O & \dots & \mathbb O \\
\mathbb O & {\mathbf A}_{j2} & \dots & \mathbb O \\
\vdots & & \ddots & \vdots\\
\mathbb O & \mathbb O & \dots & {\mathbf A}_{j \ell_j}
\end{array}
\right)
$$
где на диагонали стоят клетки Жордана, т.е. матрицы вида
$$
{\mathfrak J}_k (\lambda_j) =
\left(
\begin{array}{cccccc}
\lambda_j & & & & & \\
1 & \lambda_j & & & & \\
0 & 1 & \lambda_j & & \mathbb O & \\
\vdots & & \ddots & \ddots& & \\
0 & 0 & 0 & \dots & \lambda_j & \\
0 & 0 & 0 & \dots & 1 & \lambda_j
\end{array}
\right)_{k \times k} \ .
$$
Теперь наша задача --- свести вычисление произвольного полинома от $ {\mathbf A}_{_{\mathfrak J}} $ к вычислению этого же полинома от клеток Жордана: $ g({\mathbf A}_{_{\mathfrak J}}) $ --- к $ g({\mathfrak J}_k (\lambda_j)) $.
===Структура степенной функции==
!!Т!! **Теорема 3.** //Если матрица// $ {\mathbf D} $ ---// блочно-диагональная, то и// $ {\mathbf D}^N $ ---
//блочно-диагональная//:
$$
\left(
\begin{array}{cccc}
{\mathbf D}_1 & \mathbb O & \dots & \mathbb O \\
\mathbb O & {\mathbf D}_2 & \dots & \mathbb O \\
\vdots & & \ddots & \vdots \\
\mathbb O & \mathbb O & \dots & {\mathbf D}_r
\end{array}
\right)^N=
\left(
\begin{array}{cccc}
{\mathbf D}_1^N & \mathbb O & \dots & \mathbb O \\
\mathbb O & {\mathbf D}_2^N & \dots & \mathbb O \\
& & \ddots & \\
\mathbb O & \mathbb O & \dots & {\mathbf D}_r^N
\end{array}
\right) \ .
$$
//Здесь// $ {\mathbf D}_1, \dots, {\mathbf D}_r $ --- //квадратные матрицы//[[Не обязательно одинаковых порядков.]].
!!Т!! **Теорема 4.** //Если матрица// $ L_{} $ --- //((:algebra2#треугольная нижнетреугольная)), то и// $ L^N $ --- //нижнетреугольная//.
Теоремы $ 3 $ и $ 4 $ сводят вычисление степени матрицы $ {\mathbf A} $ к вычислению степени ее клеток Жордана $ {\mathfrak J}_k (\lambda_j) $.
!!Т!! **Теорема 5.** //Имеет место равенство://
$$
\left(
\begin{array}{rrrrrr}
\lambda & & & & & \\
1 & \lambda & &\mathbb O & & \\
0& 1 & \lambda & & & \\
\vdots & & \ddots & \ddots & & \\
0 & 0 & \dots & 1 & \lambda & \\
0 & 0 & \dots & 0 & 1 &\lambda
\end{array}
\right)_{k\times k}^N=
$$
$$
=
\left(
\begin{array}{ccrlcc}
\lambda^N & & & & & \\
C_N^1 \lambda^{N-1} & \lambda^N & &\mathbb O & & \\
C_N^2 \lambda^{N-2} & C_N^1 \lambda^{N-1} & \lambda^N & & & \\
\dots & & \ddots & \ \ \ddots & & \\
C_N^{k-2} \lambda^{N-k} & \dots & & C_N^1 \lambda^{N-1} &\lambda^N & \\
C_N^{k-1} \lambda^{N-k+1} & \dots & & C_N^2 \lambda^{N-2} & C_N^1 \lambda^{N-1} &\lambda^N
\end{array}
\right)
$$
(//считаем здесь элементы с отрицательными показателями// $ \lambda $ //равными нулю//).
//Более корректная запись матрицы в правой части возможна с помощью матрицы//
$$H_j = \begin{array}{rl}
\begin{array}{c}
{\scriptstyle 0 \to} \\ {\scriptstyle 1 \to} \\ \vdots \\ {\scriptstyle j \to}
\\ \vdots \\ {\scriptstyle k-1 \to}
\end{array}
\left(\begin{array}{llllll}
0 & & & & &\\
0 & & & \mathbb O & &\\
\vdots & & & & &\\
1 & & & & \\
\vdots & \ddots & & &\\
0 & & 1 & \dots & 0 & 0
\end{array}
\right)
\end{array}
=\left[
\begin{array}{ll}
\mathbb O_{j\times (k-j)} & \mathbb O_{j\times j} \\
E_{(k-j) \times (k-j)} & \mathbb O_{(k-j)\times j}
\end{array}
\right]_{k\times k}
$$
(//единицами заполнена// $ j_{} $-//я диагональ, считая от нулевой --- главной//):
$$
\left[{\mathfrak J}_k (\lambda) \right]^N =
$$
$$
=\lambda^N E +
C_N^1 \lambda^{N-1} H_1 + C_N^2 \lambda^{N-2} H_2 +
\dots +\left\{ \begin{array}{ccc}
C_N^N H_N & npu & N
♦