.NET数学库NMath使用教程——静态方法

为方便起见,NMath在类NMathFunctions上提供了静态方法,用于求解线性系统以及计算行列式,逆数和条件数。所有方法都接受矩阵。

NMath是一个适用于所有.NET语言,如C#、Visual Basic、F#和.NET的数学库,它包含了.NET平台上的面向对象数字计算的基础类。我们将以连载的形式向大家介绍NMath的实用教程。

最新版NMath


    为方便起见,NMath在类NMathFunctions上提供了静态方法,用于求解线性系统以及计算行列式,逆数和条件数。所有方法都接受矩阵。

提供以下静态方法:

  • NMathFunctions.Solve()解决单个或多个右侧的线性系统。

  • NMathFunctions.Inverse()计算给定矩阵的逆数。

  • NMathFunctions.Determinant()计算给定矩阵的行列式。

  • NMathFunctions.EstimateConditionNumber()估计指定范数类型中给定矩阵的条件编 。

  • NMathFunctions.ConditionNumber()直接计算指定范数类型中给定矩阵的条件编 。

例如:

代码示例– C#LU分解

var A = new DoubleMatrix( "3x3 [2 1 1  4 1 0 -2 2 1]" );var b = new DoubleVector( "[8 11 3]" );DoubleVector x = NMathFunctions.Solve( A, b );     var B = new DoubleMatrix( "3x2[8 3  11 11  3 8]" );DoubleMatrix X = NMathFunctions.Solve( A, B );DoubleMatrix AInv = NMathFunctions.Inverse( A );double ADet = NMathFunctions.Determinant( A );double ACond =   NMathFunctions.ConditionNumber( A, NormType.InfinityNorm );

代码示例– VB LU分解

Dim A As New DoubleMatrix("3x3 [2 1 1  4 1 0 -2 2 1]")Dim B As New DoubleVector("[8 11 3]")Dim X As DoubleVector = NMathFunctions.Solve(A, B)Dim B As New DoubleMatrix("3x2[8 3  11 11  3 8]")Dim X As DoubleMatrix = NMathFunctions.Solve(A, B)Dim AInv As DoubleMatrix = NMathFunctions.Inverse(A)Dim ADet As Double = NMathFunctions.Determinant(A)Dim ACond As Double =  NMathFunctions.ConditionNumber(A, NormType.InfinityNorm)

    请注意,每次调用NMathFunctions.Solve()都会创建一个LU分解实例。如果您反复(例如在循环内)调用Solve(),并且两次调用之间的系数矩阵没有变化,则效率更高:

代码示例– C#LU分解

var fact = new DoubleLUFact( A, false );...fact.Solve( B );

代码示例– VB LU分解

Dim Fact As New DoubleLUFact(A, False)...Fact.Solve(B)

上一章:使用LU分解

下一章:最小二乘

==========================================

如果想要购买正版授权NMath的朋友,可以联系在线客服

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年11月6日
下一篇 2019年11月6日

相关推荐

发表回复

登录后才能评论