【发布时间】:2020-02-14 07:52:41
【问题描述】:
scipy提供的LU分解函数返回一个置换矩阵P
P,L,U = scipy.linalg.lu(A)
其中A 是一个矩形矩阵。但是,由于问题的大小,我的问题的大小不允许存储 P (即使是临时的),我真的需要一个计算置换向量的函数(如 Matlab 中的[L,U,P] = lu(A,'vector'))。我找到了一个 lapack 函数
LU,p,info = scipy.linalg.lapack.dgetrf(A)
这似乎返回了一个向量p,但我了解到后者不是一个实际的置换向量,因为它包含两倍的相同值(https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/780655)。因此,我正在寻找另一个函数(可能来自另一个库)来执行这个带有旋转的 LU 分解。由于计算时间也很重要,我认为自己实现分解不会有效率。
【问题讨论】: