LU-разложение

LU-разложение (LU-декомпозиция, LU-факторизация) — представление матрицы A {\displaystyle A} в виде произведения двух матриц, A = L U {\displaystyle A=LU} , где L {\displaystyle L}  — нижняя треугольная матрица, а U {\displaystyle U}  — верхняя треугольная матрица.

LU-разложение используется для решения систем линейных уравнений, обращения матриц и вычисления определителя. LU-разложение существует только в том случае, когда матрица A {\displaystyle A} обратима, а все ведущие (угловые) главные миноры матрицы A {\displaystyle A} невырождены[1].

Этот метод является одной из разновидностей метода Гаусса.

Применения

Решение систем линейных уравнений

Полученное LU-разложение матрицы A {\displaystyle A} (матрица коэффициентов системы) может быть использовано для решения семейства систем линейных уравнений с различными векторами b {\displaystyle b} в правой части[2]:

A x = b {\displaystyle Ax=b}

Если известно LU-разложение матрицы A {\displaystyle A} , A = L U {\displaystyle A=LU} , исходная система может быть записана как

L U x = b . {\displaystyle LUx=b.}

Эта система может быть решена в два шага. На первом шаге решается система

L y = b . {\displaystyle Ly=b.}

Поскольку L {\displaystyle L}  — нижняя треугольная матрица, эта система решается непосредственно прямой подстановкой.

На втором шаге решается система

U x = y . {\displaystyle Ux=y.}

Поскольку U {\displaystyle U}  — верхняя треугольная матрица, эта система решается непосредственно обратной подстановкой.

Обращение матриц

Обращение матрицы A {\displaystyle A} эквивалентно решению линейной системы

A X = I {\displaystyle AX=I} ,

где X {\displaystyle X}  — неизвестная матрица, I {\displaystyle I}  — единичная матрица. Решение X {\displaystyle X} этой системы является обратной матрицей A 1 {\displaystyle A^{-1}} .

Систему можно решить описанным выше методом LU-разложения.

Вычисление определителя матрицы

Имея LU-разложение матрицы A {\displaystyle A} ,

A = L U {\displaystyle A=LU} ,

можно непосредственно вычислить её определитель,

det ( A ) = det ( L U ) = det ( L ) det ( U ) = ( i = 1 n L i i ) ( i = 1 n U i i ) {\displaystyle \det(A)=\det(LU)=\det(L)\det(U)=\left(\prod _{i=1}^{n}L_{ii}\right)\left(\prod _{i=1}^{n}U_{ii}\right)} ,

где n {\displaystyle n}  — размер матрицы A {\displaystyle A} , L i i {\displaystyle L_{ii}} и U i i {\displaystyle U_{ii}}  — диагональные элементы матриц L {\displaystyle L} и U {\displaystyle U} .

Вывод формулы

Исходя из области применения, LU-разложение может быть применено только к невырожденной матрице, поэтому далее будем считать что матрица A {\displaystyle A} невырождена.

Поскольку и в первой строке матрицы L {\displaystyle L} , и в первом столбце матрицы U {\displaystyle U} , все элементы, кроме, возможно, первого, равны нулю, имеем

a 11 = l 11 u 11 {\displaystyle a_{11}=l_{11}u_{11}}

Если a 11 = 0 {\displaystyle a_{11}=0} , то l 11 = 0 {\displaystyle l_{11}=0} или u 11 = 0 {\displaystyle u_{11}=0} . В первом случае целиком состоит из нулей первая строка матрицы L {\displaystyle L} , во втором — первый столбец матрицы U {\displaystyle U} . Следовательно, L {\displaystyle L} или U {\displaystyle U} вырождена, а значит, вырождена A {\displaystyle A} , что приводит к противоречию. Таким образом, если a 11 = 0 {\displaystyle a_{11}=0} , то невырожденная матрица A {\displaystyle A} не имеет LU-разложения.

Пусть a 11 0 {\displaystyle a_{11}\neq 0} , тогда l 11 0 {\displaystyle l_{11}\neq 0} и u 11 0 {\displaystyle u_{11}\neq 0} . Поскольку столбец L и строка U определены с точностью до умножения строки U на константу и деления столбца L на ту же константу, мы можем потребовать, чтобы l 11 = 1 {\displaystyle l_{11}=1} . При этом u 11 = a 11 {\displaystyle u_{11}=a_{11}} .

Разделим матрицу A на клетки:

