.NET数学库NMath使用教程——向量的功能(一)

原创|使用教程|编辑:况鱼杰|2019-06-20 15:32:12.850|阅读 38 次

概述:NMath是NMath套包中基础的.NET函数库,它包含了复数类,通用向量与矩阵类,结构化稀疏矩阵类与因式分解,通用稀疏矩阵类与因式分解,通用矩阵分解,最小二乘解等内容。本节展示NMath中各种以向量作为参数的函数类型。

相关链接:

NMath是一个适用于所有.NET语言,如C#、Visual Basic、F#和.NET的数学库,它包含了.NET平台上的面向对象数字计算的基础类。我们将以连载的形式向大家介绍NMath的实用教程。本节展示NMath中各种以向量作为参数的函数类型。

最新版NMath点击下载


函数类型分为:

  • 舍入函数

  • 总和,差异和产品

  • 最大/最小功能类

  • 统计功能

  • 三角函数

  • 先验功能

  • 绝对值和平方根

  • 排序功能

  • 复矢量函数  

本节介绍前五种类型:

舍入函数 

    类NMathFunctions 提供用于舍入向量元素的静态方法:

  •  Round()将给定向量的每个元素舍入到指定的小数位数。

  •  Ceil()将ceiling四舍五入功能应用于给定矢量的每个元素。

  •  Floor()将floor四舍五入功能应用于给定矢量的每个元素。  

例如,此代码将美元金额的向量转换为欧元,然后舍入到两个小数位: 

代码示例 - 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 );

代码示例 - VB

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()方法采用两个向量,并将双参数反正切函数应用于连续的元素对。 


 年中活动,优惠多多,点击就可领取 MyEclipse 、.NET ReactorFastReport .NetVMProtect等超多在线订购产品优惠券!



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果

登录慧都网发表评论登录


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
NMath

NMath是一个.NET的数学库,包含了NET平台上的面向对象数字计算的基础类。

在线客服 在线QQ 电话咨询
400-700-1020
反馈
在线客服系统
live chat