也就是说,当我这样做时A\b
对于非常大、对称且稀疏的 A,matlab 使用什么算法?
如果矩阵是稀疏且对称正定的,但有very窄带,然后使用专门的带解算器。大多数矩阵没有足够窄的带来触发这种情况。通常,它会在样条工具箱中提供一维样条。二维问题有一个大的“带”(它们不是真正的带状矩阵)。
更典型的是,MATLAB 使用 CHOLMOD 来表示稀疏对称正定矩阵。如果矩阵是稀疏、对称且不定的,则使用 Iain Duff 的 MA49。
您可以让 MATLAB 告诉您它内部在做什么A\b
使用此选项:
spparms ('spumoni',3)
然后再次将其关闭
spparms ('spumoni',0)
对于稀疏方阵,它使用 UMFPACK。对于稀疏矩形矩阵,它使用 SuiteSparseQR(或简称 spqr)。
对于下三角或上三角的稀疏矩阵,或者可以排列成这样的稀疏矩阵,它使用利用这些属性的前向/后向求解器。
MATLAB 根本不在反斜杠中使用单纯形法。如果矩阵是矩形的(又短又粗,列多于行)A\b
返回一个基本的解决方案。如果你想要一个最小 2-范数解,你需要分解A'
。这可以在 spqr MATLAB 界面中完成,但该选项在 MATLAB 发行版中不可用。您需要从源代码安装 spqrsuitesparse.com http://www.suitesparse.com.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)