2010-02-25 82 views
61

我需要一個C#庫來處理矩陣。它應該實現奇異值分解,矩陣求逆等。C#矩陣庫推薦

我以前用過CSML,但是這並沒有實現我需要的一些功能。

一些特點是:
奇異值分解
矩陣求逆
跟蹤
因素

建議庫(從答案)

(大部分實現上述的功能)

+4

這可能有助於提及CSML不具備的功能。 – Nick 2010-02-25 18:49:51

+2

http://accord-framework.net/將矩陣運算實現爲'double [,]'類型的擴展方法。 – 2013-11-05 21:33:56

回答

27

Math.NET Numerics是非常好的,如果它支持你想要的操作。較舊的Math.Net銥星仍然支持更多選項。另外,dnAnalytics非常好,但不再開發。 (它和Iridium一樣,正在合併到Math.NET Numerics中。)

在商業方面,有一些非常好的,強大的選項。 Extreme Optimization Numerical Libraries工作得很好。 Visual Numerics圖書館也工作得很好(雖然以版稅爲基礎的分發...)。

+0

銥星會訣竅。我無法使用Math.NET中的矩陣類,因爲它是抽象的,所以我需要派生它。對 ? – jose 2010-02-26 11:20:44

+1

它們提供了具體的實現,但由於Math.NET Numerics不完整,有些實現尚未完成(尚未完成)。 – 2010-02-26 16:39:18

+0

根據您的需要,有兩個具體類:Matrix m = new DenseMatrix(...)或new SparseMatrix(...)。 – 2012-01-15 22:10:23

6

我相信Math.NET具有您提到的大部分功能。 Yuu可能想看看它,看看它是否符合你的需求。

您可以查看Iridium samples以查看語法和示例代碼。

2

除了其他文章中提到的圖書館,我可以說一些關於FinMath圖書館的溫暖的話。這是一個相當新的圖書館,但根據我的經驗,它有幾個優點。使用這個庫非常容易。首先,它只有一個用於32位和64位操作系統的可執行文件(* .dll)。其次,它建立在衆所周知的英特爾數學核心庫之上,因此它提供了非常好的性能。這個庫提供的託管.NET API也非常廣泛和靈活。但是,它是專有軟件,需要花費大量金錢。它也缺乏一些功能(例如與CenterSpace軟件的NMath相比)。無論如何,這是值得的時間去嘗試。

5

我一直在使用ILNumerics很多。也爲該項目做了一些貢獻。知道它是我所知道的唯一的庫,它不會花費CPU的一半CPU時間serious computations。它的快速和成熟。請參閱完整的feature list

+1

+1 ILNumerics具有其他庫的所有功能。但速度要快得多。 – 2012-03-13 11:32:18