C#环境下的数值计算库:MathNet简介

工程技术人员不可避免的会涉及到数值计算程序的编制,当前也存在一些功能非常强大的数值计算库,如IMSL等,然而这些商用库通常都不便宜。mathnet是开源的数值计算库,完全免费。关于mathnet的介绍可以参看http://hi.baidu.com/analyzecode/blog/item/8129a5de9b94954eccbf1a28.html,也可以直接去其官方网站http://www.mathdotnet.com/

C#用于windows桌面程序的开发,有着无可比拟的优势,无论是速度上、语言易学性上。而mathnet是完全基于c#编写,不会存在兼容性的问题。因此,对于像俺这样只是开发小型的非商业的数值计算程序的人来说,利用c#与mathnet的联合,无疑是首要选择。

下面以一个简要的例子来说明MathNet的用法。

1、第一步当然是库下载。我们进入官方首页,找到下图所示的Download按钮,进入下载页面。然后在打开的页面中下载Math.NET Iridium(Numerics),如下图所示。

   12

2、将下载的文件解压缩,找到解压文件夹中的MathNet.Iridium.dll文件,可以利用文件搜索功能寻找。该文件位于解压目录下的Binaries\release文件夹下。后面在c#文件中会利用到此dll文件。

3、新建一个C#工程,本次为测试,所以创建最为简单的控制台工程。

4、将第二步的dll文件添加到引用中。在解决方案资源管理器的树形菜单“引用”上点击右键,选择“添加引用”,弹出如下图所示的对话框。选择浏览,找到第二步所述的dll文件,将其添加至工程中。

3

5、编写测试程序。

我们这里以一个简单的线性方程来进行测试,线性方程组为:

4

源代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MathNet.Numerics.LinearAlgebra;namespace ConsoleApplication2
{
   class Program
   {
       static void Main(string[] args)
       {
           //写入系数,构建系数矩阵
           double[][] a ={new double []{1,1},new double []{1,-1}};
           Matrix ma = Matrix.Create(a);           //右侧矩阵
           double[][] b = { new double[] { 3 }, new double[] { 1 } };
           Matrix mb = Matrix.Create(b);

           //矩阵求解方法solve
           Matrix mx = ma.Solve(mb);
           System.Console.WriteLine(mx[0, 0] + “,” + mx[1, 0]);

           Console.ReadKey();
       }
   }
}

计算结果为:2,1

 

from: http://blog.sina.com.cn/s/blog_599d8faa0100u2uq.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

CAPTCHA

*