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. 在线PDF编辑网站http://www.pdfescape.com

    网站地址:http://www.pdfescape.com 先转载一个简单介绍的文章 如果你以前很少阅读PDF文档,电脑中也没有PDF阅读器:adobe reader,foxit reader之类的软 ...

  2. 让文档和Demo生成更加简单和强大 - SmartDoc 0.1.1 说明

    新特性 smartDoc 0.1.1版正式发布,其中加入了更多方便生成文档的功能,主要特性如下: * 加入@demo配置项,看可以动态抓取html和js的内容作为@example,同时支持扩展@dem ...

  3. JavaScript的深拷贝的实现

    JavaScript的数据类型 简单数据类型 string number boolean function null undefined 复杂数据类型 String Number Boolean Fu ...

  4. Web Fram 2 for IIS7.X(Microsoft Web Farm Framework)

    Microsoft Web Farm Framework (WFF) 2.0 是微软开发的.基于IIS 7.x的小插件,能够帮助我们轻松实现Web网站的高性能.高可用性,用来在Web服务器群上提供和管 ...

  5. Hadoop入门进阶课程7--Pig介绍、安装与应用案例

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  ...

  6. Appium移动自动化测试(四)--one demo

    继续更新. -------------------------------------------- 第四节  安装Appium Client Appium Client是对webdriver原生ap ...

  7. UliPad 初体验----python 开发利器

    学习python 有段时间,最近博客更新比较慢了,空闲时间在零零碎碎的学python ,难成文,也就没整理成博客. 学习python 最苦恼的就是没有趁手IDE ,之前学java 时 Eclipse  ...

  8. css居中学习笔记

    css居中学习笔记 一.水平居中 以下面的代码为例: <body> <div class="parent"> <div class="chi ...

  9. [阅读]个人阅读作业week7

    People-oriented in Agile People-oriented in Agile One Leader Prepare Good ideas from users People-or ...

  10. JavaScript 按值传递 & 按引用传递

    (1)值的比较--引用的比较 首先,原始值的比较是值的比较:只有在它们值相等的时候它们才相等 比如简单的 var a1 = 10; var a2 = 10; console.log(a1 === a2 ...