幾年前接觸這個元件的時候,隻需要在.net平台進行一些正常的微積分計算,功能還比較少,隻限于正常的數值計算,現在已經功能越來越多了,應該是目前最好的替代matlab進行數值計算的.net元件。本文及接下來的幾篇文章将詳細的對該元件進行介紹。還有在.net平台使用相關matlab混編進行數值計算的朋友該好好了解了解并學習下了。當然這個基礎元件的功能很廣泛,應該很多都比較喜歡吧。
math.net初衷是開源建立一個穩定并持續維護的先進的基礎數學工具箱,以滿足.net開發者的日常需求。目前該元件主要分為以下幾個子項目,該元件同時也支援mono,而且支援的平台也非常廣泛(pcl portable profile 47: windows 8, silverlight 5,xamarin: android, ios)。
支援機率分布:離散型、連續型和多元
僞随機數生成器
支援稀疏矩陣和向量的複雜的線性代數解決方法
lu, qr, svd, evd,cholesky分解
矩陣讀寫功能,支援matlab和一些分開的檔案
複數計算
特殊函數: gamma, beta, erf,bessel,struve 等等
插值,線性回歸,曲線拟合
數值積分,方程求解
描述性統計、統計直方圖,皮爾森相關系數
馬爾可夫鍊蒙特卡羅抽樣
基本的财務統計資料
傅裡葉變換(fft)
重載的數學操作符來簡化複雜的表達式
mono平台支援,可選支援英特爾數學核心庫(microsoft windows和linux)
可選更多的的f#擴充用法
math.net symbolics是一個math.net下一個基礎的代數計算項目,該項目的最終目的并不是要成為如maple,mathematica那樣一個完善的計算機代數計算系統。以前在做matlab.net混合程式設計的時候,經常就有人問為什麼混合程式設計的符号計算用不了,其實就是用不了,官方不支援,那怎麼辦,其實簡單的功能,就可以使用這個項目來完成。詳細的使用可以參考項目首頁的幫助文檔,接下來的文章也會加以介紹。
math.net filtering是一個數字信号處理工具箱,提供了數字濾波器的基礎功能,以及濾波器應用到數字信号處理和資料流轉換的相關功能。
是math.net下的一個幾何處理工具箱。
math.net在發展過程中的一些其他項目如math.net iridium ,math.net classic, math.net linq algebra, math.net yttrium等都是曆史(有一些是實驗性的),現在都已經合并到上述幾個子項目中。
相關源碼在本系列文章下載下傳完成後統一釋出,敬請關注。基本資料可以去官網下載下傳。