EigenVBack

Advanced Analysis Library Only

AnalysisLibErrType EigenVBack (void *inputEigenvectors, int numberOfEigenvectors, int side, int method, int indexLow, int indexHigh, double scale[], void *outputEigenvectors);

Purpose

Transforms the eigenvectors of a balanced matrix to those of the original matrix. If you want more accurate eigenvectors, complete the following steps:

  1. Balance the original matrix using MatrixBalance.
  2. Call GenEigenValueVector to get the eigenvectors of the balanced matrix.
  3. Call EigenVBack to back-transform the eigenvectors of the balanced matrix to the eigenvectors of the original matrix. Call CxEigenVBack if the eigenvectors are complex.

Parameters

Input
Name Type Description
inputEigenvectors numeric array The eigenvectors of the balanced matrix.
numberOfEigenvectors integer The order of inputEigenvectors.
side integer Specifies whether inputEigenvectors contains right side eigenvectors or left side eigenvectors. side must be one of the following values:
  • RIGHT_EIGEN (0) : Right side eigenvectors
  • LEFT_EIGEN (1): Left side eigenvectors
method integer Specifies how the original matrix is balanced. Pass the same value for method that was passed to MatrixBalance when the original matrix was balanced.
indexLow integer The permutation information from MatrixBalance.
indexHigh integer The permutation information from MatrixBalance.
scale double-precision array The scale information from MatrixBalance.
Output
Name Type Description
outputEigenvectors numeric array The eigenvectors of the original matrix. If you call EigenVBack with outputEigenvectors = NULL or outputEigenvectors = inputEigenvectors, the back-transformed eigenvectors overwrite inputEigenvectors.

Return Value

Name Type Description
status AnalysisLibErrType A value that specifies the type of error that occurred. Refer to analysis.h for definitions of these constants.