Собственные Значения Матрицы: Как Найти Через LU-Разложение

Собственные значения матрицы можно находить не только через характеристический многочлен. В численных методах часто используют другой подход: исходную матрицу постепенно заменяют подобными ей матрицами, которые имеют те же собственные значения. В процессе вычислений эти матрицы приближаются к треугольному виду. Для треугольной матрицы собственные значения уже легко определить по главной диагонали.

Собственные Значения Матрицы: Почему Помогает Треугольная Форма

Начнем с простого вопроса. Почему в задаче на собственные значения так часто стремятся получить именно треугольную матрицу?

Причина в том, что собственные значения треугольной матрицы равны ее диагональным элементам. То есть вместо сложных вычислений достаточно найти элементы главной диагонали.

Например, пусть дана треугольная матрица

\[
T=
\begin{pmatrix}
\lambda_1 & 0 & \dots & 0\\
t_{21} & \lambda_2 & \dots & 0\\
\vdots & \vdots & \ddots & \vdots\\
t_{n1} & t_{n2} & \dots & \lambda_n
\end{pmatrix}.
\]

Тогда ее характеристический определитель имеет вид

\[
\det(T-\lambda I)=(\lambda_1-\lambda)\cdot(\lambda_2-\lambda)\cdot\dots\cdot(\lambda_n-\lambda).
\]

Следовательно, корни характеристического уравнения совпадают с диагональными элементами матрицы. Поэтому собственные значения матрицы \( T \) равны

\[
\lambda_1,\lambda_2,\dots,\lambda_n.
\]

Отсюда и возникает основная идея метода. Если исходную матрицу \( A \) постепенно приблизить к треугольной матрице, то собственные значения можно будет найти намного проще.

Но здесь сразу появляется важное уточнение. Нельзя изменять матрицу как угодно. Нужно, чтобы во время преобразований ее собственные значения сохранялись. Именно поэтому используют подобные матрицы. Если матрицы подобны, то они имеют одинаковые собственные значения.

Итак, задача сводится к следующему: построить последовательность подобных матриц, которая постепенно переходит к более удобному, треугольному виду.

LU-Разложение Матрицы: Как Найти L и U

Теперь выясним, с помощью чего строится такая последовательность. В этом методе используется LU-разложение.

Пусть задана квадратная матрица \( A \) размерности \( n\times n \):

\[
A=
\begin{pmatrix}
a_{11} & a_{12} & \dots & a_{1n}\\
a_{21} & a_{22} & \dots & a_{2n}\\
\vdots & \vdots & \ddots & \vdots\\
a_{n1} & a_{n2} & \dots & a_{nn}
\end{pmatrix}.
\]

Ее представляют в виде произведения двух матриц

\[
A=L\cdot U,
\]

где \( L \) — нижняя треугольная матрица, а \( U \) — верхняя треугольная матрица.

Для определенности используем вариант, в котором диагональные элементы матрицы \( U \) равны единице: \( u_{ii}=1 \).

Тогда матрицы \( L \) и \( U \) имеют вид

\[
L=
\begin{pmatrix}
l_{11} & 0 & \dots & 0\\
l_{21} & l_{22} & \dots & 0\\
\vdots & \vdots & \ddots & \vdots\\
l_{n1} & l_{n2} & \dots & l_{nn}
\end{pmatrix},\qquad
U=
\begin{pmatrix}
1 & u_{12} & \dots & u_{1n}\\
0 & 1 & \dots & u_{2n}\\
\vdots & \vdots & \ddots & \vdots\\
0 & 0 & \dots & 1
\end{pmatrix}.
\]

Элементы этих матриц вычисляют последовательно. Сначала находят элементы матрицы \( L \):

\[
l_{ij}=a_{ij}-\sum_{k=1}^{j-1} l_{ik}\cdot u_{kj}, \qquad i\ge j.
\]

После этого вычисляют элементы матрицы \( U \):

\[
u_{ij}=\frac{1}{l_{ii}}\cdot \left(a_{ij}-\sum_{k=1}^{i-1} l_{ik}\cdot u_{kj}\right), \qquad i<j.
\]

Здесь важно помнить об условии \( l_{ii}\ne 0 \). Почему оно нужно? Потому что при вычислении элементов матрицы \( U \) выполняется деление на \( l_{ii} \). Если этот элемент равен нулю, то обычное LU-разложение без перестановок строк или столбцов применить нельзя.

Следовательно, в этом методе обычно предполагают, что нужное LU-разложение существует. Это касается не только исходной матрицы \( A \), но и всех матриц, которые появляются дальше в итерационном процессе.

Таким образом, LU-разложение дает конкретный способ разделить текущую матрицу на две треугольные матрицы. Далее покажем, как из этих двух матриц получают новую матрицу с теми же собственными значениями.

Итерационный Процесс: Построение Подобных Матриц

Пусть исходная матрица равна

\[
A_0=A.
\]

