Math.Net DotNet阵营中的开源Math库,官网为www.mathdotnet.com。
高数、线代等知识已经忘得差不多了,MathNet的相关中文资料好像也不多,真有点费力气。
VS中使用Math.Net 可以直接用Nuget添加MathNet.Numerics。
下面测试一个最简单的线性方程组:
1.建立左侧的系数矩阵
1 1 1 -1var ma = DenseMatrix.OfArray(new double[,] { {1, 1}, {1, -1}});
2.建立右侧的矩阵或向量
var va = Vector.Build.DenseOfArray(new double[] {3,1});//向量
var mb = DenseMatrix.OfArray(new double[,] { {3}, {1}});//矩阵
3.求解
//var mx = ma.Solve(va);var mx = ma.Solve(mb);
源代码如下:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using MathNet.Numerics.LinearAlgebra;using MathNet.Numerics.LinearAlgebra.Double;namespace ConsoleDemo{ class Program { static void Main(string[] args) { /* var ma = DenseMatrix.OfArray(new double[,] { {1, 1}, {1, -1}}); var va = Vector.Build.DenseOfArray(new double[] {3,1}); var mx = ma.Solve(va); Console.WriteLine(mx.ToString()); Console.ReadLine(); */ var ma = DenseMatrix.OfArray(new double[,] { { 1, 1 }, { 1, -1 } }); var mb = DenseMatrix.OfArray(new double[,] { {3}, {1}}); var mx = ma.Solve(mb); Console.WriteLine(mx.ToString()); Console.ReadLine(); } }}