NMath User's Guide

TOC | Previous | Next | Index

7.4 Static Methods (.NET, C#, CSharp, VB, Visual Basic, F#)

As a convenience, NMath provides static methods on class NMathFunctions for solving linear systems, and for computing determinants, inverses, and condition numbers. All methods accept a matrix.

The following static methods are provided:

NMathFunctions.Solve() solves linear systems for single or multiple right-hand sides.

NMathFunctions.Inverse() computes the inverse of a given matrix.

NMathFunctions.Determinant() computes the determinant of a given matrix.

NMathFunctions.EstimateConditionNumber() estimates the condition number of a given matrix in the specified norm type.

NMathFunctions.ConditionNumber() directly computes the condition number of a given matrix in the specified norm type.

For instance:

Code Example – C# LU factorization

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 );

Code Example – VB LU factorization

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)

Note that an an LU factorization instance is created with each call to NMathFunctions.Solve(). If you are calling Solve() repeatedly (inside a loop, for example), and the coefficient matrix is not changing between calls, this is more efficient:

Code Example – C# LU factorization

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

Code Example – VB LU factorization

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


Top

Top