python - 带有向量枢轴的LU分解python
问题描述
scipy提供的LU分解函数返回一个置换矩阵P
P,L,U = scipy.linalg.lu(A)
其中A是一个矩形矩阵。然而,由于 P 的大小,我的问题的大小不允许存储P(即使是临时的),我真的需要一个计算置换向量的函数(如[L,U,P] = lu(A,'vector')
在 Matlab 中)。我找到了一个 lapack 函数
LU,p,info = scipy.linalg.lapack.dgetrf(A)
这似乎返回了一个向量p但我了解到后者不是一个实际的置换向量,因为它包含两倍的相同值(https://software.intel.com/en-us/forums/intel-math-kernel-library/主题/780655)。因此,我正在寻找另一个函数(可能来自另一个库)来执行这个带有旋转的 LU 分解。由于计算时间也很重要,我不认为自己实现分解会很有效。
解决方案
是的,它是一个枢轴向量,它是一个标准的 LAPACK 返回。因此,您需要将其转换为您自己想要的任何其他形式(这比重新实现分解要容易得多)。
推荐阅读
- jquery - ASP.NET 5 MVC 使用 jQuery 显示和隐藏 div 元素
- scroll - 如何制作滚动时不移动的固定标题?
- r - 如何在 r 中的第三个映射表的帮助下连接两个表?
- ios - 在 UserDefaults 中保存自定义类的数组
- c++ - 尝试查找向量时出现c ++错误
.begin()/.end() - javascript - Node.js - 将请求的返回值保存为变量
- unit-testing - 使用 MockServerRequest 断言 WebFlux ServerResponse
- php - 丹麦字母的编码
- vue.js - 哪种方式更好地创建 vue 组件(导出默认 vs defineComponent vs new Vue)
- java - 如何处理在多个应用程序中使用的巨大静态配置类?