加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2011-10-15 17:22:29)
标签:

杂谈

分类: CFD感悟

工程技术人员不可避免的会涉及到数值计算程序的编制,当前也存在一些功能非常强大的数值计算库,如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),如下图所示。

image    image

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

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

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

SNAGHTML16f841b

5、编写测试程序。

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

image

源代码如下:

 
 
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
 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有