На первом шаге выполняем LU-разложение матрицы \( A_0 \):

\[
A_0=L_0\cdot U_0.
\]

После этого меняем порядок множителей и строим новую матрицу:

\[
A_1=U_0\cdot L_0.
\]

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

Действительно, из равенства

\[
A_0=L_0\cdot U_0
\]

получаем

\[
U_0=L_0^{-1}\cdot A_0.
\]

Тогда

\[
A_1=U_0\cdot L_0=L_0^{-1}\cdot A_0\cdot L_0.
\]

Следовательно, матрица \( A_1 \) подобна матрице \( A_0 \). Поэтому матрицы \( A_1 \) и \( A_0 \) имеют одинаковые собственные значения.

Далее тот же процесс повторяется уже для матрицы \( A_1 \):

\[
A_1=L_1\cdot U_1,\qquad
A_2=U_1\cdot L_1.
\]

В общем виде алгоритм записывают так:

\[
A_k=L_k\cdot U_k,\qquad
A_{k+1}=U_k\cdot L_k,
\]

где \( k=0,1,2,\dots \).

Каждая следующая матрица \( A_{k+1} \) подобна предыдущей матрице \( A_k \), поскольку

\[
A_{k+1}=L_k^{-1}\cdot A_k\cdot L_k.
\]

Поэтому все матрицы

\[
A_0,A_1,A_2,\dots,A_k
\]

имеют те же собственные значения, что и исходная матрица \( A \).

При определенных условиях эта последовательность постепенно приближается к треугольной матрице. На достаточно большом шаге диагональные элементы матрицы \( A_k \) становятся приближениями к собственным значениям исходной матрицы \( A \).

Тогда можно записать

\[
A_k=
\begin{pmatrix}
\lambda_1 & 0 & \dots & 0\\
a_{21}^{(k)} & \lambda_2 & \dots & 0\\
\vdots & \vdots & \ddots & \vdots\\
a_{n1}^{(k)} & a_{n2}^{(k)} & \dots & \lambda_n
\end{pmatrix}.
\]

Следовательно, числа

\[
\lambda_1,\lambda_2,\dots,\lambda_n
\]

являются приближенными собственными значениями исходной матрицы \( A \).

Критерий Остановки Итераций: Когда Завершать Вычисления

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

Поскольку собственные значения считывают с главной диагонали матрицы \( A_k \), естественно контролировать именно диагональные элементы. Если они почти не изменяются на двух соседних шагах, то процесс можно остановить.

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

\[
\max_{1\le i\le n}\left|a_{ii}^{(k+1)}-a_{ii}^{(k)}\right|\le \varepsilon,
\]

где \( \varepsilon \) — заданная точность.

Это означает, что все диагональные элементы изменились не больше чем на \( \varepsilon \). Поэтому эти элементы можно считать приближенными собственными значениями матрицы \( A \).

В то же время нужно помнить, что сходимость метода зависит от свойств матрицы. Важными являются существование LU-разложения на каждом шаге, то, насколько собственные значения отличаются друг от друга по модулю, и численная устойчивость вычислений.

Например, если собственные значения имеют разные модули, то есть

\[
|\lambda_1|>|\lambda_2|>\dots>|\lambda_n|,
\]

то итерационный процесс обычно ведет себя лучше. Если же некоторые собственные значения имеют одинаковые или очень близкие по величине модули, сходимость может быть медленной, а вычисления — менее устойчивыми.

Поэтому метод LU-разложения удобен для объяснения итерационного подхода. Однако на практике его применение всегда требует контроля погрешности, проверки условий сходимости и внимательного отношения к численной устойчивости.

Собственные Значения Матрицы: Практика LU-Разложения

Теперь рассмотрим, как метод LU-разложения работает на конкретных матрицах. В каждом примере будем строить последовательность подобных матриц и смотреть, как изменяются их диагональные элементы. Именно эти элементы постепенно дают приближенные собственные значения исходной матрицы.

Пример 1. Найти собственные значения матрицы методом LU-разложения с точностью \( \varepsilon=0.1 \):
\[
A=
\begin{pmatrix}
4 & 1\\
2 & 3
\end{pmatrix}.
\]

Обозначим исходную матрицу:

\[
A_0=A=
\begin{pmatrix}
4 & 1\\
2 & 3
\end{pmatrix}.
\]

Выполним LU-разложение:

\[
A_0=L_0\cdot U_0.
\]

Вычисляем элементы матриц \( L_0 \) и \( U_0 \):

\[
\begin{gathered}
l_{11}^{0}=a_{11}^{(0)}=4,\\[4pt]
u_{12}^{0}=\dfrac{a_{12}^{(0)}}{l_{11}^{0}}=\dfrac{1}{4}=0.25,\\[4pt]
l_{21}^{0}=a_{21}^{(0)}=2,\\[4pt]
l_{22}^{0}=a_{22}^{(0)}-l_{21}^{0}\cdot u_{12}^{0}
=3-2\cdot 0.25=2.5.
\end{gathered}
\]

