ILNumerics项目的应用之线性方程
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项目的应用之线性方程的更多相关文章
- Visual Studio图片注释image-comments扩展
有一个开源的Visual Studio小工具image-comments,它用于在源代码注释中插入图片,您可以到这儿下载.目前支持Visual Studio 2010/2012 Sta ...
- C++线性方程求解
介绍 程序SolveLinearEquations解决联立方程.该方案需要一个文本文件,其中包含输入和输出方程解决.这个项目是几年前我写在C#中http://www.codeproject.com/A ...
- Fis3前端工程化之项目实战
Fis3项目 项目目录结构: E:. │ .gitignore │ fis-conf.js │ index.html │ package.json │ README.md │ ├─material │ ...
- 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新
本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...
- 最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目
最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目 最近一个来自重庆的客户找到走起君,客户的业务是做移动互联网支付,是微信支付收单渠道合作伙伴,数据库里存储的是支付流水和交易流水 ...
- Hangfire项目实践分享
Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget jobs) 延迟任务执行(De ...
- Travis CI用来持续集成你的项目
这里持续集成基于GitHub搭建的博客为项目 工具: zqz@ubuntu:~$ node --version v4.2.6 zqz@ubuntu:~$ git --version git versi ...
- 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新
[原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...
- 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新
上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...
随机推荐
- HTML5+javascript实现图片加载进度动画效果
在网上找资料的时候,看到网上有图片加载进度的效果,手痒就自己也写了一个. 图片加载完后,隐藏loading效果. 想看加载效果,请ctrel+F5强制刷新或者清理缓存. 效果预览: 0% // ...
- songtaste网站歌曲真实URL获取
个人挺喜欢songtaste网站的歌曲的,下载方法也层出不穷,可是作为程序员如果不知其中原理的方法真是羞愧.首先简单点的方法当然有google插件这样的嗅探器了,不过这种工具的原理还不是很了解.今天先 ...
- c# double保留2位小数
/ (endIndex - startIndex); interval = Math.Round(interval , );
- Android UI 优化——使用HierarchyViewer工具
先说些题外话,希望路过的各位支持,博主有幸成为2013年度博客之星的候选人,期待你的一票,谢谢. 投票猛击: http://vote.blog.csdn.net/blogstaritem/blogst ...
- Web services 安全 - HTTP Basic Authentication
根据 RFC2617 的规定,HTTP 有两种标准的认证方式,即,BASIC 和 DIGEST.HTTP Basic Authentication 是指客户端必须使用用户名和密码在一个指定的域 (Re ...
- C#基础总结之八面向对象知识点总结-继承与多态-接口
.方法深入讲解(返回值,形参与实参) 方法 public int getName(int i,int j) { int sum = i + j; return sum; } .利用泛型存储对象数据 . ...
- @media 手机与IPAD与PC
@media screen and (min-width: 769px) { bindCard{height:28.5em} } @media screen and (min-device-width ...
- Asphyre 更名pxl 终于全面支持跨平台了.Delphi饭们 激动了吧.
Asphyre We are happy to announce the official release of our latest framework Pascal eXtended Librar ...
- Mina、Netty、Twisted一起学(一):实现简单的TCP服务器
MINA.Netty.Twisted为什么放在一起学习?首先,不妨先分别看一下它们官方网站对其的介绍: MINA: Apache MINA is a network application frame ...
- 企业云部署要如何选择IaaS PaaS和SaaS
1为什么IaaS成了灵丹妙药 我非常惊讶,为什么很多传统企业已经接受了云计算,但接受的方式却往往不尽人意.对大多数企业来说,云计算的投入产出比相对较小,并且局限于基础设施层的环节. 就目前而言,大 ...