ILNumerics项目的应用之线性方程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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>/</remarks>
/// <seealso cref="/apidoc/Index.html"/>
/// <seealso cref="/GetStarted.html"/>
/// <seealso cref="/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
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内存管理希望对您程序开发有帮助。