В линейной алгебре , то разложение Холецкого или Холецкая факторизация (произносится / ʃ ə л ɛ с K я / shə- LES -kee ) представляет собой разложение из эрмитово , положительно определенной матрицы в произведение нижней треугольной матрицы и ее конъюгат транспонировать , что полезно для эффективных численных решений, например, моделирования Монте-Карло . Его открыл Андре-Луи Холецкий.для реальных матриц. Когда это применимо, разложение Холецкого примерно в два раза эффективнее, чем разложение LU для решения систем линейных уравнений . [1]
Заявление
Разложение Холецкого эрмитовой положительно определенной матрицы A является разложением вида
где L является нижней треугольной матрицей с действительными и положительными диагональными элементами, а L * обозначает сопряженное транспонирование из L . Каждая эрмитова положительно определенная матрица (а значит, и каждая вещественнозначная симметричная положительно определенная матрица) имеет уникальное разложение Холецкого. [2]
Обратное верно тривиально: если A можно записать как LL * для некоторого обратимого L , нижнего треугольника или иначе, то A эрмитово и положительно определено.
Когда A - вещественная матрица (следовательно, симметричная положительно определенная), факторизация может быть записана
где L - вещественная нижнетреугольная матрица с положительными диагональными элементами. [3] [4] [5]
Положительные полуопределенные матрицы
Если эрмитова матрица A является только положительно полуопределенной, а не положительно определенной, то она все еще имеет разложение формы A = LL *, где диагональные элементы L могут быть равны нулю. [6] Разложение не обязательно должно быть уникальным, например:
Однако если ранг A равен r , то существует единственный нижний треугольник L с ровно r положительными диагональными элементами и n - r столбцами, содержащими все нули. [7]
В качестве альтернативы, разложение можно сделать уникальным, если фиксирован выбор поворота. Формально, если A - положительная полуопределенная матрица размера n × n ранга r , то существует по крайней мере одна матрица перестановок P такая, что PAP T имеет единственное разложение вида PAP T = LL * с, где L 1 - нижнетреугольная матрица размера r × r с положительной диагональю. [8]
Разложение ЛПНП
Близким вариантом классического разложения Холецкого является разложение ЛПНП,
где L - нижняя единичная треугольная (унитреугольная) матрица, а D - диагональная матрица. То есть требуется, чтобы диагональные элементы L были равны 1 за счет введения дополнительной диагональной матрицы D в разложение. Основное преимущество состоит в том, что разложение LDL можно вычислить и использовать по существу с помощью тех же алгоритмов, но избегает извлечения квадратных корней. [9]
По этой причине разложение ЛПНП часто называют разложением Холецкого без квадратного корня . Для реальных матриц факторизация имеет вид A = LDL T и часто называется разложением LDLT (или разложением LDL T , или LDL '). Она тесно связана с eigendecomposition вещественных симметричных матриц , A = QΛQ T .
Разложение LDL связано с классическим разложением Холецкого формы LL * следующим образом:
Наоборот, учитывая классическое разложение Холецкого положительно определенной матрицы, если S - диагональная матрица, содержащая главную диагональ, то A можно разложить как где
- (это изменяет масштаб каждого столбца, чтобы сделать диагональные элементы равными 1),
Если A положительно определена, то все диагональные элементы D положительны. Для получения положительного полуопределена A , Anразложение существует там , где количество ненулевых элементов по диагонали D точно ранг A . [10] Некоторые неопределенные матрицы , для которых нет разложения Холецкого не существует есть разложение LDL с записями в отрицательными D : достаточно , что первый п -1 ведущих миноры из A неособов. [11]
Пример
Вот разложение Холецкого симметричной вещественной матрицы:
А вот его разложение Т ЛПНП :
Приложения
Разложение Холецкого в основном используется для численного решения линейных уравнений . Если A симметрично и положительно определено, то мы можем решить сначала вычислив разложение Холецкого , затем решая для y путем прямой подстановки и, наконец, решаядля x путем обратной подстановки .
Альтернативный способ избавиться от извлечения квадратного корня из разложение заключается в вычислении разложения Холецкого , затем решая для y , и, наконец, решая.
Для линейных систем, которые могут быть представлены в симметричной форме, разложение Холецкого (или его вариант LDL) является методом выбора, обеспечивающим превосходную эффективность и численную стабильность. По сравнению с разложением LU , он примерно в два раза эффективнее. [1]
Линейный метод наименьших квадратов
Системы вида Ax = b с симметричным и положительно определенным A довольно часто встречаются в приложениях. Например, нормальные уравнения в линейных задачах наименьших квадратов имеют такую форму. Также может случиться так, что матрица A происходит от функционала энергии, который должен быть положительным по физическим соображениям; это часто случается при численном решении уравнений в частных производных .
Нелинейная оптимизация
Нелинейные многомерные функции могут быть минимизированы по их параметрам с помощью вариантов метода Ньютона, называемых квазиньютоновскими методами. На итерации k поиск идет в направлении определяется путем решения для , где это направление шага, это градиент , аявляется приближением к матрице Гессе, сформированной путем повторения обновлений ранга-1 на каждой итерации. Две хорошо известные формулы обновления называются Дэвидона – Флетчера – Пауэлла (DFP) и Бройдена – Флетчера – Гольдфарба – Шанно (BFGS). Потери положительно-определенного условия из-за ошибки округления можно избежать, если вместо обновления аппроксимации обратной величины гессиана обновлять разложение Холецкого аппроксимации самой матрицы Гессе. [12]
Моделирование Монте-Карло
Разложение Холецкого обычно используется в методе Монте-Карло для моделирования систем с несколькими коррелированными переменными. Ковариационная матрица разлагаетс с получением низшего треугольную L . Применение этого к вектору некоррелированных выборок u дает вектор выборки Lu с ковариационными свойствами моделируемой системы. [13]
Следующий упрощенный пример показывает экономию, которую можно получить из разложения Холецкого: предположим, цель состоит в том, чтобы сгенерировать две коррелированные нормальные переменные а также с заданным коэффициентом корреляции . Для этого необходимо сначала сгенерировать две некоррелированные гауссовские случайные величины. а также , что можно сделать с помощью преобразования Бокса – Мюллера . С учетом необходимого коэффициента корреляции, коррелированные нормальные переменные могут быть получены с помощью преобразований а также .
Фильтры Калмана
Фильтры Калмана без запаха обычно используют разложение Холецкого для выбора набора так называемых сигма-точек. Фильтр Калмана отслеживает среднее состояние системы как вектор х длины N и ковариации в качестве N × N матрицы P . Матрица Р всегда положителен полуопределенный и может быть разложен на LL T . Столбцы L можно складывать и вычитать из среднего x, чтобы сформировать набор из 2 N векторов, называемых сигма-точками . Эти сигма-точки полностью отражают среднее значение и ковариацию состояния системы.
Инверсия матриц
Явная обратная эрмитова матрица может быть вычислена с помощью разложения Холецкого аналогично решению линейных систем с использованием операции (умножения). [9] Вся инверсия может быть эффективно выполнена даже на месте.
Неэрмитова матрица B также может быть обращена с помощью следующего тождества, где BB * всегда будет эрмитовой:
Вычисление
Существуют различные методы вычисления разложения Холецкого. Вычислительная сложность обычно используемых алгоритмов в целом составляет O ( n 3 ). [ Править ] Алгоритмы , описанные ниже , включают все о (1/3) п 3 FLOPs ( п 3 /6 умножений и такое же количество дополнений) для реальных вкусов и (4/3) п 3 FLOPs для сложных вкусов, [14 ] , где п является размер матрицы A . Следовательно, они имеют половину стоимости разложения LU , который использует 2 н 3 /3 FLOPs (см Trefethen и Bau 1997).
Какой из приведенных ниже алгоритмов работает быстрее, зависит от деталей реализации. Как правило, первый алгоритм будет немного медленнее, потому что он обращается к данным менее регулярно.
Алгоритм Холецкого
Холецкий алгоритм , используемый для вычисления разложения матрицы L , представляет собой модифицированный вариант метода исключения Гаусса .
Рекурсивный алгоритм начинается с i : = 1 и
- (1) : = .
На шаге i матрица A ( i ) имеет следующий вид:
где I i −1 обозначает единичную матрицу размерности i - 1.
Если теперь мы определим матрицу L i формулой
тогда мы можем записать A ( i ) как
где
Обратите внимание, что b i b * i является внешним продуктом , поэтому этот алгоритм называется версией внешнего продукта в (Golub & Van Loan).
Мы повторяем это для i от 1 до n . После п шагов, мы получаем ( п +1) = I . Следовательно, нижнетреугольная матрица L, которую мы ищем, вычисляется как
Алгоритмы Холецкого – Банахевича и Холецкого – Краута.
Если мы выпишем уравнение
получаем следующее:
и, следовательно, следующие формулы для элементов L :
Для комплексных и вещественных матриц разрешены несущественные произвольные изменения знаков диагональных и связанных недиагональных элементов. Выражение под квадратным корнем всегда положительно, если A вещественно и положительно определено.
Для комплексной эрмитовой матрицы применяется следующая формула:
Таким образом, мы можем вычислить запись ( i , j ), если мы знаем записи слева и выше. Вычисления обычно располагаются в одном из следующих порядков:
- Алгоритм Холецкого-Banachiewicz начинается с верхнего левого угла матрицы L и продолжается для вычисления матрицы по строкам.
for ( i = 0 ; i < DimensizeSize ; i ++ ) { for ( j = 0 ; j <= i ; j ++ ) { float sum = 0 ; для ( k = 0 ; k < j ; k ++ ) sum + = L [ i ] [ k ] * L [ j ] [ k ]; if ( i == j ) L [ i ] [ j ] = sqrt ( A [ i ] [ i ] - сумма ); иначе L [ i ] [ j ] = ( 1.0 / L [ j ] [ j ] * ( A [ i ] [ j ] - сумма )); } }
- Алгоритм Холецкого-Crout начинается с верхнего левого угла матрицы L и продолжается для вычисления столбца матрицы по столбцам.
для ( j = 0 ; j < размерность ; j ++ ) { сумма с плавающей запятой = 0 ; для ( k = 0 ; k < j ; k ++ ) { сумма + = L [ j ] [ k ] * L [ j ] [ k ]; } L [ j ] [ j ] = sqrt ( A [ j ] [ j ] - сумма ); для ( я = j + 1 ; я < размерность ; я ++ ) { сумма = 0 ; для ( k = 0 ; k < j ; k ++ ) { sum + = L [ i ] [ k ] * L [ j ] [ k ]; } L [ i ] [ j ] = ( 1.0 / L [ j ] [ j ] * ( A [ i ] [ j ] - сумма )); } }
Любой из вариантов доступа позволяет при желании выполнять все вычисления на месте.
Устойчивость расчета
Предположим, что мы хотим решить хорошо обусловленную систему линейных уравнений. Если используется разложение LU, то алгоритм будет нестабильным, если мы не используем какую-то стратегию поворота. В последнем случае ошибка зависит от так называемого фактора роста матрицы, который обычно (но не всегда) невелик.
Теперь предположим, что применимо разложение Холецкого. Как уже говорилось выше, алгоритм будет вдвое быстрее. Кроме того, никакого поворота не требуется, и ошибка всегда будет небольшой. В частности, если мы хотим решить Ax = b , а y обозначает вычисленное решение, тогда y решает возмущенную систему ( A + E ) y = b , где
Здесь || · || 2 - матричная 2-норма , c n - малая константа, зависящая от n , а ε обозначает единичное округление .
Одна из проблем разложения Холецкого, о которой следует помнить, - это использование квадратных корней. Если факторизуемая матрица положительно определена, как требуется, числа под квадратными корнями всегда положительны в точной арифметике . К сожалению, числа могут стать отрицательными из -за ошибок округления , и в этом случае алгоритм не может продолжить работу. Однако это может произойти только в том случае, если матрица очень плохо подготовлена. Один из способов решить эту проблему - добавить матрицу диагональной коррекции к разлагаемой матрице, чтобы попытаться повысить ее положительную определенность. [15] Хотя это может снизить точность разложения, это может быть очень выгодным по другим причинам; например, при выполнении метода Ньютона при оптимизации добавление диагональной матрицы может улучшить стабильность, когда она далека от оптимума.
Разложение ЛПНП
Альтернативной формой, устраняющей необходимость извлекать квадратные корни, когда A является симметричным, является симметричная неопределенная факторизация [16]
Следующие рекурсивные отношения применяются для записей D и L :
Это работает до тех пор, пока сгенерированные диагональные элементы в D остаются ненулевыми. Тогда разложение единственное. D и L реальны, если A реально.
Для комплексной эрмитовой матрицы A применяется следующая формула:
Опять же, шаблон доступа позволяет при желании выполнять все вычисления на месте.
Вариант блока
Известно, что при использовании с неопределенными матрицами факторизация LDL * нестабильна без осторожного поворота; [17] в частности, элементы факторизации могут расти произвольно. Возможное улучшение - выполнить факторизацию блочных подматриц, обычно 2 × 2: [18]
где каждый элемент в матрицах выше является квадратной подматрицей. Отсюда следуют аналогичные рекурсивные отношения:
Это включает в себя матричные произведения и явную инверсию, что ограничивает практический размер блока.
Обновление разложения
На практике часто возникает задача обновить разложение Холецкого. Более подробно, разложение Холецкого уже вычислено. какой-то матрицы , то заменяют матрицу каким-то образом в другую матрицу, скажем , и нужно вычислить разложение Холецкого обновленной матрицы: . Теперь вопрос в том, можно ли использовать разложение Холецкого который был вычислен ранее, чтобы вычислить разложение Холецкого .
Обновление первого ранга
Конкретный случай, когда обновленная матрица связана с матрицей от , известен как обновление первого ранга .
Вот функция [19], написанная в синтаксисе Matlab, которая реализует обновление первого ранга:
функция [L] = cholupdate ( L, x ) п = длина ( х ); для k = 1 : n r = sqrt ( L ( k , k ) ^ 2 + x ( k ) ^ 2 ); c = r / L ( k , k ); s = x ( k ) / L ( k , k ); L ( k , k ) = r ; если k < n L (( k + 1 ): n , k ) = ( L (( k + 1 ): n , k ) + s * x (( k + 1 ): n )) / c ; х (( k + 1 ): n ) = c * x (( k + 1 ): n ) - s * L (( k + 1 ): n , k ); конец конецконец
Понижение первого ранга
Ранга один downdate похож на одноранговое обновление, за исключением того, что добавление заменяется вычитанием:. Это работает, только если новая матрица все еще положительно определен.
Код для обновления ранга один, показанный выше, может быть легко адаптирован для понижения ранга один: нужно просто заменить два добавления в назначении на вычитания r
и L((k+1):n, k)
на вычитания.
Добавление и удаление строк и столбцов
Если у нас есть симметричная и положительно определенная матрица представлен в виде блока как
и его верхний фактор Холецкого
затем для новой матрицы , что совпадает с но с добавлением новых строк и столбцов,
нас интересует факторизация Холецкого , который мы называем , без прямого вычисления всего разложения.
Письмо для решения , которое легко найти для треугольных матриц, и для разложения Холецкого , можно найти следующие соотношения:
Эти формулы могут использоваться для определения фактора Холецкого после вставки строк или столбцов в любую позицию, если мы соответствующим образом установим размеры строки и столбца (в том числе равными нулю). Обратная задача, когда у нас есть
с известным разложением Холецкого
и желаете определить фактор Холецкого
матрицы с удаленными строками и столбцами,
дает следующие правила:
Обратите внимание, что приведенные выше уравнения, которые включают нахождение разложения Холецкого новой матрицы, имеют вид , что позволяет эффективно рассчитывать их с помощью процедур обновления и понижения, подробно описанных в предыдущем разделе. [20]
Доказательство для положительных полуопределенных матриц.
Доказательство ограничивающим аргументом
Приведенные выше алгоритмы показывают, что любая положительно определенная матрица имеет разложение Холецкого. Этот результат можно распространить на положительный полуопределенный случай ограничивающим аргументом. Аргумент не является полностью конструктивным, т. Е. Не дает явных численных алгоритмов для вычисления факторов Холецкого.
Если является положительно полуопределенная матрица , то последовательностьсостоит из положительно определенных матриц . (Это является непосредственным следствием, например, теоремы о спектральном отображении для полиномиального функционального исчисления.) Кроме того,
в операторной норме . В положительно определенном случае каждый имеет разложение Холецкого . По свойству операторной нормы
В держится, потому что с операторной нормой является C * -алгеброй. Такявляется ограниченным множеством в банаховом пространстве операторов, поэтому относительно компактным (поскольку лежащее в основе векторное пространство конечномерно). Следовательно, у него есть сходящаяся подпоследовательность, также обозначаемая, с лимитом . Легко проверить, что это имеет желаемые свойства, т.е. , а также является нижним треугольником с неотрицательными диагональными элементами: для всех а также ,
Следовательно, . Поскольку лежащее в основе векторное пространство конечномерно, все топологии в пространстве операторов эквивалентны. Так как правило в норме означает как правило входной. Это, в свою очередь, означает, что, поскольку каждый является нижним треугольником с неотрицательными диагональными элементами, это также.
Доказательство с помощью QR-разложения.
Позволять - положительная полуопределенная эрмитова матрица. Тогда его можно записать как произведение его матрицы квадратного корня :. Теперь QR-разложение можно применить к, в результате чего , где унитарен и верхнетреугольный. Подставляя разложение в исходное равенство, получаем. Параметр завершает доказательство.
Обобщение
Факторизация Холецкого может быть обобщена [ ссылка ] на (не обязательно конечные) матрицы с операторными записями. Позволять- последовательность гильбертовых пространств . Рассмотрим операторную матрицу
действуя на прямую сумму
где каждый
- ограниченный оператор . Если A положительно (полуопределено) в том смысле, что для всех конечных k и любого
у нас есть , то существует нижнетреугольная операторная матрица L такая, что A = LL *. Можно также считать диагональные элементы L положительными.
Реализации в библиотеках программирования
- Язык программирования C : Научная библиотека GNU предоставляет несколько реализаций разложения Холецкого.
- Система компьютерной алгебры Maxima : функция cholesky вычисляет разложение Холецкого.
- Система численных вычислений GNU Octave предоставляет несколько функций для вычисления, обновления и применения разложения Холецкого.
- Библиотека LAPACK обеспечивает высокопроизводительную реализацию разложения Холецкого, к которой можно получить доступ из Fortran, C и большинства языков.
- В Python функция cholesky из модуля numpy.linalg выполняет разложение Холецкого.
- В Matlab и R функция "chol" дает разложение Холецкого.
- В Julia функция cholesky из стандартной библиотеки LinearAlgebra дает разложение Холецкого.
- В системе Mathematica функцию "CholeskyDecomposition" можно применить к матрице.
- В C ++ команда "chol" из библиотеки armadillo выполняет разложение Холецкого. Библиотека Eigen предоставляет факторизации Холецкого как для разреженных, так и для плотных матриц.
- В пакете ROOT доступен класс TDecompChol.
- В Analytica функция Decompose дает разложение Холецкого.
- Библиотека Apache Commons Math имеет реализацию, которая может использоваться на Java, Scala и любом другом языке JVM.
Смотрите также
- Ранг цикла
- Неполная факторизация Холецкого
- Разложение матрицы
- Алгоритм минимальной степени
- Квадратный корень из матрицы
- Закон инерции Сильвестра
- Символическое разложение Холецкого
Заметки
- ^ а б Пресса, Уильям Х .; Саул А. Теукольский; Уильям Т. Веттерлинг; Брайан П. Фланнери (1992). Числовые рецепты в C: Искусство научных вычислений (второе изд.). Кембриджский университет, Англия, EPress. п. 994 . ISBN 0-521-43108-5. Проверено 28 января 2009 .
- ↑ Голуб и Ван Лоан (1996 , с. 143), Хорн и Джонсон (1985 , с. 407), Trefethen & Bau (1997 , с. 174).
- ↑ Хорн и Джонсон (1985 , с. 407).
- ^ «Матрицы - Диагонализация комплексной симметричной матрицы» . MathOverflow . Проверено 25 января 2020 .
- ^ Шабауэр, Ханнес; Пачер, Кристоф; Сандерленд, Эндрю Дж .; Ганстерер, Уилфрид Н. (01.05.2010). «К параллельному решателю для обобщенных сложных симметричных задач на собственные значения» . Процедуры информатики . ICCS 2010. 1 (1): 437–445. DOI : 10.1016 / j.procs.2010.04.047 . ISSN 1877-0509 .
- ↑ Голуб и Ван Лоан (1996 , с. 147).
- ^ Нежный, Джеймс Э. (1998). Численная линейная алгебра для приложений в статистике . Springer. п. 94. ISBN 978-1-4612-0623-1.
- ^ Хайэм, Николас Дж. (1990). "Анализ разложения Холецкого полуопределенной матрицы" . В Cox, MG; Хаммарлинг, SJ (ред.). Надежные численные вычисления . Оксфорд, Великобритания: Издательство Оксфордского университета. С. 161–185. ISBN 978-0-19-853564-5.
- ^ а б Кришнамурти, Аравинд; Менон, Дипак (2011). «Обращение матриц с помощью разложения Холецкого». 1111 : 4144. arXiv : 1111.4144 . Bibcode : 2011arXiv1111.4144K . Цитировать журнал требует
|journal=
( помощь ) - ^ Итак, Энтони Ман-Чо (2007). Подход полуопределенного программирования к проблеме реализации графа: теория, приложения и расширения (PDF) (PhD). Теорема 2.2.6.
- ↑ Голуб и Ван Лоан (1996 , теорема 4.1.3)
- Перейти ↑ Arora, JS Introduction to Optimum Design (2004), p. 327. https://books.google.com/books?id=9FbwVe577xwC&pg=PA327.
- ^ Документация Matlab randn . mathworks.com.
- ^ ? potrf Библиотека ядра Intel® Math [1]
- ^ Фанг, Хаврен; О'Лири, Дайан П. (8 августа 2006 г.). «Модифицированные алгоритмы Холецкого: каталог с новыми подходами» (PDF) . Цитировать журнал требует
|journal=
( помощь ) - ^ Уоткинс, Д. (1991). Основы матричных вычислений . Нью-Йорк: Вили. п. 84 . ISBN 0-471-61414-9.
- ^ Нокедаль, Хорхе (2000). Численная оптимизация . Springer.
- ^ Фанг, Хаврен (24 августа 2007 г.). «Анализ блочных LDLT-факторизаций для симметричных неопределенных матриц». Цитировать журнал требует
|journal=
( помощь ) - ^ Основано на: Стюарт, GW (1998). Основные разложения . Филадельфия: Соц. по промышленной и прикладной математике. ISBN 0-89871-414-1.
- Перейти ↑ Osborne, M. (2010), Приложение B.
Рекомендации
- Дерениовский, Дариуш; Кубале, Марек (2004). "Факторизация Холецкого параллельных матриц и ранжирование графов". 5-я Международная конференция по параллельной обработке и прикладной математике (PDF) . Конспект лекций по информатике. 3019 . Springer-Verlag. С. 985–992. DOI : 10.1007 / 978-3-540-24669-5_127 . ISBN 978-3-540-21946-0. Архивировано из оригинального (PDF) 16 июля 2011 года.
- Голуб, Джин Х .; Ван Лоан, Чарльз Ф. (1996). Матричные вычисления (3-е изд.). Балтимор: Джонс Хопкинс. ISBN 978-0-8018-5414-9.
- Хорн, Роджер А .; Джонсон, Чарльз Р. (1985). Матричный анализ . Издательство Кембриджского университета. ISBN 0-521-38632-2.
- SJ Julier и JK Uhlmann. « Общий метод аппроксимации нелинейных преобразований вероятностных распределений ».
- SJ Julier и JK Uhlmann, " Новое расширение фильтра Калмана для нелинейных систем ", в Proc. AeroSense: 11 Int. Symp. Аэрокосмическая и оборонная зондирование, моделирование и управление, 1997, стр. 182–193.
- Trefethen, Lloyd N .; Бау, Дэвид (1997). Числовая линейная алгебра . Филадельфия: Общество промышленной и прикладной математики. ISBN 978-0-89871-361-9.
- Осборн, Майкл (2010). Байесовские гауссовские процессы для последовательного прогнозирования, оптимизации и квадратуры (PDF) (диссертация). Оксфордский университет.
- Рушель, Жоао Паулу Тараскони, степень бакалавра « Параллельные реализации разложения Холецкого на центральных и графических процессорах », Федеральный университет Риу-Гранди-ду-Сул, Instituto De Informatica, 2016, стр. 29-30.
Внешние ссылки
История науки
- Sur la résolution numérique des systèmes d'équations linéaires , рукопись Холецкого 1910 г., онлайн и проанализирована в BibNum (на французском и английском языках) [для английского языка нажмите «Зарядное устройство»]
Информация
- "Факторизация Холецкого" , Математическая энциклопедия , EMS Press , 2001 [1994]
- Разложение Холецкого , Краткое руководство по анализу данных
- Разложение Холецкого на www.math-linux.com
- Разложение Холецкого стало проще на науке Меандерталец
Компьютерный код
- LAPACK - это набор подпрограмм FORTRAN для решения задач плотной линейной алгебры (DPOTRF, DPOTRF2, подробности выполнения )
- ALGLIB включает частичный перенос LAPACK на C ++, C #, Delphi, Visual Basic и т. Д. (Spdmatrixcholesky, hpdmatrixcholesky)
- libflame - это библиотека C с функциональностью LAPACK.
- Заметки и видео о высокопроизводительной реализации факторизации Холецкого в Техасском университете в Остине.
- Холецкий: TBB + Threads + SSE - это книга, объясняющая реализацию CF с TBB, потоками и SSE (на испанском языке).
- библиотека "Ceres Solver" от Google.
- Процедуры разложения LDL в Matlab.
- Armadillo - это пакет линейной алгебры C ++
- Rosetta Code - это сайт хрестоматии по программированию. по теме страницы .
- AlgoWiki - открытая энциклопедия свойств алгоритмов и особенностей их реализации по теме страницы
- Intel® oneAPI Math Kernel Library Intel , оптимизированная математическая библиотека для численных вычислений ? Potrf , ? Potrs
Использование матрицы в моделировании
- Генерация коррелированных случайных величин и случайных процессов , Мартин Хо, Колумбийский университет
Онлайн калькуляторы
- Онлайн-калькулятор матриц Выполняет разложение матриц по Холецкому в режиме онлайн.