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

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

PM> Install-Package ILNumerics

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

      linerEquation1

       对应的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());
        } 

         输出的代码是这样的:

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

posted on 2013-10-27 11:20  PetterLiu  阅读(2839)  评论(0编辑  收藏  举报