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);
arrow
arrow
    文章標籤
    C# Alglib 數值分析
    全站熱搜
    創作者介紹
    創作者 西夏普 的頭像
    西夏普

    西夏普的部落格

    西夏普 發表在 痞客邦 留言(0) 人氣()