Следовательно,

\[
L_0=
\begin{pmatrix}
4 & 0\\
2 & 2.5
\end{pmatrix},
\qquad
U_0=
\begin{pmatrix}
1 & 0.25\\
0 & 1
\end{pmatrix}.
\]

Теперь меняем множители местами:

\[
A_1=U_0\cdot L_0.
\]

Подставим найденные матрицы:

\[
A_1=
\begin{pmatrix}
1 & 0.25\\
0 & 1
\end{pmatrix}
\cdot
\begin{pmatrix}
4 & 0\\
2 & 2.5
\end{pmatrix}.
\]

После вычислений получаем

\[
A_1=
\begin{pmatrix}
4.5 & 0.625\\
2 & 2.5
\end{pmatrix}.
\]

Проверим условие остановки:

\[
\max\left(|4.5-4|,\ |2.5-3|\right)=0.5.
\]

Поскольку

\[
0.5>0.1,
\]

итерационный процесс продолжаем.

Теперь раскладываем матрицу

\[
A_1=
\begin{pmatrix}
4.5 & 0.625\\
2 & 2.5
\end{pmatrix}.
\]

Выполним LU-разложение:

\[
A_1=L_1\cdot U_1.
\]

Вычисляем элементы матриц \( L_1 \) и \( U_1 \):

\[
\begin{gathered}
l_{11}^{1}=a_{11}^{(1)}=4.5,\\[4pt]
u_{12}^{1}=\dfrac{a_{12}^{(1)}}{l_{11}^{1}}
=\dfrac{0.625}{4.5}=0.139,\\[4pt]
l_{21}^{1}=a_{21}^{(1)}=2,\\[4pt]
l_{22}^{1}=a_{22}^{(1)}-l_{21}^{1}\cdot u_{12}^{1}
=2.5-2\cdot 0.139=2.222.
\end{gathered}
\]

Следовательно,

\[
L_1=
\begin{pmatrix}
4.5 & 0\\
2 & 2.222
\end{pmatrix},
\qquad
U_1=
\begin{pmatrix}
1 & 0.139\\
0 & 1
\end{pmatrix}.
\]

Строим следующую матрицу:

\[
A_2=U_1\cdot L_1.
\]

Подставим \( U_1 \) и \( L_1 \):

\[
A_2=
\begin{pmatrix}
1 & 0.139\\
0 & 1
\end{pmatrix}
\cdot
\begin{pmatrix}
4.5 & 0\\
2 & 2.222
\end{pmatrix}.
\]

После вычислений:

\[
A_2=
\begin{pmatrix}
4.778 & 0.309\\
2 & 2.222
\end{pmatrix}.
\]

Проверяем изменение диагональных элементов:

\[
\max\left(|4.778-4.5|,\ |2.222-2.5|\right)=0.278.
\]

Поскольку

\[
0.278>0.1,
\]

нужна еще одна итерация.

Раскладываем матрицу

\[
A_2=
\begin{pmatrix}
4.778 & 0.309\\
2 & 2.222
\end{pmatrix}.
\]

Выполним LU-разложение:

\[
A_2=L_2\cdot U_2.
\]

Вычисляем элементы матриц \( L_2 \) и \( U_2 \):

\[
\begin{gathered}
l_{11}^{2}=a_{11}^{(2)}=4.778,\\[4pt]
u_{12}^{2}=\dfrac{a_{12}^{(2)}}{l_{11}^{2}}
=\dfrac{0.309}{4.778}=0.065,\\[4pt]
l_{21}^{2}=a_{21}^{(2)}=2,\\[4pt]
l_{22}^{2}=a_{22}^{(2)}-l_{21}^{2}\cdot u_{12}^{2}
=2.222-2\cdot 0.065=2.093.
\end{gathered}
\]

Следовательно,

\[
L_2=
\begin{pmatrix}
4.778 & 0\\
2 & 2.093
\end{pmatrix},
\qquad
U_2=
\begin{pmatrix}
1 & 0.065\\
0 & 1
\end{pmatrix}.
\]

Строим

\[
A_3=U_2\cdot L_2.
\]

Подставим найденные матрицы:

\[
A_3=
\begin{pmatrix}
1 & 0.065\\
0 & 1
\end{pmatrix}
\cdot
\begin{pmatrix}
4.778 & 0\\
2 & 2.093
\end{pmatrix}.
\]

После вычислений:

\[
A_3=
\begin{pmatrix}
4.907 & 0.135\\
2 & 2.093
\end{pmatrix}.
\]

Проверяем критерий остановки:

\[
\max\left(|4.907-4.778|,\ |2.093-2.222|\right)=0.129.
\]

Поскольку

\[
0.129>0.1,
\]

итерации еще не останавливаем.

Раскладываем матрицу

\[
A_3=
\begin{pmatrix}
4.907 & 0.135\\
2 & 2.093
\end{pmatrix}.
\]

