LU-разложение
Для улучшения этой статьи желательно: |
LU-разложение (LU-декомпозиция, LU-факторизация) — представление матрицы в виде произведения двух матриц, , где — нижняя треугольная матрица обратная матрице исключения, а — верхняя треугольная матрица, которая получается из матрицы в результате применения матрицы исключения при последовательном исключении неизвестных.
LU-разложение используется для решения систем линейных уравнений, обращения матриц и вычисления определителя. LU-разложение существует только в том случае, когда матрица обратима, а все ведущие (угловые) главные миноры матрицы невырождены[1].
LU-разложение является обратной операцией по отношению к последовательному исключению неизвестных с помощью матрицы исключения. Матрица является обратной матрице исключения . В отличии от матрицы исключения , обратная ей матрица дает удобную формулу с множителями Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle ℓ_{ij}} , расположенными каждый на своем месте (См. Матрица, обратная матрице исключения).
Метод LU-разложения является одной из разновидностей метода Гаусса.
Применения[править]
Решение систем линейных уравнений[править]
Полученное LU-разложение матрицы (матрица коэффициентов системы) может быть использовано для решения семейства систем линейных уравнений с различными векторами в правой части[2]:
Если известно LU-разложение матрицы , , исходная система может быть записана как
Эта система может быть решена в два шага. На первом шаге решается система
Поскольку — нижняя треугольная матрица, эта система решается непосредственно прямой подстановкой.
На втором шаге решается система
Поскольку — верхняя треугольная матрица, эта система решается непосредственно обратной подстановкой.
Обращение матриц[править]
Обращение матрицы эквивалентно решению линейной системы
- ,
где — неизвестная матрица, — единичная матрица. Решение этой системы является обратной матрицей .
Систему можно решить описанным выше методом LU-разложения.
Вычисление определителя матрицы[править]
Имея LU-разложение матрицы ,
- ,
можно непосредственно вычислить её определитель,
- ,
где — размер матрицы , и — диагональные элементы матриц и .
Вывод формулы[править]
Первый способ[править]
При рассмотрении равенства следует учитывать свойства последовательного исключения неизвестных из матрицы для получения верхней треугольной матрицы . Ведущие строки, которые вычитаются из нежерасположенных строк, не являются строками первоначальной матрицы , поскольку процесс последовательного исключения строк меняет (в определенных случаях) строки, чтобы сделать их ведущими. Но ведущие строки являются строками матрицы , так как последовательное исключение неизвестных не меняет строки снова, если они уже являются ведущими.
Так в примере (См. Матрица исключения):
- Невозможно разобрать выражение (неизвестная функция «\begin{bmatrix}»): {\displaystyle E=E_{32}E_{31}E_{21}= \begin{bmatrix} 1 & 0 & 0 \\0 & 1 & 0 \\ 0 & -ℓ_{32} & 1 \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 \\0 & 1 & 0 \\ -ℓ_{31} & 0 & 1 \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 \\-ℓ_{21} & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}= \begin{bmatrix} 1 & 0 & 0 \\-ℓ_{21} & 1 & 0 \\(ℓ_{32}ℓ_{21}-ℓ_{31}) & -ℓ_{32} & 1 \end{bmatrix}}
при вычислении третьей строки производится вычитание кратных количеств полученных ранее, предыдущих ведущих строк матрицы (но не матрицы ):
- Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle \text{Строка}\ 3\ \text{матрицы}\ U\ = (\text{Строка}\ 3\ \text{матрицы}\ A)\ - ℓ_{31}\times(\text{Строка}\ 1\ \text{матрицы}\ U)\ - ℓ_{32}\times(\text{Строка}\ 2\ \text{матрицы}\ U)\ }
| Исходная матрица | Приводим элемент {3,1} матрицы, находящийся под ведущим элементом первой строки, к нулю | Приводим элемент {3,2} матрицы, находящийся под ведущим элементом второй строки, к нулю | |
|---|---|---|---|
| Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle - ℓ_{31}(\text{Строка}\ 1\ \text{матрицы}\ U)} | Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle - ℓ_{32}(\text{Строка}\ 2\ \text{матрицы}\ U) } |
Таким образом строка Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle [ℓ_{31},ℓ_{32},1]} умножается на матрицу , что видно если мы перепишем равенство:
- Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle \text{Строка}\ 3\ \text{матрицы}\ A\ = ℓ_{31}\times(\text{Строка}\ 1\ \text{матрицы}\ U)\ + ℓ_{32}\times(\text{Строка}\ 2\ \text{матрицы}\ U)\ +1\times(\text{Строка}\ 3\ \text{матрицы}\ U)\ }
Это равенство соответствует равенству для третьей строки , где третья строка содержит Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle ℓ_{31},ℓ_{32},1} . Все строки имеют аналогичный вид независимо от размера матрицы . Таким образом без перестановки строк мы имеем .
Второй способ. Умножение столбцов кратно строкам[править]
Суть этого способа вывода формулы в последовательном исключении осуществленном посредством вычитания одного столбца матрицы из матрицы количеством раз равного одной строке матрицы .
Последовательное исключение неизвестных начинается с ведущей строки матриц и , которая равна первой строке матрицы . Ведущую строку умножаем на числа Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle ℓ_{21}} и Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle ℓ_{31}} и, в конечном итоге, на число Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle ℓ_{n1}} . Следующим действием производим ее вычитание из строки 2 и строки 3 и, в конечном итоге, из строки матрицы . Если в первом действии, с умножением, мы выбрали числа Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle ℓ_{21}=a_{21}/a_{11}} , Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle ℓ_{31}=a_{31}/a_{11}} и, в конечном итоге, Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle ℓ_{n1}=a_{n1}/a_{11}} , то результом вычитания в столбце 1 будут нули.
Первый шаг удаляет Невозможно разобрать выражение (неизвестная функция «\begin{bmatrix}»): {\displaystyle \begin{bmatrix} 1\times(\text{строка}\ 1) \\ ℓ_{21}\times(\text{строка}\ 1) \\ ℓ_{31}\times(\text{строка}\ 1) \\ℓ_{41}\times(\text{строка}\ 1) \end{bmatrix}} из , чтобы получить
То есть мы удалили одноранговую матрицу, произведя умножение столбца Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle ℓ_{1}=(1,ℓ_{21},ℓ_{31},ℓ_{41})} на строку 1 матрицы - первая ведущая строка матрицы math>U</math>.
Следующий шаг - осуществляем подобные операции с матрицей , чтобы получить матрицу :
Второй шаг удаляет Невозможно разобрать выражение (неизвестная функция «\begin{bmatrix}»): {\displaystyle \begin{bmatrix} 0\times(\text{строка}\ 1) \\ 1\times(\text{строка}\ 1) \\ ℓ_{32}\times(\text{строка}\ 1) \\ℓ_{42}\times(\text{строка}\ 1) \end{bmatrix}} из , чтобы получить
Строка 2 матрицы это вторая ведущая строка и одновременно вторая ведущая строка матрицы math>U</math>. Мы удалили столбец Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle ℓ_{1}=(0,1,ℓ_{32},ℓ_{42})} количество раз равное этой второй ведущей строке. Проводя дальшейшие шаги подобным же образом, мы на каждом шаге удаляем столбец Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle ℓ_{j}} матрицы количество раз равное ведущей строке матрицы . Если произвести обратную операцию сложения этих произведений столбцов Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle ℓ_{j}} матрицы и ведущих строк матрицы мы получим:
- Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle A=ℓ_{1}u_{1}+ℓ_{2}u_{2}+\cdots+ℓ_{n}u_{n}= \begin{bmatrix} & & \\ ℓ_{1} & \cdots & ℓ_{n} \\& & \end{bmatrix} \begin{bmatrix} &u_{1} & \\ & \vdots & \\&u_{n} & \end{bmatrix} =LU }
Выражение Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle ℓ_{1}u_{1}+ℓ_{2}u_{2}+\cdots+ℓ_{n}u_{n}} является сложением одноранговых матрицы.
Третий способ[править]
Исходя из области применения LU-разложение может быть применено только к невырожденной матрице, поэтому далее будем считать что матрица невырождена. Поскольку и в первой строке матрицы , так как она является нижней треугольной матрицей, и в первом столбце матрицы , так как она является верхней треугольной матрицей, все элементы, кроме, возможно, первого, равны нулю, имеем
- Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle a_{11} = ℓ_{11} u_{11}}
Если , то Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle ℓ_{11} = 0} или . В первом случае целиком состоит из нулей первая строка матрицы , во втором — первый столбец матрицы . Следовательно, или вырождена, а значит, вырождена , что приводит к противоречию. Таким образом, если , то невырожденная матрица не имеет LU-разложения.
Пусть , тогда Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle ℓ_{11} \ne 0} и . Поскольку L и U определены с точностью до умножения U на константу и деления L на ту же константу, мы можем потребовать, чтобы Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle ℓ_{11} = 1} . При этом .
Разделим матрицу A на блоки:
- ,
где имеют размерность соответственно , , ( - число строк и столбов матрицы ).
Аналогично разделим на блоки матрицы и :
Уравнение принимает вид
Решая систему уравнений относительно , , , , получаем:
Окончательно имеем:
Итак, мы свели LU-разложение матрицы размера к LU-разложению матрицы размера .
Разложение возможно без перестановки и без нулей на месте ведущих элементов если все верхние левые , где равно от 1 до подматрицы-блоки матрицы являются невырожденными.
То есть . Каждая подматрица должна быть невырожденной, чтобы в конечном итоге можно было получить равенство .
Выражение называется дополнением Шура элемента в матрице A[1].
Алгоритм[править]
Один из алгоритмов для вычисления LU-разложения приведён ниже.[3]
Будем использовать следующие обозначения для элементов матриц: , , , ; причём диагональные элементы матрицы : , .
Найти матрицы и можно следующим образом (выполнять шаги следует строго по порядку, так как следующие элементы находятся с использованием предыдущих):
- Цикл i от 1 до n
- Цикл j от 1 до n
- uij=0, lij=0
- lii=1
- Цикл j от 1 до n
- Цикл i от 1 до n
- Цикл j от 1 до n
- Если i<=j:
- Если i>j:
- Цикл j от 1 до n
В итоге мы получим матрицы — и .
LDU-разложение[править]
LDU-разложение представление матрицы в виде произведения трех матриц, , где — нижняя треугольная матрица обратная матрице исключения, - диагональная матрица а — верхняя треугольная матрица. LDU-разложение это продолжение LU-разложения, когда диагональные эелементы матриц LU-факторизации определнным образом выносятся в отдельную, диагональную матрицу .
Например:
См. также[править]
Примечания[править]
- ↑ 1,0 1,1 Е. Е. Тыртышников. Матричный анализ и линейная алгебра. — 2004-2005.
- ↑ Левитин, 2006.
- ↑ Вержбицкий В.М. Основы численных методов. Учебник для вузов. — Высшая школа, 2002. — С. 63-64. — ISBN 5-06-004020-8.
Литература[править]
- Ортега Дж. Введение в параллельные и векторные методы решения линейных систем. — М.: Мир, 1991. — 376 с. — ISBN 5-03-001941-3.