- Разложение Холецкого
-
Разложе́ние Холе́цкого — представление симметричной положительно-определённой матрицы
в виде
, где
— нижняя треугольная матрица со строго положительными элементами на диагонали. Иногда разложение записывается в эквивалентной форме:
, где
— верхняя треугольная матрица. Разложение Холецкого всегда существует и единственно для любой симметричной положительно-определённой матрицы.
Существует также обобщение этого разложения на случай комплекснозначных матриц. Если
— положительно-определённая эрмитова матрица, то существует разложение
, где
— нижняя треугольная матрица с положительными действительными элементами на диагонали, а
— эрмитово-сопряжённая к ней матрица.
Разложение названо в честь французского математика Андре-Луи Холецкого (1875-1918).
Содержание
Алгоритм
Элементы матрицы
можно вычислить, начиная с верхнего левого угла матрицы, по формулам:
, если
.
Выражение под корнем всегда положительно, если
— действительная положительно-определённая матрица.
Вычисление происходит сверху вниз, слева направо,т.е. сперва
, а затем
.
Для комплекснозначных эрмитовых матриц используются формулы:
, если
.
Приложения
Это разложение может применяться для решения системы линейных уравнений
, если матрица
симметрична и положительно-определена. Такие матрицы часто возникают, например, при использовании метода наименьших квадратов и численном решении дифференциальных уравнений.
Выполнив разложение
, решение
получается последовательным решением двух треугольных систем уравнений:
и
. Такой способ решения иногда называется методом квадратных корней.[1] По сравнению с более общими методами, такими как метод Гаусса или LU-разложение, он устойчивее численно и требует примерно вдвое меньше арифметических операций. [2]
Разложение Холецкого также применяется в методах Монте-Карло для генерации коррелированных случайных величин. Пусть
— вектор из независимых стандартных нормальных случайных величин, а
— желаемая ковариационная матрица. Тогда вектор
будет иметь многомерное нормальное распределение с нулевым математическим ожиданием и ковариационной матрицей
. [3]
Реализация в математических пакетах программ
- В системах MATLAB, Octave, R разложение выполняется командой U = chol(A).
- В Maple и NumPy существует процедура cholesky в модуле linalg.
- В Mathematica используется процедура CholeskyDecomposition[A].
- В GSL используется функция gsl_linalg_cholesky_decomp.
- В библиотеке от Google ceres-solver.
Примечания
- ↑ Вержбицкий В. М. Основы численных методов. — М.: Высшая школа, 2009. — 840 с. — ISBN 9785060061239
- ↑ William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery. 2.9 Cholesky Decomposition // Numerical Recipes in C. — 2nd edition. — Cambridge: Cambridge University Press. — ISBN 0-521-43108-5
- ↑ Martin Haugh. Generating Correlated Random Variables.
Категории:- Методы решения СЛАУ
- Разложения матриц
- Теория операторов
Wikimedia Foundation. 2010.