Выполним LU-разложение:

\[
A_3=L_3\cdot U_3.
\]

Вычисляем элементы матриц \( L_3 \) и \( U_3 \):

\[
\begin{gathered}
l_{11}^{3}=a_{11}^{(3)}=4.907,\\[4pt]
u_{12}^{3}=\dfrac{a_{12}^{(3)}}{l_{11}^{3}}
=\dfrac{0.135}{4.907}=0.028,\\[4pt]
l_{21}^{3}=a_{21}^{(3)}=2,\\[4pt]
l_{22}^{3}=a_{22}^{(3)}-l_{21}^{3}\cdot u_{12}^{3}
=2.093-2\cdot 0.028=2.038.
\end{gathered}
\]

Поэтому

\[
L_3=
\begin{pmatrix}
4.907 & 0\\
2 & 2.038
\end{pmatrix},
\qquad
U_3=
\begin{pmatrix}
1 & 0.028\\
0 & 1
\end{pmatrix}.
\]

Строим

\[
A_4=U_3\cdot L_3.
\]

Подставим матрицы:

\[
A_4=
\begin{pmatrix}
1 & 0.028\\
0 & 1
\end{pmatrix}
\cdot
\begin{pmatrix}
4.907 & 0\\
2 & 2.038
\end{pmatrix}.
\]

После вычислений получаем

\[
A_4=
\begin{pmatrix}
4.962 & 0.056\\
2 & 2.038
\end{pmatrix}.
\]

Теперь

\[
\max\left(|4.962-4.907|,\ |2.038-2.093|\right)=0.055.
\]

Поскольку

\[
0.055\le 0.1,
\]

условие остановки выполняется.

Следовательно, искомые собственные значения:

\[
\lambda_1=4.962,
\qquad
\lambda_2=2.038.
\]

Пример 2. Найти собственные значения матрицы методом LU-разложения с точностью \( \varepsilon=0.1 \):
\[
A=
\begin{pmatrix}
6 & 1 & 0\\
1 & 4 & 1\\
0 & 1 & 2
\end{pmatrix}.
\]

Обозначим

\[
A_0=A=
\begin{pmatrix}
6 & 1 & 0\\
1 & 4 & 1\\
0 & 1 & 2
\end{pmatrix}.
\]

Выполним разложение

\[
A_0=L_0\cdot U_0.
\]

Вычисляем элементы первого столбца и первой строки:

\[
\begin{gathered}
l_{11}^{0}=a_{11}^{(0)}=6,\\[4pt]
u_{12}^{0}=\dfrac{a_{12}^{(0)}}{l_{11}^{0}}
=\dfrac{1}{6}=0.167,\\[4pt]
u_{13}^{0}=\dfrac{a_{13}^{(0)}}{l_{11}^{0}}
=\dfrac{0}{6}=0,\\[4pt]
l_{21}^{0}=a_{21}^{(0)}=1,\qquad
l_{31}^{0}=a_{31}^{(0)}=0.
\end{gathered}
\]

Далее находим элементы второго столбца и второй строки:

\[
\begin{gathered}
l_{22}^{0}=a_{22}^{(0)}-l_{21}^{0}\cdot u_{12}^{0}
=4-1\cdot 0.167=3.833,\\[4pt]
u_{23}^{0}=\dfrac{a_{23}^{(0)}-l_{21}^{0}\cdot u_{13}^{0}}{l_{22}^{0}}
=\dfrac{1-1\cdot 0}{3.833}=0.261,\\[4pt]
l_{32}^{0}=a_{32}^{(0)}-l_{31}^{0}\cdot u_{12}^{0}
=1-0\cdot 0.167=1.
\end{gathered}
\]

Последний диагональный элемент матрицы \( L_0 \):

\[
l_{33}^{0}=a_{33}^{(0)}-l_{31}^{0}\cdot u_{13}^{0}-l_{32}^{0}\cdot u_{23}^{0}
=2-0\cdot 0-1\cdot 0.261=1.739.
\]

Следовательно,

\[
L_0=
\begin{pmatrix}
6 & 0 & 0\\
1 & 3.833 & 0\\
0 & 1 & 1.739
\end{pmatrix},
\qquad
U_0=
\begin{pmatrix}
1 & 0.167 & 0\\
0 & 1 & 0.261\\
0 & 0 & 1
\end{pmatrix}.
\]

Строим

\[
A_1=U_0\cdot L_0.
\]

Подставим найденные матрицы:

\[
A_1=
\begin{pmatrix}
1 & 0.167 & 0\\
0 & 1 & 0.261\\
0 & 0 & 1
\end{pmatrix}
\cdot
\begin{pmatrix}
6 & 0 & 0\\
1 & 3.833 & 0\\
0 & 1 & 1.739
\end{pmatrix}.
\]

После вычислений:

\[
A_1=
\begin{pmatrix}
6.167 & 0.639 & 0\\
1 & 4.094 & 0.454\\
0 & 1 & 1.739
\end{pmatrix}.
\]

