.NET數學庫NMath使用教程——向量的功能(一)

NMath是一個適用於全部.NET語言,如C#、Visual Basic、F#和.NET的數學庫,它包含了.NET平臺上的面向對象數字計算的基礎類。咱們將以連載的形式向你們介紹NMath的實用教程。本節展現NMath中各類以向量做爲參數的函數類型。函數

最新版NMath點擊下載spa


舍入函數 對象

    類NMathFunctions 提供用於舍入向量元素的靜態方法:排序

  •  Round()將給定向量的每一個元素舍入到指定的小數位數。教程

  •  Ceil()將ceiling四捨五入功能應用於給定矢量的每一個元素。索引

  •  Floor()將floor四捨五入功能應用於給定矢量的每一個元素。  get

例如,此代碼將美圓金額的向量轉換爲歐元,而後舍入到兩個小數位: 數學

代碼示例 - C#產品

var v = new DoubleVector( "$4.30 $0.08 ($5.87)", 
   NumberStyles.Number | NumberStyles.AllowCurrencySymbol | 
   NumberStyles.AllowParentheses );
v = v * 0.9289;  // exchange rate
v = NMathFunctions.Round( v, 2 );

代碼示例 - VBio

Dim V As New DoubleVector("$4.30 $0.08 ($5.87)",
  NumberStyles.Number Or NumberStyles.AllowCurrencySymbol Or
  NumberStyles.AllowParentheses)
V = V * 0.9289  ' exchange rate
V = NMathFunctions.Round(V, 2)

總和,差別和產品 

    類NMathFunctions 提供靜態方法來計算向量元素的總和,差別和產品:

  • Sum()是定向量中元素的總和。

  • AbsSum()是定向量中元素的絕對值之和。(對於復矢量,此函數計算矢量元素的L1範數之和。) 

  • CumulativeSum()是定向量中元素的累積和的向量,使得。

u [i] = v [0] + v [1] + ... v [i]
  • NaNSum()是定向量中元素的總和,忽略非數字(NaN)的值。NaN函數僅可用於實值向量,而不能用於複數向量。 

  • Delta()是定向量中連續元素之間差別的向量,例如: 

u [0] = v [0] u [i] = v [i]  -  v [i-1]
  • CumulativeProduct()是定向量中元素的累積乘積的向量。

  • Dot()是在向量點或內部, 兩個向量的乘積d,v和w,其中 

    d = v [0] * w [0] + v [1] * w [1] ......
  • OuterProduct()建立一個包含兩個向量的外積的矩陣 。  

注意:Cross()計算兩個向量的交叉乘積。向量必須至少具備三個長度,而且爲了計算叉積而忽略超過三個的元素。

例如: 代碼示例 - C#

var v = new FloatVector(「[1 2 3 4 5 6]」);var u = new FloatVector(v.Length,1,1);float dp = NMathFunctions .Dot(v,u);

代碼示例 - VB 

Dim V As New FloatVector(「[1 2 3 4 5 6]」)Dim U As New FloatVector(V.Length,1,1)Dim DP As Single = NMathFunctions .Dot(V,U)

最小/最大功能 類

    NMathFunctions 提供靜態最小/最大查找方法,返回知足適當標準的元素的整數索引:

  • MaxIndex()返回具備最大值的元素的索引。

  • MinIndex()返回具備最小的元素的索引。 

  • MaxAbsIndex()返回絕對值最大的元素的索引

  • MinAbsIndex()返回絕對值最小的元素的索引。

    最小值/最大值方法MaxValue(), MinValue(),MaxAbsValue()和MinAbsValue()返回知足相應條件的元素的值,返回的類型取決於向量的類型。

統計功能 

    NMathFunctions 上的靜態Mean()方法返回給定向量元素的均值。Median() 返回中位數。若是向量的長度是偶數,則對中間兩個元素求平均值,Median()僅適用於實值向量,而不是複數向量,由於複數不存在標準排序。 

 Variance()返回元素的誤差方差。

例如: 代碼示例 - C#

var v = new DoubleVector(「[1 2 3 4 5 6]」);double mean = NMathFunctions .Mean(v);double variance = NMathFunctions .Variance(v);

代碼示例 - VB

Dim V As New FloatVector("[1 2 3 4 5 6]")
Dim U As New FloatVector(V.Length, 1, 1)

Dim DP As Single = NMathFunctions.Dot(V, U)

    SumOfSquares()是定向量元素平均值的平方誤差之和。 NaNMean(),NanMedian(),NaNVariance()和NanSumOfSquares()忽略非數字(NaN)的值。NaNCount()是向量中的NaN值的數量。NaN函數僅適用於實值向量,而不適用於復矢量。

三角函數 

    NMath擴展標準三角函數Acos(),Asin(),Atan(),Cos(),Cosh(),Sin(),Sinh(),Tan()和Tanh() 以獲取向量參數。類NMathFunctions提供這些函數做爲靜態方法。例如,此代碼構造一個向量,其內容是另外一個向量的餘弦:

代碼示例 - C# 

var v = new FloatVector(10,0,2);FloatVector cosv = NMathFunctions .Cos(v);

代碼示例 - VB

var v = new FloatVector(10,0,2);FloatVector cosv = NMathFunctions .Cos(v);

 靜態Atan2()方法採用兩個向量,並將雙參數反正切函數應用於連續的元素對。 

相關文章
相關標籤/搜索