Разложе́ние Холе́цкого (метод квадратного корня) — представление симметричной положительно определённой матрицы
в виде
, где
— нижняя треугольная матрица со строго положительными элементами на диагонали. Иногда разложение записывается в эквивалентной форме:
, где
— верхняя треугольная матрица. Разложение Холецкого всегда существует и единственно для любой симметричной положительно определённой матрицы.
Существует также обобщение этого разложения на случай комплекснозначных матриц. Если
— положительно определённая эрмитова матрица, то существует разложение
, где
— нижняя треугольная матрица с положительными действительными элементами на диагонали, а
— эрмитово-сопряжённая к ней матрица.
Разложение названо в честь французского математика польского происхождения Андре-Луи Шолески[англ.] (1875—1918).
Алгоритм
Элементы матрицы
можно вычислить, начиная с верхнего левого угла матрицы, по формулам
![{\displaystyle {\begin{aligned}l_{11}&={\sqrt {a_{11}}},\\l_{j1}&={\frac {a_{j1}}{l_{11}}},\quad j\in [2,n],\\l_{ii}&={\sqrt {a_{ii}-\sum _{p=1}^{i-1}l_{ip}^{2}}},\quad i\in [2,n],\\l_{ji}&={\frac {1}{l_{ii}}}\left(a_{ji}-\sum _{p=1}^{i-1}l_{ip}l_{jp}\right),\quad i\in [2,n-1],j\in [i+1,n].\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/de93b24d6f562bcab0973ef7bd790da4b64322e5)
- Выражение под корнем всегда положительно, если
— действительная положительно определённая матрица.
Вычисление происходит сверху вниз, слева направо, т. е. сперва
, а затем
.
Для комплекснозначных эрмитовых матриц используются формулы
![{\displaystyle {\begin{aligned}l_{ii}&={\sqrt {a_{ii}-\sum _{p=1}^{i-1}l_{ip}l_{ip}^{*}}},\quad i\in [2,n],\\l_{ji}&={\frac {1}{l_{ii}}}\left(a_{ji}-\sum _{p=1}^{i-1}l_{ip}l_{jp}^{*}\right),\quad i\in [2,n-1],j\in [i+1,n].\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1bb93b9abe21cb7e3394dcb3fc260c5b5dc5ae22)
Приложения
Это разложение может применяться для решения системы линейных уравнений
, если матрица
симметрична и положительно определена. Такие матрицы часто возникают, например, при использовании метода наименьших квадратов и численном решении дифференциальных уравнений.
Выполнив разложение
, решение
можно получить последовательным решением двух треугольных систем уравнений:
и
. Такой способ решения иногда называется методом квадратных корней.[1] По сравнению с более общими методами, такими как метод Гаусса или LU-разложение, он устойчивее численно и требует примерно вдвое меньше арифметических операций.[2]
Разложение Холецкого также применяется в методах Монте-Карло для генерации коррелированных случайных величин. Пусть
— вектор из независимых стандартных нормальных случайных величин, а
— желаемая ковариационная матрица. Тогда вектор
будет иметь многомерное нормальное распределение с нулевым математическим ожиданием и ковариационной матрицей
.[3]
Реализация в математических пакетах программ
- В SAS используется функция ROOT(matrix), входящая в пакет SAS IML.
- В системах MATLAB, Octave, R разложение выполняется командой U = chol(A).
- В Maple и NumPy существует процедура cholesky в модуле linalg.
- В Mathematica используется процедура CholeskyDecomposition[A].
- В MathCAD для разложения используется функция cholesky(A)
- В GSL используется функция gsl_linalg_cholesky_decomp.
- В библиотеке от Google ceres-solver[4].
- В библиотеке Apache Commons Math (начиная с версии 2.0) используется класс CholeskyDecomposition[5].
- В библиотеке Torch присутствует функция torch.potrf[6].
- В библиотеке JAMA языка программирования java.
- В библиотеке Intel Data Analytics Acceleration Library присутствует алгоритм
cholesky::Batch.
Примечания
 Векторы и матрицы |
---|
Векторы | Основные понятия | |
---|
Виды векторов | |
---|
Операции над векторами | |
---|
Типы пространств | |
---|
|
---|
Матрицы | |
---|
Другое | |
---|
 |
---|
Прямые методы | |
---|
Итерационные методы | |
---|
Общее | |
---|