而不是
不知何故,我觉得有更好的计算方法MM与 lapack/mkl?
如果数值稳定性和鲁棒性是您唯一关心的问题,您可以尝试计算 SVDAA,并使用它来计算产品。具体来说,让 SVDAA是:
当然,计算 SVD 非常昂贵。在这种情况下,请避免使用分而治之的 SVD 算法实现,因为这些算法虽然通常计算速度更快,但对于非常小的奇异值往往不太准确。
如果没有矩阵的特殊属性,您将无法进行智能分解或考虑对线性系统使用特殊的解析方法(例如,使用预处理技术的迭代方法来减轻病态,始终牢记 Wolfgang Bangerth 的评论)。
考虑到您有时会遇到的 Toepliz 矩阵。从与数字库更相关的角度来看,直到 2013 年初,lapack 肯定没有为 Toepliz 矩阵提供特殊功能,请参阅lapack 档案。现在我也没有找到专用功能。关于 mkl 我不知道 Toepliz 矩阵的特殊功能。
也许Netlib 的这些功能(所以我们仍然在类似于 lapack/mkl 的环境中)对 Toepliz 矩阵有用。