當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python SciPy linalg.cho_factor用法及代碼示例


本文簡要介紹 python 語言中 scipy.linalg.cho_factor 的用法。

用法:

scipy.linalg.cho_factor(a, lower=False, overwrite_a=False, check_finite=True)#

計算矩陣的 Cholesky 分解,用於cho_solve

返回包含 Cholesky 分解的矩陣,A = L L*或者A = U* UHermitian 正定矩陣a。返回值可以直接作為cho_solve的第一個參數。

警告

返回的矩陣還包含 Cholesky 分解未使用的條目中的隨機數據。如果您需要將這些條目歸零,請改用函數 cholesky

參數

a (M, M) 數組

待分解矩陣

lower 布爾型,可選

是否計算上三角或下三角 Cholesky 分解(默認值:上三角)

overwrite_a 布爾型,可選

是否覆蓋 a 中的數據(可能會提高性能)

check_finite 布爾型,可選

是否檢查輸入矩陣是否僅包含有限數。禁用可能會提高性能,但如果輸入確實包含無窮大或 NaN,則可能會導致問題(崩潰、非終止)。

返回

c (M, M) ndarray

其上三角形或下三角形包含 a 的 Cholesky 因子的矩陣。矩陣的其他部分包含隨機數據。

lower bool

指示因子是在下三角形還是上三角形中的標誌

拋出

LinAlgError

如果分解失敗則引發。

例子

>>> import numpy as np
>>> from scipy.linalg import cho_factor
>>> A = np.array([[9, 3, 1, 5], [3, 7, 5, 1], [1, 5, 9, 2], [5, 1, 2, 6]])
>>> c, low = cho_factor(A)
>>> c
array([[3.        , 1.        , 0.33333333, 1.66666667],
       [3.        , 2.44948974, 1.90515869, -0.27216553],
       [1.        , 5.        , 2.29330749, 0.8559528 ],
       [5.        , 1.        , 2.        , 1.55418563]])
>>> np.allclose(np.triu(c).T @ np. triu(c) - A, np.zeros((4, 4)))
True

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.linalg.cho_factor。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。