Проверяем условие остановки:

\[
\max\left(|6.167-6|,\ |4.094-4|,\ |1.739-2|\right)=0.261.
\]

Поскольку

\[
0.261>0.1,
\]

продолжаем вычисления.

Теперь раскладываем матрицу

\[
A_1=
\begin{pmatrix}
6.167 & 0.639 & 0\\
1 & 4.094 & 0.454\\
0 & 1 & 1.739
\end{pmatrix}.
\]

Выполним разложение

\[
A_1=L_1\cdot U_1.
\]

Вычисляем элементы первого столбца и первой строки:

\[
\begin{gathered}
l_{11}^{1}=a_{11}^{(1)}=6.167,\\[4pt]
u_{12}^{1}=\dfrac{a_{12}^{(1)}}{l_{11}^{1}}
=\dfrac{0.639}{6.167}=0.104,\\[4pt]
u_{13}^{1}=\dfrac{a_{13}^{(1)}}{l_{11}^{1}}
=\dfrac{0}{6.167}=0,\\[4pt]
l_{21}^{1}=a_{21}^{(1)}=1,\qquad
l_{31}^{1}=a_{31}^{(1)}=0.
\end{gathered}
\]

Далее находим элементы второго столбца и второй строки:

\[
\begin{gathered}
l_{22}^{1}=a_{22}^{(1)}-l_{21}^{1}\cdot u_{12}^{1}
=4.094-1\cdot 0.104=3.99,\\[4pt]
u_{23}^{1}=\dfrac{a_{23}^{(1)}-l_{21}^{1}\cdot u_{13}^{1}}{l_{22}^{1}}
=\dfrac{0.454-1\cdot 0}{3.99}=0.114,\\[4pt]
l_{32}^{1}=a_{32}^{(1)}-l_{31}^{1}\cdot u_{12}^{1}
=1-0\cdot 0.104=1.
\end{gathered}
\]

Последний диагональный элемент матрицы \( L_1 \):

\[
l_{33}^{1}=a_{33}^{(1)}-l_{31}^{1}\cdot u_{13}^{1}-l_{32}^{1}\cdot u_{23}^{1}
=1.739-0\cdot 0-1\cdot 0.114=1.625.
\]

Следовательно,

\[
L_1=
\begin{pmatrix}
6.167 & 0 & 0\\
1 & 3.99 & 0\\
0 & 1 & 1.625
\end{pmatrix},
\qquad
U_1=
\begin{pmatrix}
1 & 0.104 & 0\\
0 & 1 & 0.114\\
0 & 0 & 1
\end{pmatrix}.
\]

Строим

\[
A_2=U_1\cdot L_1.
\]

Подставим \( U_1 \) и \( L_1 \):

\[
A_2=
\begin{pmatrix}
1 & 0.104 & 0\\
0 & 1 & 0.114\\
0 & 0 & 1
\end{pmatrix}
\cdot
\begin{pmatrix}
6.167 & 0 & 0\\
1 & 3.99 & 0\\
0 & 1 & 1.625
\end{pmatrix}.
\]

После вычислений:

\[
A_2=
\begin{pmatrix}
6.27 & 0.413 & 0\\
1 & 4.104 & 0.185\\
0 & 1 & 1.625
\end{pmatrix}.
\]

Проверяем критерий:

\[
\max\left(|6.27-6.167|,\ |4.104-4.094|,\ |1.625-1.739|\right)=0.114.
\]

Поскольку

\[
0.114>0.1,
\]

нужна еще одна итерация.

Раскладываем матрицу

\[
A_2=
\begin{pmatrix}
6.27 & 0.413 & 0\\
1 & 4.104 & 0.185\\
0 & 1 & 1.625
\end{pmatrix}.
\]

Выполним разложение

\[
A_2=L_2\cdot U_2.
\]

Вычисляем элементы первого столбца и первой строки:

\[
\begin{gathered}
l_{11}^{2}=a_{11}^{(2)}=6.27,\\[4pt]
u_{12}^{2}=\dfrac{a_{12}^{(2)}}{l_{11}^{2}}
=\dfrac{0.413}{6.270}=0.066,\\[4pt]
u_{13}^{2}=\dfrac{a_{13}^{(2)}}{l_{11}^{2}}
=\dfrac{0}{6.27}=0,\\[4pt]
l_{21}^{2}=a_{21}^{(2)}=1,\qquad
l_{31}^{2}=a_{31}^{(2)}=0.
\end{gathered}
\]

Далее находим элементы второго столбца и второй строки:

\[
\begin{gathered}
l_{22}^{2}=a_{22}^{(2)}-l_{21}^{2}\cdot u_{12}^{2}
=4.104-1\cdot 0.066=4.038,\\[4pt]
u_{23}^{2}=\dfrac{a_{23}^{(2)}-l_{21}^{2}\cdot u_{13}^{2}}{l_{22}^{2}}
=\dfrac{0.185-1\cdot 0}{4.038}=0.046,\\[4pt]
l_{32}^{2}=a_{32}^{(2)}-l_{31}^{2}\cdot u_{12}^{2}
=1-0\cdot 0.066=1.
\end{gathered}
\]

