РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
256 of 541 menu

Функция linalg.cholesky

Функция linalg.cholesky выполняет разложение Холецкого для симметричной положительно определённой матрицы. Результатом является нижняя треугольная матрица L, такая что исходная матрица A равна произведению L * L^T. Функция принимает один обязательный параметр - квадратную матрицу, для которой выполняется разложение.

Синтаксис

np.linalg.cholesky(a)

Пример

Давайте выполним разложение Холецкого для простой симметричной положительно определённой матрицы размером 2x2:

import numpy as np a = np.array([[4, 2], [2, 3]]) L = np.linalg.cholesky(a) print(L)

Результат выполнения кода:

[[2. 0. ] [1. 1.41421356]]

Пример

Теперь выполним разложение для матрицы размером 3x3 и проверим, что исходная матрица восстанавливается обратным умножением:

import numpy as np a = np.array([[25, 15, 5], [15, 18, 0], [5, 0, 11]]) L = np.linalg.cholesky(a) reconstructed = L @ L.T print(reconstructed)

Результат выполнения кода:

[[25. 15. 5.] [15. 18. 0.] [ 5. 0. 11.]]

Пример

Если матрица не является положительно определённой, функция выбрасывает исключение LinAlgError. Рассмотрим это на примере:

import numpy as np a = np.array([[1, 2], [2, 1]]) try: L = np.linalg.cholesky(a) except np.linalg.LinAlgError as e: print("Error:", e)

Результат выполнения кода:

"Error: Matrix is not positive definite"

Смотрите также

  • функцию solve,
    которая решает систему линейных уравнений
  • функцию inv,
    которая вычисляет обратную матрицу
  • функцию eig,
    которая вычисляет собственные значения и векторы
  • функцию qr,
    которая выполняет QR-разложение матрицы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить