基于稀疏矩阵X计算YᵀA⁻¹Y对角线元素的高效方法咨询(A=XᵀX)
基于稀疏矩阵X计算YᵀA⁻¹Y对角线元素的高效方法咨询(A=XᵀX)
我现在遇到一个计算难题:需要求解矩阵 $YTA{-1}Y$ 的对角线元素,其中 $A=X^TX$。这里的X是维度约为1e6×1e5的高度稀疏矩阵,所以A是1e5×1e5的矩阵;Y则是1e5×1e4的稀疏矩阵。
目前我采用的方法是先显式计算出A,然后通过sksparse.cholmod对A做Cholesky分解得到$LL^T$,再求解L和Y的线性方程组来得到对角线元素。这个方法确实能利用A的稀疏性,但总觉得可以更高效。
我想能不能直接利用X来做文章?比如如果对X做QR分解,那么$A = R^T Q^T Q R = R^T R$,这样应该能省去显式计算A的步骤,节省不少计算量。但问题是我没找到好用的Python稀疏QR工具——试过相关库但编译失败了,而且因为这是某个Python包的一部分,我只能用Python环境。
想问问大家,有没有更直接的方法可以实现这个需求?比如通过最小二乘法之类的思路?
另外也想确认下,这个问题是不是更适合发到科学计算类的Stack Exchange社区?
备注:内容来源于stack exchange,提问作者daknowles
相关产品推荐
相关产品推荐