Последний диагональный элемент матрицы \( L_2 \):

\[
l_{33}^{2}=a_{33}^{(2)}-l_{31}^{2}\cdot u_{13}^{2}-l_{32}^{2}\cdot u_{23}^{2}
=1.625-0\cdot 0-1\cdot 0.046=1.58.
\]

Следовательно,

\[
L_2=
\begin{pmatrix}
6.270 & 0 & 0\\
1 & 4.038 & 0\\
0 & 1 & 1.58
\end{pmatrix},
\qquad
U_2=
\begin{pmatrix}
1 & 0.066 & 0\\
0 & 1 & 0.046\\
0 & 0 & 1
\end{pmatrix}.
\]

Строим

\[
A_3=U_2\cdot L_2.
\]

Подставим матрицы:

\[
A_3=
\begin{pmatrix}
1 & 0.066 & 0\\
0 & 1 & 0.046\\
0 & 0 & 1
\end{pmatrix}
\cdot
\begin{pmatrix}
6.27 & 0 & 0\\
1 & 4.038 & 0\\
0 & 1 & 1.58
\end{pmatrix}.
\]

После вычислений:

\[
A_3=
\begin{pmatrix}
6.336 & 0.266 & 0\\
1 & 4.084 & 0.072\\
0 & 1 & 1.58
\end{pmatrix}.
\]

Проверяем условие остановки:

\[
\max\left(|6.336-6.27|,\ |4.084-4.104|,\ |1.58-1.625|\right)=0.066.
\]

Поскольку

\[
0.066\le 0.1,
\]

итерационный процесс останавливаем.

Следовательно, искомые собственные значения:

\[
\lambda_1=6.336,
\qquad
\lambda_2=4.084,
\qquad
\lambda_3=1.58.
\]

Пример 3. Найти собственные значения матрицы методом LU-разложения с точностью \( \varepsilon=0.1 \):
\[
A=
\begin{pmatrix}
7 & 1 & 0 & 0\\
1 & 5 & 1 & 0\\
0 & 1 & 3 & 1\\
0 & 0 & 1 & 1
\end{pmatrix}.
\]

Обозначим

\[
A_0=A=
\begin{pmatrix}
7 & 1 & 0 & 0\\
1 & 5 & 1 & 0\\
0 & 1 & 3 & 1\\
0 & 0 & 1 & 1
\end{pmatrix}.
\]

Выполняем разложение

\[
A_0=L_0\cdot U_0.
\]

Вычисляем первый столбец и первую строку:

\[
\begin{gathered}
l_{11}^{0}=a_{11}^{(0)}=7,\\[4pt]
u_{12}^{0}=\dfrac{a_{12}^{(0)}}{l_{11}^{0}}
=\dfrac{1}{7}=0.143,\\[4pt]
u_{13}^{0}=\dfrac{a_{13}^{(0)}}{l_{11}^{0}}
=\dfrac{0}{7}=0,\\[4pt]
u_{14}^{0}=\dfrac{a_{14}^{(0)}}{l_{11}^{0}}
=\dfrac{0}{7}=0,\\[4pt]
l_{21}^{0}=a_{21}^{(0)}=1,\qquad
l_{31}^{0}=a_{31}^{(0)}=0,\qquad
l_{41}^{0}=a_{41}^{(0)}=0.
\end{gathered}
\]

Далее находим элементы второго столбца и второй строки:

\[
\begin{gathered}
l_{22}^{0}=a_{22}^{(0)}-l_{21}^{0}\cdot u_{12}^{0}
=5-1\cdot 0.143=4.857,\\[4pt]
u_{23}^{0}=\dfrac{a_{23}^{(0)}-l_{21}^{0}\cdot u_{13}^{0}}{l_{22}^{0}}
=\dfrac{1-1\cdot 0}{4.857}=0.206,\\[4pt]
u_{24}^{0}=\dfrac{a_{24}^{(0)}-l_{21}^{0}\cdot u_{14}^{0}}{l_{22}^{0}}
=\dfrac{0-1\cdot 0}{4.857}=0,\\[4pt]
l_{32}^{0}=a_{32}^{(0)}-l_{31}^{0}\cdot u_{12}^{0}
=1-0\cdot 0.143=1,\\[4pt]
l_{42}^{0}=a_{42}^{(0)}-l_{41}^{0}\cdot u_{12}^{0}
=0-0\cdot 0.143=0.
\end{gathered}
\]

Теперь вычисляем элементы третьего столбца и третьей строки:

