繁体   English   中英

Matlab如何解决大型,对称和稀疏线性系统

[英]how does matlab solve large, symmetric and sparse linear systems

也就是说,当我对一个非常大,对称且稀疏的A执行A\\b ,matlab使用哪种算法?

如果矩阵稀疏且对称正定,但具有非常窄的频带,则使用专用的频带求解器。 大多数矩阵的带宽不足以触发此条件。 通常,在样条线工具箱中会附带一维样条线。 二维问题具有较大的“带”(它们不是真正的带状矩阵)。

更典型地,MATLAB将CHOLMOD用于稀疏对称正定矩阵。 如果矩阵稀疏,对称且不确定,则使用Iain Duff的MA49。

您可以使用以下选项让MATLAB告诉您在A\\b正在做什么:

spparms ('spumoni',3)

然后用

spparms ('spumoni',0)

对于稀疏平方矩阵,它使用UMFPACK。 对于稀疏矩形矩阵,它使用SuiteSparseQR(或简称spqr)。

对于较低或较高三角形的稀疏矩阵,或者可以将其置换成这样的稀疏矩阵,它使用利用这些属性的前向/后向求解器。

MATLAB根本不在反斜杠中使用单纯形方法。 如果矩阵是矩形(又短又胖,列多于行),则A\\b返回基本解。 如果需要最小二范数解,则需要分解A' 这可以在spqr MATLAB界面中完成,但是该选项在MATLAB发行版中不可用。 您需要从suitesparse.com的源代码安装spqr

答案取决于A的某些属性(对角线/正方形/带状?等)。 CHOLMOD,UMFPACK和qr因式分解是一些选项。

文档对此进行了说明。 这里是文档在线快照的链接。 这可能已经过时了。 -http://amath.colorado.edu/computing/Matlab/OldTechDocs/ref/arithmeticoperators.html-http : //www.maths.lth.se/na/courses/NUM115/NUM115-11/backslash.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM