Разложением Холецкого симметричной (т. е. содержащей одинаковые элементы на местах, расположенных симметрично относительно главной диагонали) матрицы А является представление вида
A=LLT, где L — треугольная матрица. Алгоритм Холецкого реализован во встроенной функции
choiesky:
- А — квадратная, положительно определенная симметричная матрица.
ПРИМЕЧАНИЕ
Исходя из математического вида разложения Холецкого, матрицу 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)