\[
\begin{gathered}
l_{33}^{0}=a_{33}^{(0)}-l_{31}^{0}\cdot u_{13}^{0}-l_{32}^{0}\cdot u_{23}^{0}
=3-0\cdot 0-1\cdot 0.206=2.794,\\[4pt]
u_{34}^{0}=\dfrac{a_{34}^{(0)}-l_{31}^{0}\cdot u_{14}^{0}-l_{32}^{0}\cdot u_{24}^{0}}{l_{33}^{0}}
=\dfrac{1-0\cdot 0-1\cdot 0}{2.794}=0.358,\\[4pt]
l_{43}^{0}=a_{43}^{(0)}-l_{41}^{0}\cdot u_{13}^{0}-l_{42}^{0}\cdot u_{23}^{0}
=1-0\cdot 0-0\cdot 0.206=1.
\end{gathered}
\]

Последний диагональный элемент матрицы \( L_0 \):

\[
l_{44}^{0}=a_{44}^{(0)}-l_{41}^{0}\cdot u_{14}^{0}-l_{42}^{0}\cdot u_{24}^{0}-l_{43}^{0}\cdot u_{34}^{0}
=1-0\cdot 0-0\cdot 0-1\cdot 0.358=0.642.
\]

Следовательно,

\[
L_0=
\begin{pmatrix}
7 & 0 & 0 & 0\\
1 & 4.857 & 0 & 0\\
0 & 1 & 2.794 & 0\\
0 & 0 & 1 & 0.642
\end{pmatrix},
\qquad
U_0=
\begin{pmatrix}
1 & 0.143 & 0 & 0\\
0 & 1 & 0.206 & 0\\
0 & 0 & 1 & 0.358\\
0 & 0 & 0 & 1
\end{pmatrix}.
\]

Строим

\[
A_1=U_0\cdot L_0.
\]

Подставим найденные матрицы:

\[
A_1=
\begin{pmatrix}
1 & 0.143 & 0 & 0\\
0 & 1 & 0.206 & 0\\
0 & 0 & 1 & 0.358\\
0 & 0 & 0 & 1
\end{pmatrix}
\cdot
\begin{pmatrix}
7 & 0 & 0 & 0\\
1 & 4.857 & 0 & 0\\
0 & 1 & 2.794 & 0\\
0 & 0 & 1 & 0.642
\end{pmatrix}.
\]

После вычислений получаем

\[
A_1=
\begin{pmatrix}
7.143 & 0.694 & 0 & 0\\
1 & 5.063 & 0.575 & 0\\
0 & 1 & 3.152 & 0.23\\
0 & 0 & 1 & 0.642
\end{pmatrix}.
\]

Проверяем условие остановки:

\[
\max\left(|7.143-7|,\ |5.063-5|,\ |3.152-3|,\ |0.642-1|\right)=0.358.
\]

Поскольку

\[
0.358>0.1,
\]

нужна еще одна итерация.

Раскладываем матрицу

\[
A_1=
\begin{pmatrix}
7.143 & 0.694 & 0 & 0\\
1 & 5.063 & 0.575 & 0\\
0 & 1 & 3.152 & 0.23\\
0 & 0 & 1 & 0.642
\end{pmatrix}.
\]

Выполняем разложение

\[
A_1=L_1\cdot U_1.
\]

Вычисляем первый столбец и первую строку:

\[
\begin{gathered}
l_{11}^{1}=a_{11}^{(1)}=7.143,\\[4pt]
u_{12}^{1}=\dfrac{a_{12}^{(1)}}{l_{11}^{1}}
=\dfrac{0.694}{7.143}=0.097,\\[4pt]
u_{13}^{1}=\dfrac{a_{13}^{(1)}}{l_{11}^{1}}
=\dfrac{0}{7.143}=0,\\[4pt]
u_{14}^{1}=\dfrac{a_{14}^{(1)}}{l_{11}^{1}}
=\dfrac{0}{7.143}=0,\\[4pt]
l_{21}^{1}=a_{21}^{(1)}=1,\qquad
l_{31}^{1}=a_{31}^{(1)}=0,\qquad
l_{41}^{1}=a_{41}^{(1)}=0.
\end{gathered}
\]

Далее находим элементы второго столбца и второй строки:

\[
\begin{gathered}
l_{22}^{1}=a_{22}^{(1)}-l_{21}^{1}\cdot u_{12}^{1}
=5.063-1\cdot 0.097=4.966,\\[4pt]
u_{23}^{1}=\dfrac{a_{23}^{(1)}-l_{21}^{1}\cdot u_{13}^{1}}{l_{22}^{1}}
=\dfrac{0.575-1\cdot 0}{4.966}=0.116,\\[4pt]
u_{24}^{1}=\dfrac{a_{24}^{(1)}-l_{21}^{1}\cdot u_{14}^{1}}{l_{22}^{1}}
=\dfrac{0-1\cdot 0}{4.966}=0,\\[4pt]
l_{32}^{1}=a_{32}^{(1)}-l_{31}^{1}\cdot u_{12}^{1}
=1-0\cdot 0.097=1,\\[4pt]
l_{42}^{1}=a_{42}^{(1)}-l_{41}^{1}\cdot u_{12}^{1}
=0-0\cdot 0.097=0.
\end{gathered}
\]

