翻譯|使用教程|編輯:況魚杰|2019-06-12 10:26:39.210|閱讀 376 次
概述:NMath是NMath套包中基礎(chǔ)的.NET函數(shù)庫,它包含了復(fù)數(shù)類,通用向量與矩陣類,結(jié)構(gòu)化稀疏矩陣類與因式分解,通用稀疏矩陣類與因式分解,通用矩陣分解,最小二乘解,隨機(jī)數(shù)生成器,快速傅里葉變換(FFT算法) ,數(shù)值積分與微分方法,函數(shù)最小化,曲線擬合,求根法,線性與非線性編程等內(nèi)容,本教程介紹NMath中向量的邏輯運(yùn)算和算術(shù)運(yùn)算。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
NMath是一個(gè)適用于所有.NET語言,如C#、Visual Basic、F#和.NET的數(shù)學(xué)庫,它包含了.NET平臺上的面向?qū)ο髷?shù)字計(jì)算的基礎(chǔ)類。我們將以連載的形式向大家介紹NMath的實(shí)用教程。本節(jié)內(nèi)容展示向量的邏輯運(yùn)算和算術(shù)運(yùn)算。
向量的邏輯運(yùn)算
Operator== 測試兩個(gè)向量的相等性, 如果兩個(gè)向量具有相同的維度且所有值相等,則返回 true ; 否則,返回false。遵循.NET Framework準(zhǔn)則,如果兩個(gè)對象都為null,則兩個(gè)向量相等。
DoubleVector 和DoubleComplexVector的值的比較是使用operator == for double完成的。
FloatVector和 FloatComplexVector的值的比較是使用operator == for floats完成的。
向量的值必須完全相等才能使此方法返回 true。
注意:equals函數(shù)也需測試是否相等。NaNEquals忽略 Not-a-Number (NaN)的值。
向量的算術(shù)運(yùn)算
對于支持向量的.NET語言,NMath提供帶有常規(guī)意義的重載算術(shù)運(yùn)算符,以及和那些不支持向量的語言等效的命名方法。下表列出等效的運(yùn)算符:
算術(shù)運(yùn)算符
操作符 | 等效命名 |
+ | Add() |
- | Subtract() |
* | Multiply() |
/ | Divide() |
Unary - | Negate() |
++ | Increment() |
-- | Decrement() |
注意:
Unary -,Increment()和Decrement()運(yùn)算符應(yīng)用于向量中的每個(gè)元素,Negate()返回一個(gè)新矢量對象,Increment() 和Decrement()不會。
所有二元運(yùn)算符和等效命名方法都可以使用兩個(gè)向量,或者使用向量和標(biāo)量。
向量必須具有相同的長度才能使用 element-wise運(yùn)算符進(jìn)行組合。否則,拋出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 = 2 Dim W As FloatVector = FloatVector.Add(V, FloatVector.Multiply(Scalar, U))
NMath 還提供接受三個(gè)向量參數(shù)算術(shù)命名方法的重載。第三個(gè)向量保存對前兩個(gè)向量合理操作的結(jié)果,因?yàn)椴粫峙湫聝?nèi)存,所以效率更高,這對于重復(fù)操作很有用。當(dāng)添加兩個(gè)向量并將結(jié)果存儲在第三個(gè)中時(shí):
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
如果三個(gè)向量的長度不同,則拋出MismatchedSizeException,第三個(gè)向量參數(shù)也可以與前兩個(gè)參數(shù)中的一個(gè)相同,在這種情況下,它會被結(jié)果覆蓋:
Code Example – C# vector
DoubleVector.Subtract( u, v, v );
Code Example – VB vector
DoubleVector.Subtract(U, V, V)
在線答謝惠,限量優(yōu)惠限時(shí)搶:FastReport. NetMyEclipse Zend Guard等產(chǎn)品優(yōu)惠請點(diǎn)擊>>
想要了解更多資訊,更多優(yōu)惠的朋友請
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn