我的目标是在 Python 中将矩阵转换为上三角形式。我知道该函数scipy.linalg.lu将进行 LU 分解并获得上三角和下三角。我需要多次重复这个过程。如果有来自Scipy、blas、 或lapack只计算上三角矩阵的函数,我的算法的性能将得到显着提高。
你能建议这样的功能吗?太感谢了!
我的目标是在 Python 中将矩阵转换为上三角形式。我知道该函数scipy.linalg.lu将进行 LU 分解并获得上三角和下三角。我需要多次重复这个过程。如果有来自Scipy、blas、 或lapack只计算上三角矩阵的函数,我的算法的性能将得到显着提高。
你能建议这样的功能吗?太感谢了!
我认为您高估了计算的开销L。需要零额外操作;唯一的额外成本是将一些您已经计算过的数字写入 RAM。通常用于计算的算法(例如在 Lapack 中)U也在计算L过程中进行,您可以通过省略它来节省 0 次失败。
例如,如果您考虑教科书的高斯消元法,则条目是乘数你用来消除零位进入在步骤.
如果您正处于内存写入成本对您很重要的地步,那么您可能早就应该放弃 Python,因为它本身对性能的影响要高得多;例如,Scipy 使用各种未压缩的格式,并对 Lapack 进行各种不必要的复制。