8.3.2. Разложение Холецкого



Разложением Холецкого симметричной (т. е. содержащей одинаковые элементы на местах, расположенных симметрично относительно главной диагонали) матрицы А является представление вида A=LLT, где L — треугольная матрица. Алгоритм Холецкого реализован во встроенной функции choiesky:

  •  choiesky (А) — разложение Холецкого:

  •  А — квадратная, положительно определенная симметричная матрица.


Пример разложения Холецкого приведен в листинге 8.18. Обратите внимание, что в результате получается верхняя треугольная матрица (нули сверху от диагонали), а транспонированная матрица является нижней треугольной. В последней строке листинга приведена проверка правильности найденного разложения.

ПРИМЕЧАНИЕ

Исходя из математического вида разложения Холецкого, матрицу L иногда называют квадратным корнем матрицы А.


Листинг 8.18. Разложение Холецкого


Решение СЛАУ, если разложение Холецкого для него известно, основано на замене исходной системы Аx=b другой системой b-у=b (где у=LTх), что иллюстрируется листингом 8.19. В первой строке листинга задается вектор правой части b и вычисляется стандартным методом Гаусса решение системы. В оставшейся части листинга СЛАУ решается при помощи разложения Холецкого, проведенного в листинге 8.18. После нахождения (простой подстановкой, т. к. матрица L — треугольная) вектора у, опять-таки подстановкой в уравнение у=LTх (т. к. LT — тоже треугольная матрица) отыскивается вектор х.

ВНИМАНИЕ!

В листинге 8.19 использованы пользовательские функции решения треугольных СЛАУ, описанные в предыдущем разделе. Если вы набираете листинг "от руки", их можно заменить универсальной встроенной функцией isolve.



Листинг 8.19. Решение СЛАУ при помощи разложения Холецкого (продолжение листингов 8.18 и 8.17)