文章目录
安装索引和计算逐点计算静态方法
MathNet系列:矩阵生成
安装
MathNet.Numerics中提供了线性代数、微积分、特殊函数、概率论、随机函数、插值、最优化等一系列功能,是.net技术中首选的数值计算包。
其中,线性代数包LinearAlgebra包提供了向量、矩阵等数据结构,这些是数值计算的前提,故而相比于其他包更加基础。
下面用VS新建一个控制台项目,并启用顶级语句。点击工具->NuGet包管理器->管理解决方案的NuGet程序包,进入浏览选项卡,搜索MathNet.Numerics,选中安装。
索引和计算
MathNet并未重载索引运算符,而是通过At方法来索引。但矩阵重载了许多运算符,支持加减法以及矩阵乘法运算。需要注意,*是矩阵乘法,而非对应元素的乘法。
Matrix也封装了常见运算的方法,以加法为例,提供了两种方案,一是直接返回一个矩阵,二是实现一个void方法,通过传地址的方式,更改输入的另一个矩阵。示例如下
using MathNet.Numerics.LinearAlgebra;
Matrix
Matrix
Matrix
Console.WriteLine(m.Add(n));
m.Add(n, p);
其中,m.Add(n)返回m+n;m.Add(n, p)则相当于p=m+n。
Matrix封装了一些乘除法,其调用逻辑与Add相似,列举如下
Multiply 矩阵乘法PointwiseMultiply 逐点相乘LeftMultiply 向量左乘,返回一个向量Divide 除以某个数DivideByThis 除某个数PointwiseDivide 逐点相除PointwiseRemainder 逐点求余PointwiseModulus 逐点取模Power 乘方PointwisePower 逐点乘方
逐点计算
Matrix中提供了一大批Pointwise开头的方法,用于点对点的计算
PointwiseAbsoluteMaximum返回绝较大的对值值PointwiseAbsoluteMinimum返回绝较小的对值值
三角函数PointwiseCos, PointwiseSin, PointwiseTan反三角函数PointwiseAcos, PointwiseAsin, PointwiseAtan双曲函数PointwiseCosh, PointwiseSinh, PointwiseTanh取整PointwiseCeiling, PointwiseFloor, PointwiseRound指数对数PointwiseExp, PointwiseLog, PointwiseLog10比大小PointwiseMaximum, PointwiseAbsoluteMaximumPointwiseMinimum, PointwiseAbsoluteMinimum开根号PointwiseSqrt
静态方法
Matrix类中封装了一些静态方法,除了绝对值Abs,开根号Sqrt之外,还有如下
类别函数三角函数Cos, Sin, Tan反三角函数Acos, Asin, Atan双曲函数Cosh, Sinh, Tanh指数对数Exp, Log, Log10,取整Ceiling, Floor, Round
以指数函数示例如下
using MathNet.Numerics.LinearAlgebra;
using System.Runtime.InteropServices;
Matrix
Console.WriteLine(m);
Console.WriteLine(Matrix
/*
DenseMatrix 3x4-Double
0.5 0.5 0.5 0.5
0.5 0.5 0.5 0.5
0.5 0.5 0.5 0.5
DenseMatrix 3x4-Double
1.64872 1.64872 1.64872 1.64872
1.64872 1.64872 1.64872 1.64872
1.64872 1.64872 1.64872 1.64872
*/
精彩链接
发表评论