本文介绍了使用scipy打印通过SuperLU计算的L和U矩阵的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何打印使用SuperLU的splu计算的稀疏L和U矩阵?

How can I print sparse L and U matrices calculated by splu, which uses SuperLU?

我的MWE:

>>> import scipy
>>> import scipy.sparse
>>> import scipy.sparse.linalg
>>> from numpy import array
>>> M = scipy.array([ [19,0,21,21,0],[12,21,0,0,0],[0,12,16,0,0],[0,0,0,5,21],[12,12,0,0,18] ])
>>> cscM = scipy.sparse.csc_matrix(M)
>>> lu_obj = scipy.sparse.linalg.splu(cscM)
>>> b = array([1, 2, 3, 4, 5])
>>> lu_obj.solve(b)
array([ 0.01245301,  0.08812209,  0.12140843, -0.08505639,  0.21072771])

推荐答案

您可以使用lu_obj = scipy.sparse.linalg.splu(A)L,R = lu_obj.L, lu_obj.R在当前的scipy版本中,它将以csc格式返回矩阵(秘密文档).

You can use lu_obj = scipy.sparse.linalg.splu(A)L,R = lu_obj.L, lu_obj.Rin the current scipy version, which returns the matrices in csc format (scipy docs).

这篇关于使用scipy打印通过SuperLU计算的L和U矩阵的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-24 15:51