A = ( a 11 w T v A ) {\displaystyle A={\begin{pmatrix}a_{11}&w^{T}\\v&A'\\\end{pmatrix}}} ,

где v , w T , A {\displaystyle v,w^{T},A'} имеют размерность соответственно ( N 1 ) × 1 {\displaystyle (N-1)\times 1} , 1 × ( N 1 ) {\displaystyle 1\times (N-1)} , ( N 1 ) × ( N 1 ) {\displaystyle (N-1)\times (N-1)} .

Аналогично разделим на клетки матрицы L {\displaystyle L} и U {\displaystyle U} :

L = ( 1 0 v l L ) ,   U = ( a 11 w u T 0 U ) . {\displaystyle L={\begin{pmatrix}1&0\\v_{l}&L'\\\end{pmatrix}},\ U={\begin{pmatrix}a_{11}&w_{u}^{T}\\0&U'\\\end{pmatrix}}.}

Уравнение A = L U {\displaystyle A=LU} принимает вид

w T = w u T , {\displaystyle w^{T}=w_{u}^{T},}
v = a 11 v l , {\displaystyle v=a_{11}v_{l},}
A = v l w u T + L U . {\displaystyle A'=v_{l}w_{u}^{T}+L'U'.}

Решая систему уравнений относительно v l {\displaystyle v_{l}} , w u {\displaystyle w_{u}} , L {\displaystyle L'} , U {\displaystyle U'} , получаем:

w u = w , {\displaystyle w_{u}=w,}
v l = v / a 11 , {\displaystyle v_{l}=v/a_{11},}
L U = A v w T / a 11 . {\displaystyle L'U'=A'-vw^{T}/a_{11}.}

Окончательно имеем:

L = ( 1 0 v / a 11 L ) , {\displaystyle L={\begin{pmatrix}1&0\\v/a_{11}&L'\\\end{pmatrix}},}
U = ( a 11 w T 0 U ) , {\displaystyle U={\begin{pmatrix}a_{11}&w^{T}\\0&U'\\\end{pmatrix}},}
L U = A v w T / a 11 . {\displaystyle L'U'=A'-vw^{T}/a_{11}.}

Итак, мы свели LU-разложение матрицы размера N × N {\displaystyle N\times N} к LU-разложению матрицы размера ( N 1 ) × ( N 1 ) {\displaystyle (N-1)\times (N-1)} .

Выражение A v w T / a 11 {\displaystyle A'-vw^{T}/a_{11}} называется дополнением Шура элемента a 11 {\displaystyle a_{11}} в матрице A[1].

Алгоритм

Один из алгоритмов для вычисления LU-разложения приведён ниже.[3]

Будем использовать следующие обозначения для элементов матриц: A = ( a i j ) {\displaystyle A=(a_{ij})} , L = ( l i j ) {\displaystyle L=(l_{ij})} , U = ( u i j ) {\displaystyle U=(u_{ij})} , i , j = 1 n {\displaystyle i,j=1\dots n} ; причём диагональные элементы матрицы L {\displaystyle L} : l i i = 1 {\displaystyle l_{ii}=1} , i = 1 n {\displaystyle i=1\dots n} .

Найти матрицы L {\displaystyle L} и U {\displaystyle U} можно следующим образом (выполнять шаги следует строго по порядку, так как следующие элементы находятся с использованием предыдущих):

  1. Цикл i от 1 до n
    1. Цикл j от 1 до n
      1. uij=0, lij=0
      2. lii=1
  2. Цикл i от 1 до n
    1. Цикл j от 1 до n
      1. Если i<=j: u i j = a i j k = 1 i l i k u k j {\displaystyle u_{ij}=a_{ij}-\sum _{k=1}^{i}l_{ik}*u_{kj}}
      2. Если i>j: l i j = ( a i j k = 1 j l i k u k j ) / u j j {\displaystyle l_{ij}=(a_{ij}-\sum _{k=1}^{j}l_{ik}*u_{kj})/u_{jj}}

В итоге мы получим матрицы — L {\displaystyle L} и U {\displaystyle U} .

См. также

Примечания

  1. 1 2 Е. Е. Тыртышников. Матричный анализ и линейная алгебра. — 2004-2005.
  2. Левитин, 2006.
  3. Вержбицкий В.М. Основы численных методов. Учебник для вузов. — Высшая школа, 2002. — С. 63-64. — ISBN 5-06-004020-8.

Литература

  • Ортега Дж. Введение в параллельные и векторные методы решения линейных систем. — М.: Мир, 1991. — 376 с. — ISBN 5-03-001941-3.
  • Левитин А. В. Алгоритмы. Введение в разработку и анализМ.: Вильямс, 2006. — 576 с. — ISBN 978-5-8459-0987-9
Перейти к шаблону «Векторы и матрицы»
Векторы и матрицы
Векторы
Основные понятия
Виды векторов
Операции над векторами
Типы пространств
Матрицы
Основные понятия
Специальные матрицы
Разложения матриц
Другое