← All NMath Code Examples
Imports System
Imports CenterSpace.NMath.Core
Namespace CenterSpace.NMath.Examples.VisualBasic
A .NET example in Visual Basic demonstrating the features of the eigenvalue decomposition classes.
Module EigDecompExample
Sub Main()
A general m x n system with random entries.
Dim RNG As New RandGenUniform(-1, 1)
RNG.Reset(&H75)
Dim Rows As Integer = 4
Dim Cols As Integer = 4
Dim A As New FloatMatrix(Rows, Cols, RNG)
Construct an eigenvalue decomposition of A.
Dim Decomp As New FloatEigDecomp(A)
Console.WriteLine()
Is it good?
Console.Write("Good? ")
Console.WriteLine(Decomp.IsGood)
Look at the eigenvalues
Console.WriteLine()
Console.Write("Eigenvalues = ")
Console.WriteLine(Decomp.EigenValues)
Look at the left eigenvectors
Console.WriteLine()
Console.WriteLine("Left eigenvectors = ")
Console.WriteLine(Decomp.LeftEigenVectors.ToTabDelimited("G3"))
Look at the right eigenvectors
Console.WriteLine("Right eigenvectors = ")
Console.WriteLine(Decomp.RightEigenVectors.ToTabDelimited("G3"))
The class FloatEigDecompServer allows more control over the computation.
Suppose that you are only interested in the singular values, not the
vectors. You can configure a DoubleComplexSVDecompServer object to
compute just the singular values.
Dim EigServer As New FloatEigDecompServer()
EigServer.ComputeLeftVectors = False
EigServer.ComputeRightVectors = False
EigServer.Balance = BalanceOption.Permute
Decomp = EigServer.Factor(A)
Console.Write("Number of left vectors computed: ")
Console.WriteLine(Decomp.NumberOfLeftEigenVectors) 0
Console.WriteLine()
Console.Write("Number of right vectors computed: ")
Console.WriteLine(Decomp.NumberOfRightEigenVectors) 0
Is it good?
Console.WriteLine()
Console.Write("Good? ")
Console.WriteLine(Decomp.IsGood)
Look at the eigenvalues
Console.WriteLine()
Console.Write("Eigenvalues = ")
Console.WriteLine(Decomp.EigenValues)
Console.WriteLine()
Console.WriteLine("Press Enter Key")
Console.Read()
End Sub
End Module
End Namespace
← All NMath Code Examples