VB Eig Decomp Example

← 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
Top