开源Math.NET基础数学类库使用(02)矩阵向量计算

本文介绍了开源Math.NET Numerics库的基础数学功能,特别是矩阵与向量的创建、算术运算及其在线性代数中的应用。Math.NET支持向量和矩阵的多种类型,包括稀疏和非稀疏结构,并提供了丰富的运算符和线性方程求解方法。通过实例展示了矩阵的基本运算,为深入使用该库提供了基础。
摘要由CSDN通过智能技术生成

该文章为转载文章,原文文章地址,请点击此处

前言

 本文开始一一介绍Math.NET的几个主要子项目的相关功能的使用。今天先要介绍的是最基本Math.NET Numerics的最基本矩阵与向量计算。

1.创建Numerics矩阵与向量

矩阵与向量计算是数学计算的核心,因此也是Math.NET Numerics的核心和基础。

Math.NET包括对向量(Vector)和矩阵(Matrix)的支持,类型也很多。其主要注意点有:索引是从0开始,不支持空的向量和矩阵,也就是说维数或者长度最少为1。它也支持稀疏矩阵和非稀疏矩阵的向量类型。其矩阵有3种类型:稀疏,非稀疏,对角。这2个类在MathNet.Numerics.LinearAlgebra命名空间。由于一些技术和表示的原因,每一种数据类型都有一个实现,例如MathNet.Numerics.LinearAlgebra.Double有一个DenseMatrix类型,Matrix 是抽象类型, 要通过其他方法去初始化。可以看看源码中的定义:

public abstract partial class Vector<T> :IFormattable, IEquatable<Vector<T>>, IList, IList<T>
                                where T : struct, IEquatable<T>, IFormattable
public abstract partial class Matrix<T> :IFormattable, IEquatable<Matrix<T>> 
                                where T : struct, IEquatable<T>, IFormattable

创建也很简单,可以大概看看下面这段代码,构造函数还有更多的用法,不一一演示,要自己研究下源代码,记得要引用MathNet.Numerics.LinearAlgebra命名空间:

//初始化一个矩阵和向量的构建对象
var mb = Matrix<double>.Build;
var vb = Vector<double>.Build;

//获取随机矩阵,也可以设置随机数所属的分布
var randomMatrix = mb.Random(2,3);
//
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值