簡體   English   中英

大型稀疏矩陣計算-MathNet數值

[英]Large Sparse Matrix Calculation - MathNet Numerics

我開始使用MathNet數值庫 ,我需要它來計算與鄰接矩陣的特征向量相對應的最大特征值。

當使用大量點時,鄰接矩陣會變得非常大(即5782x5782條目)

大多數條目為“ 0”,所以我認為我可以使用“ SparseMatrix”。 但是,當我使用它時,仍然需要花一些時間進行計算。 實際上,我從來沒有真正等了那么久才完成。 我在matlab中嘗試了整個過程,沒有任何問題。 Matlab在幾秒鍾內解決了它。

您對我有什么建議嗎?

這是我在做什么:

// initialize matrix and fill it with zeros
Matrix<double> A = SparseMatrix.Create(count, count, 0);

... fill matrix with values ...

// get eigenvalues and eigenvectors / this part takes centuries =)
Evd<double> eigen = A.Evd(Symmetricity.Symmetric);
Vector<Complex> eigenvector = eigen.EigenValues;

Math.Net Numerics的實現完全基於C#。 因此,性能可能無法與MATLAB之類的工具相提並論,因為它們主要依賴於本機且經過高度優化的BLAS庫來執行數值計算。

您可能要使用Math.Net隨附的本機包裝,這些包裝使用了高度優化的線性代數庫(例如Intel的MKL或AMD的ACML)。 這個MSDN頁面上有一個指南,說明了如何構建具有ACML支持的Math.NET(請參見Math.NET Numerics中的“編譯和使用AMD ACML” )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM