基于Cholesky分解的numpy矩阵求逆效率

2024-10-01 15:45:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个对称正定矩阵(例如协方差矩阵),我想计算它的逆矩阵。在数学上,我知道使用Cholesky分解来反转矩阵更有效,尤其是当你的矩阵很大时。但我不知道怎么做”投资部()“有效。假设我有以下代码:

import numpy as np

X = np.arange(10000).reshape(100,100)
X = X + X.T - np.diag(X.diagonal()) #  symmetry 
X = np.dot(X,X.T) # positive-definite

# simple inversion:
inverse1 = np.linalg.inv(X) 

# Cholesky decomposition inversion:
c = np.linalg.inv(np.linalg.cholesky(X))
inverse2 = np.dot(c.T,c)

哪个更有效(inverse1还是inverse2)?如果第二种方法更有效,为什么呢新利纳格发票()不用这个代替?在


Tags: 代码importnumpynp矩阵数学dotinversion

热门问题