簡體   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