是一个开源的数值项目,一种NET框架的高性能数学库,它简化了各种数学算法的使用,优化到了C和FORTRAN的速度。现在它提供了一个支持“任何CPU”的NuGet包。它的独立版本ILView,已经宣布支持REPL的3D可视化工具,可以运行在.NET/Windows和Mono/Linux环境里。支持线性方程计算,数值计算,机器学习。
在Visual Studio中可以通过NuGet安装:
PM> Install-Package ILNumerics
下面我们演示如何解三阶线性方程:
对应的Demo代码是这样的:
///
/// Sovle the 3x3 matrix.
///
///http://wintersun.cnblogs.com/
///
///
///
private static void Sovle3X3Matrix()
{
// construct 3 x 3 matrix, upper triagonal
ILArrayA = 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:
ILArrayB = new double[] { 2, 1, 0 };
ILArrayx = ILMath.linsolve(A, B);
// lets check if the result really solves our equation
ILArraybTest = 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());
}
输出的代码是这样的:
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对象我们做验算。
更多可以参考:
还有《》 包括:
■ 数值算法和软件开发
■ ILNumerics的优势 ■ 案例研究 ■ 结论 ■ 附录1:ILNumerics语法 ■ 附录2:洞察 - ILNumerics内存管理
希望对您程序开发有帮助。
作者: 出处: 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 该文章也同时发布在我的独立博客中-。