NMath是NMath套包中基础的.NET函数库,它包含了复数类,通用向量与矩阵类,结构化稀疏矩阵类与因式分解,通用稀疏矩阵类与因式分解,通用矩阵分解,最小二乘解,随机数生成器,快速傅里叶变换(FFT算法) ,数值积分与微分方法,函数最小化,曲线拟合,求根法,线性与非线性编程等内容,本教程介绍NMath中向量的逻辑运算和算术运算。
NMath是一个适用于所有.NET语言,如C#、Visual Basic、F#和.NET的数学库,它包含了.NET平台上的面向对象数字计算的基础类。我们将以连载的形式向大家介绍NMath的实用教程。本节内容展示向量的逻辑运算和算术运算。
最新版NMath
向量的逻辑运算
Operator== 测试两个向量的相等性, 如果两个向量具有相同的维度且所有值相等,则返回 true ; 否则,返回false。遵循.NET Framework准则,如果两个对象都为null,则两个向量相等。
-
DoubleVector 和DoubleComplexVector的值的比较是使用operator == for double完成的。
-
FloatVector和 FloatComplexVector的值的比较是使用operator == for floats完成的。
-
向量的值必须完全相等才能使此方法返回 true。
注意:equals函数也需测试是否相等。NaNEquals忽略 Not-a-Number (NaN)的值。
向量的算术运算
对于支持向量的.NET语言,NMath提供带有常规意义的重载算术运算符,以及和那些不支持向量的语言等效的命名方法。下表列出等效的运算符:
算术运算符
操作符 |
等效命名 |
+ |
Add() |
– |
Subtract() |
* |
Multiply() |
/ |
Divide() |
Unary – |
Negate() |
++ |
Increment() |
— |
Decrement() |
注意:
-
Unary -,Increment()和Decrement()运算符应用于向量中的每个元素,Negate()返回一个新矢量对象,Increment() 和Decrement()不会。
-
所有二元运算符和等效命名方法都可以使用两个向量,或者使用向量和标量。
-
向量必须具有相同的长度才能使用 element-wise运算符进行组合。否则,抛出MismatchedSizeException。
例如:
Code Example – C# vector
var v = new FloatVector(5,0,1); // [0,1,2,3,4]var u = new FloatVector(5,1,1); // [1,2,3,4,5]float scalar = 2;FloatVector w = v + scalar*u;
此Visual Basic代码使用等效的命名方法:
Code Example – VB vector
Dim V As New FloatVector(5, 0, 1)Dim U As New FloatVector(5, 1, 1)Dim Scalar As Single = 2Dim W As FloatVector = FloatVector.Add(V, FloatVector.Multiply(Scalar, U))
NMath 还提供接受三个向量参数算术命名方法的重载。第三个向量保存对前两个向量合理操作的结果,因为不会分配新内存,所以效率更高,这对于重复操作很有用。当添加两个向量并将结果存储在第三个中时:
Code Example – C# vector
var v = new DoubleVector( "[ 0 1 2 3 4 ]" );var u = new DoubleVector( 5, 1 );var w = new DoubleVector( u.Length );DoubleVector.Add( v, u, w );DoubleVector.Add( v, u++, w );DoubleVector.Add( v, v, w );// Still only three vectors allocated
Code Example – VB vector
Dim V As New DoubleVector("[ 0 1 2 3 4 ]")Dim U As New DoubleVector(5, 1)Dim W As New DoubleVector(U.Length)DoubleVector.Add(V, U, W)DoubleVector.Add(V, U.Increment(), W)DoubleVector.Add(V, V, W)' Still only three vectors allocated
如果三个向量的长度不同,则抛出MismatchedSizeException,第三个向量参数也可以与前两个参数中的一个相同,在这种情况下,它会被结果覆盖:
Code Example – C# vector
DoubleVector.Subtract( u, v, v );
Code Example – VB vector
DoubleVector.Subtract(U, V, V)
最新版NMath
在线答谢惠,限量优惠限时抢:FastReport. NetMyEclipse Zend Guard等产品优惠请点击>>
想要了解更多资讯,更多优惠的朋友请咨询客服>>

标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!