ILNumerics是一个开源的数值项目,一种NET框架的高性能数学库,它简化了各种数学算法的使用,优化到了C和FORTRAN的速度。现在它提供了一个支持“任何CPU”的NuGet包。它的独立版本ILView,已经宣布支持REPL的3D可视化工具,可以运行在.NET/Windows和Mono/Linux环境里。支持线性方程计算,数值计算,机器学习。
     

      在Visual Studio中可以通过NuGet安装:

PM> Install-Package ILNumerics

      下面我们演示如何解三阶线性方程:

     

       对应的Demo代码是这样的:

        /// <summary>
        /// Sovle the 3x3 matrix.
        /// </summary>
        /// <remarks>http://wintersun.cnblogs.com/</remarks>
        /// <seealso cref="http://ilnumerics.net/apidoc/Index.html"/>
        /// <seealso cref="http://ilnumerics.net/GetStarted.html"/>
        /// <seealso cref="http://ilnumerics.net/quickstart.html"/>
        private static void Sovle3X3Matrix()
        {
            // construct 3 x 3 matrix, upper triagonal
            ILArray<double> A = ILMath.zeros(3, 3);
            A["0;:"] = new double[] { 1, -1, -1 };
            A["1;:"] = new double[] { 2, -1, -3 };
            A["2;:"] = new double[] { 3, 2, -5 };
 
            // now construct a right side - a vector counting from 1: 
            ILArray<double> B = new double[] { 2, 1, 0 };
            ILArray<double> x = ILMath.linsolve(A, B);
 
            // lets check if the result really solves our equation 
            ILArray<double> bTest = ILMath.multiply(A, x);
 
            Console.Out.WriteLine("A: " + Environment.NewLine + A.ToString());
            Console.Out.WriteLine("B: " + Environment.NewLine + B.ToString());
            Console.Out.WriteLine("x: " + Environment.NewLine + x.ToString());
            Console.Out.WriteLine("bTest: " + Environment.NewLine + bTest.ToString());
        } 

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

         输出的代码是这样的:

A:

<Double> [3,3]

         1         -1         -1

         2         -1         -3

         3          2         -5

B:

<Double> [3,1]

         2

         1

         0

x:

<Double> [3,1]

   5.00000

   0.00000

   3.00000

bTest:

<Double> [3,1]

   2.00000

         1

   0.00000

 

x对象是结果或解,bTest对象我们做验算。

更多可以参考:

http://ilnumerics.net/GetStarted.html

还有《白皮书--行业数值运算》 包括:

■ 数值算法和软件开发

■ ILNumerics的优势

■ 案例研究

■ 结论

■ 附录1:ILNumerics语法

■ 附录2:洞察 - ILNumerics内存管理

 

希望对您程序开发有帮助。

作者:Petter Liu

出处:http://www.cnblogs.com/wintersun/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

该文章也同时发布在我的独立博客中-Petter Liu Blog

ILNumerics项目的应用之线性方程的更多相关文章

  1. Visual Studio图片注释image-comments扩展

            有一个开源的Visual Studio小工具image-comments,它用于在源代码注释中插入图片,您可以到这儿下载.目前支持Visual Studio 2010/2012 Sta ...

  2. C++线性方程求解

    介绍 程序SolveLinearEquations解决联立方程.该方案需要一个文本文件,其中包含输入和输出方程解决.这个项目是几年前我写在C#中http://www.codeproject.com/A ...

  3. Fis3前端工程化之项目实战

    Fis3项目 项目目录结构: E:. │ .gitignore │ fis-conf.js │ index.html │ package.json │ README.md │ ├─material │ ...

  4. 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新

    本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...

  5. 最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目

    最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目 最近一个来自重庆的客户找到走起君,客户的业务是做移动互联网支付,是微信支付收单渠道合作伙伴,数据库里存储的是支付流水和交易流水 ...

  6. Hangfire项目实践分享

    Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget jobs) 延迟任务执行(De ...

  7. Travis CI用来持续集成你的项目

    这里持续集成基于GitHub搭建的博客为项目 工具: zqz@ubuntu:~$ node --version v4.2.6 zqz@ubuntu:~$ git --version git versi ...

  8. 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新

    [原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...

  9. 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新

    上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...

随机推荐

  1. HTML5+javascript实现图片加载进度动画效果

    在网上找资料的时候,看到网上有图片加载进度的效果,手痒就自己也写了一个. 图片加载完后,隐藏loading效果. 想看加载效果,请ctrel+F5强制刷新或者清理缓存. 效果预览:   0%   // ...

  2. songtaste网站歌曲真实URL获取

    个人挺喜欢songtaste网站的歌曲的,下载方法也层出不穷,可是作为程序员如果不知其中原理的方法真是羞愧.首先简单点的方法当然有google插件这样的嗅探器了,不过这种工具的原理还不是很了解.今天先 ...

  3. c# double保留2位小数

    / (endIndex - startIndex); interval = Math.Round(interval , );

  4. Android UI 优化——使用HierarchyViewer工具

    先说些题外话,希望路过的各位支持,博主有幸成为2013年度博客之星的候选人,期待你的一票,谢谢. 投票猛击: http://vote.blog.csdn.net/blogstaritem/blogst ...

  5. Web services 安全 - HTTP Basic Authentication

    根据 RFC2617 的规定,HTTP 有两种标准的认证方式,即,BASIC 和 DIGEST.HTTP Basic Authentication 是指客户端必须使用用户名和密码在一个指定的域 (Re ...

  6. C#基础总结之八面向对象知识点总结-继承与多态-接口

    .方法深入讲解(返回值,形参与实参) 方法 public int getName(int i,int j) { int sum = i + j; return sum; } .利用泛型存储对象数据 . ...

  7. @media 手机与IPAD与PC

    @media screen and (min-width: 769px) { bindCard{height:28.5em} } @media screen and (min-device-width ...

  8. Asphyre 更名pxl 终于全面支持跨平台了.Delphi饭们 激动了吧.

    Asphyre We are happy to announce the official release of our latest framework Pascal eXtended Librar ...

  9. Mina、Netty、Twisted一起学(一):实现简单的TCP服务器

    MINA.Netty.Twisted为什么放在一起学习?首先,不妨先分别看一下它们官方网站对其的介绍: MINA: Apache MINA is a network application frame ...

  10. 企业云部署要如何选择IaaS PaaS和SaaS

    1为什么IaaS成了灵丹妙药   我非常惊讶,为什么很多传统企业已经接受了云计算,但接受的方式却往往不尽人意.对大多数企业来说,云计算的投入产出比相对较小,并且局限于基础设施层的环节. 就目前而言,大 ...