1.前言:
Alglib是一個跨平台的數值分析與資料處理類別軟體,分為商業版與開放原始碼兩種,其中開放原始碼版本為GPL2+授權,支援多種程式包含C#、C++、Pascal和VBA等。
2.說明:
與其他同類型的數值分析開放原始碼相比較,Alglib所提供的不是編譯好的DLL檔,而是提供各種數值計算的類別,可以與自己的專案做很好的融合,雖然非商業的版本只有單執行緒的運算,對速度要求不高的應用來說應已足夠,本範例舉基本統計功能為例。
軟體說明及下載:
http://www.alglib.net/#book
C#範例說明:
http://www.alglib.net/translator/man/manual.csharp.html
加入類別檔案到自己的專案下,並已加入現有項目的方式加入類別,類別包含:
•alglibmisc.cs - contains different algorithms which are hard to classify
•dataanalysis.cs - contains data mining algorithms
•diffequations.cs - contains differential equation solvers
•fasttransforms.cs - contains FFT and other related algorithms
•integration.cs - contains numerical integration algorithms
•interpolation.cs - contains interpolation algorithms
•linalg.cs - contains linear algebra algorithms
•optimization.cs - contains optimization algorithms
•solvers.cs - contains linear and nonlinear solvers
•specialfunctions.cs - contains special functions
•statistics.cs - statistics
•alglibinternal.cs - contains internal functions which are used by other packages, but not exposed to the external world
•ap.cs - contains publicly accessible vector/matrix classes, most important and general functions and other "basic" functionality
程式碼:
double[] x = new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }; double mean; double median; double variance; double stdev; double p25; double p75; mean = alglib.samplemean(x); alglib.samplemedian(x, out median); variance = alglib.samplevariance(x); stdev = Math.Sqrt(variance); alglib.samplepercentile(x, 0.25, out p25); alglib.samplepercentile(x, 0.75, out p75); System.Console.WriteLine("Mean: {0}", mean.ToString()); System.Console.WriteLine("Median: {0}", median.ToString()); System.Console.WriteLine("Variance: {0}", variance.ToString()); System.Console.WriteLine("Stdev: {0}", stdev.ToString()); System.Console.WriteLine("P25: {0}", p25); System.Console.WriteLine("P75: {0}", p75);