Калькулятор LU-разложения

Разложите квадратную матрицу на нижнюю и верхнюю треугольные матрицы методом Дулиттла.

Разложение матрицы
Разделяйте столбцы запятыми или пробелами, а строки матрицы — точками с запятой.

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

LU-разложение представляет квадратную матрицу A как произведение L и U. Матрица L — нижняя треугольная: все элементы выше главной диагонали равны нулю. Матрица U — верхняя треугольная: все элементы ниже главной диагонали равны нулю. В используемой здесь схеме Дулиттла все диагональные элементы L равны единице. Умножение двух показанных множителей восстанавливает исходную матрицу с точностью до обычного округления чисел с плавающей точкой. Факторизация строится на исключении Гаусса. Каждый множитель, обычно используемый для обнуления элемента под ведущим, сохраняется в L. Формирующаяся ступенчатая матрица становится U. Такой подход сохраняет выполненную работу, а не отбрасывает её. Получив L и U, можно повторно использовать одну матрицу коэффициентов для решения систем с множеством разных правых частей гораздо эффективнее, чем каждый раз проводить исключение заново. Чтобы решить A × x = b, сначала решите L × y = b прямой подстановкой, затем U × x = y обратной подстановкой. Треугольные системы просты, поскольку каждое следующее уравнение вводит лишь одну новую неизвестную. LU-множители полезны и для определителей: при единичной диагонали L определитель равен произведению диагональных элементов U. Обращение матриц и численное моделирование также используют эту структуру как базовый элемент. Калькулятор принимает компактную запись матрицы. Разделяйте значения внутри строки запятыми или пробелами, а строки — точками с запятой. Число элементов каждой строки должно совпадать с числом строк, поскольку для этой формы LU-разложения требуется квадратная матрица. Поддерживаются отрицательные и дробные значения. Округление выполняется только при отображении, а само исключение использует арифметику двойной точности JavaScript. Реализация использует метод Дулиттла без выбора главного элемента, поэтому каждый ведущий элемент в процессе исключения должен быть ненулевым. Некоторые вполне обратимые матрицы начинаются с нулевого ведущего элемента и требуют перестановки строк до разложения. В полноценной численной библиотеке эта операция описывается матрицей перестановки P в соотношении P × A = L × U. При ошибке ведущего элемента переставьте подходящие строки перед вводом или используйте решатель с выбором главного элемента. Для хорошо обусловленных учебных примеров и матриц с пригодными диагональными ведущими элементами результат разложения нагляден и легко проверяется.

Примеры LU-разложения

Матрица AМножителиПроверка
4,3;6,3L: 1,0;1.5,1 и U: 4,3;0,-1.5Произведение L и U возвращает исходную матрицу с двумя строками.
2,0;0,5L: единичная матрица и U: 2,0;0,5Диагональная матрица уже является верхней треугольной.
2,1,1;4,-6,0;-2,7,2L: 1,0,0;2,1,0;-1,-1,1Соответствующие строки U: 2,1,1;0,-8,-2;0,0,1.

Как вычислить LU-разложение

  1. Запишите каждую строку числами через запятую или пробел.
  2. Соедините строки точками с запятой и убедитесь, что матрица квадратная.
  3. Нажмите «Разложить матрицу», чтобы выполнить исключение Гаусса по схеме Дулиттла.
  4. Посмотрите L и U, затем перемножьте их и проверьте совпадение с исходной матрицей.

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

Что такое LU-разложение?

Это разложение квадратной матрицы на нижнюю и верхнюю треугольные матрицы. Их произведение восстанавливает исходную матрицу, если перестановка строк не нужна.

Чем полезна LU-факторизация?

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

В каком формате вводить матрицу?

Разделяйте элементы строки запятыми или пробелами, а строки — точками с запятой. В каждой строке должно быть столько элементов, сколько всего строк.

Почему возникает ошибка ведущего элемента?

Метод Дулиттла без выбора главного элемента не допускает деления на нулевой ведущий элемент. Перестановка строк может помочь; универсальные программы используют матрицу перестановки и частичный выбор главного элемента.

Можно вводить дробные и отрицательные значения?

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