Теперь вычисляем элементы третьего столбца и третьей строки:

\[
\begin{gathered}
l_{33}^{1}=a_{33}^{(1)}-l_{31}^{1}\cdot u_{13}^{1}-l_{32}^{1}\cdot u_{23}^{1}
=3.152-0\cdot 0-1\cdot 0.116=3.036,\\[4pt]
u_{34}^{1}=\dfrac{a_{34}^{(1)}-l_{31}^{1}\cdot u_{14}^{1}-l_{32}^{1}\cdot u_{24}^{1}}{l_{33}^{1}}
=\dfrac{0.23-0\cdot 0-1\cdot 0}{3.036}=0.076,\\[4pt]
l_{43}^{1}=a_{43}^{(1)}-l_{41}^{1}\cdot u_{13}^{1}-l_{42}^{1}\cdot u_{23}^{1}
=1-0\cdot 0-0\cdot 0.116=1.
\end{gathered}
\]

Последний диагональный элемент матрицы \( L_1 \):

\[
l_{44}^{1}=a_{44}^{(1)}-l_{41}^{1}\cdot u_{14}^{1}-l_{42}^{1}\cdot u_{24}^{1}-l_{43}^{1}\cdot u_{34}^{1}
=0.642-0\cdot 0-0\cdot 0-1\cdot 0.076=0.566.
\]

Следовательно,

\[
L_1=
\begin{pmatrix}
7.143 & 0 & 0 & 0\\
1 & 4.966 & 0 & 0\\
0 & 1 & 3.036 & 0\\
0 & 0 & 1 & 0.566
\end{pmatrix},
\qquad
U_1=
\begin{pmatrix}
1 & 0.097 & 0 & 0\\
0 & 1 & 0.116 & 0\\
0 & 0 & 1 & 0.076\\
0 & 0 & 0 & 1
\end{pmatrix}.
\]

Строим

\[
A_2=U_1\cdot L_1.
\]

Подставим \( U_1 \) и \( L_1 \):

\[
A_2=
\begin{pmatrix}
1 & 0.097 & 0 & 0\\
0 & 1 & 0.116 & 0\\
0 & 0 & 1 & 0.076\\
0 & 0 & 0 & 1
\end{pmatrix}
\cdot
\begin{pmatrix}
7.143 & 0 & 0 & 0\\
1 & 4.966 & 0 & 0\\
0 & 1 & 3.036 & 0\\
0 & 0 & 1 & 0.566
\end{pmatrix}.
\]

После вычислений получаем

\[
A_2=
\begin{pmatrix}
7.24 & 0.482 & 0 & 0\\
1 & 5.082 & 0.352 & 0\\
0 & 1 & 3.112 & 0.043\\
0 & 0 & 1 & 0.566
\end{pmatrix}.
\]

Проверим критерий остановки:

\[
\max\left(|7.24-7.143|,\ |5.082-5.063|,\ |3.112-3.152|,\ |0.566-0.642|\right)=0.097.
\]

Поскольку

\[
0.097\le 0.1,
\]

итерационный процесс останавливаем.

Следовательно, искомые собственные значения:

\[
\lambda_1=7.24,
\qquad
\lambda_2=5.082,
\qquad
\lambda_3=3.112,
\qquad
\lambda_4=0.566.
\]

Что Изучать Дальше: Другие Численные Методы

После LU-разложения стоит посмотреть и на другие численные подходы. Они решают похожие задачи, но работают по-другому. Так легче понять, какой метод удобен в разных ситуациях.

  1. Метод вращения: Как постепенно упрощают матрицу — В статье речь пойдет о нахождении собственных значений симметрической матрицы с помощью последовательных вращений и перехода к диагональному виду.
  2. Степенной метод: Как найти наибольшее собственное значение — В статье будет показано, как степенной метод помогает приближенно найти наибольшее по модулю собственное значение матрицы.
  3. Метод исчерпывания: Как найти следующее собственное значение — В статье речь пойдет о случае, когда одно собственное значение уже известно, а следующее находят с помощью дополнительного преобразования матрицы.

Собственные Значения Матрицы: Алгоритм Для Программной Реализации

Если вам нравится программирование, этот метод можно легко превратить в небольшой учебный проект. Блок-схема ниже показывает логику алгоритма, который выполняет итерационный процесс на основе LU-разложения для матрицы \( 2\times 2 \), контролирует точность вычислений и выводит приближенные собственные значения матрицы.

Попробуйте реализовать этот алгоритм в Pascal, Python, C++, JavaScript или на другом языке, с которым вам удобно работать. Так вы не только лучше поймете рассмотренный подход, но и увидите, как математическая идея постепенно превращается в рабочий программный код.

Блок-схема алгоритма, показывающая, как методом LU-разложения находить собственные значения матрицы второго порядка