HALCON Reference Manual 10.0.2
Table of Contents / Matrix / Eigenvalues ClassesClassesClasses | | | Operators

generalized_eigenvalues_symmetric_matrixgeneralized_eigenvalues_symmetric_matrixgeneralized_eigenvalues_symmetric_matrixGeneralizedEigenvaluesSymmetricMatrixGeneralizedEigenvaluesSymmetricMatrix (Operator)

Name

generalized_eigenvalues_symmetric_matrixgeneralized_eigenvalues_symmetric_matrixgeneralized_eigenvalues_symmetric_matrixGeneralizedEigenvaluesSymmetricMatrixGeneralizedEigenvaluesSymmetricMatrix — Compute the generalized eigenvalues and optinally generalized eigenvectors of symmetric input matrices.

Signature

generalized_eigenvalues_symmetric_matrix( : : MatrixAID, MatrixBID, ComputeEigenvectors : EigenvaluesID, EigenvectorsID)

Herror generalized_eigenvalues_symmetric_matrix(const Hlong MatrixAID, const Hlong MatrixBID, const char* ComputeEigenvectors, Hlong* EigenvaluesID, Hlong* EigenvectorsID)

Herror T_generalized_eigenvalues_symmetric_matrix(const Htuple MatrixAID, const Htuple MatrixBID, const Htuple ComputeEigenvectors, Htuple* EigenvaluesID, Htuple* EigenvectorsID)

Herror generalized_eigenvalues_symmetric_matrix(const HTuple& MatrixAID, const HTuple& MatrixBID, const HTuple& ComputeEigenvectors, Hlong* EigenvaluesID, Hlong* EigenvectorsID)

HMatrix HMatrix::GeneralizedEigenvaluesSymmetricMatrix(const HMatrix& MatrixBID, const HTuple& ComputeEigenvectors, HMatrix* EigenvectorsID) const

void HOperatorSetX.GeneralizedEigenvaluesSymmetricMatrix(
[in] VARIANT MatrixAID, [in] VARIANT MatrixBID, [in] VARIANT ComputeEigenvectors, [out] VARIANT* EigenvaluesID, [out] VARIANT* EigenvectorsID)

IHMatrixX* HMatrixX.GeneralizedEigenvaluesSymmetricMatrix(
[in] IHMatrixX* MatrixBID, [in] BSTR ComputeEigenvectors, [out] IHMatrixX*EigenvectorsID)

static void HOperatorSet.GeneralizedEigenvaluesSymmetricMatrix(HTuple matrixAID, HTuple matrixBID, HTuple computeEigenvectors, out HTuple eigenvaluesID, out HTuple eigenvectorsID)

HMatrix HMatrix.GeneralizedEigenvaluesSymmetricMatrix(HMatrix matrixBID, string computeEigenvectors, out HMatrix eigenvectorsID)

Description

The operator generalized_eigenvalues_symmetric_matrixgeneralized_eigenvalues_symmetric_matrixgeneralized_eigenvalues_symmetric_matrixGeneralizedEigenvaluesSymmetricMatrixGeneralizedEigenvaluesSymmetricMatrix computes all generalized eigenvalues and, optionally, generalized eigenvectors of the symmetric matrix MatrixAMatrixAMatrixAMatrixAmatrixA and the symmetric positive definite matrix MatrixBMatrixBMatrixBMatrixBmatrixB. Both matrices must have identical dimensions. The matrices are defined by the matrix handles MatrixAIDMatrixAIDMatrixAIDMatrixAIDmatrixAID and MatrixBIDMatrixBIDMatrixBIDMatrixBIDmatrixBID. On output, a new matrix EigenvaluesEigenvaluesEigenvaluesEigenvalueseigenvalues with the generalized eigenvalues in ascending order and, optionally, a new matrix EigenvectorsEigenvectorsEigenvectorsEigenvectorseigenvectors with the generalized eigenvectors is created. Each jth column of the matrix EigenvectorsEigenvectorsEigenvectorsEigenvectorseigenvectors contains the related eigenvector to the jth eigenvalue. The operator returns the matrix handles EigenvaluesIDEigenvaluesIDEigenvaluesIDEigenvaluesIDeigenvaluesID and EigenvectorsIDEigenvectorsIDEigenvectorsIDEigenvectorsIDeigenvectorsID of the matrices EigenvaluesEigenvaluesEigenvaluesEigenvalueseigenvalues and EigenvectorsEigenvectorsEigenvectorsEigenvectorseigenvectors. Access to the elements of the matrices is possible, e.g., with the operator get_full_matrixget_full_matrixget_full_matrixGetFullMatrixGetFullMatrix or get_sub_matrixget_sub_matrixget_sub_matrixGetSubMatrixGetSubMatrix.

The computation of generalized eigenvectors can be selected via ComputeEigenvectorsComputeEigenvectorsComputeEigenvectorsComputeEigenvectorscomputeEigenvectors = 'true'"true""true""true""true". The formula for the calculation of the result is

  MatrixA * x  = lambda  * MatrixB * x  ,
             j         j              j

  with lambda  representing the jth eigenvalue and x  represents
             j                                      j

  the corresponding eigenvector.

If ComputeEigenvectorsComputeEigenvectorsComputeEigenvectorsComputeEigenvectorscomputeEigenvectors = 'false'"false""false""false""false", no generalized eigenvectors are computed. For this, the matrix handle EigenvectorsIDEigenvectorsIDEigenvectorsIDEigenvectorsIDeigenvectorsID is invalid.

Example:


            /  4.0 -3.0  2.0  \                /   6.0   5.0   3.0  \
  MatrixA = | -3.0  1.0  4.0  |      MatrixB = |   5.0   7.0   3.0  |
            \  2.0  4.0  8.0  /                \   3.0   3.0   4.0  /

  ComputeEigenvectors = 'true'

                     / -0.4463 \
  ->   Eigenvalues = |  1.8747 |
                     \  4.5472 /

                      / -0.1579   0.1851  -0.6358  \
       Eigenvectors = | -0.3377  -0.2568   0.4311  |
                      \  0.2382   0.5065   0.3185  /

Attention

The upper triangular parts of the input matrices MatrixAMatrixAMatrixAMatrixAmatrixA and MatrixBMatrixBMatrixBMatrixBmatrixB must contain the relevant information of the matrices. The strictly lower triangular parts of the matrices are not referenced. If the referenced parts of the input matrices MatrixAMatrixAMatrixAMatrixAmatrixA or MatrixBMatrixBMatrixBMatrixBmatrixB are not of the specified type, an exception is raised.

Parallelization

Parameters

MatrixAIDMatrixAIDMatrixAIDMatrixAIDmatrixAID (input_control)  matrix HMatrix, HTupleHMatrix, HTupleHMatrixX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong)

Matrix handle of the symmetric input matrix A.

MatrixBIDMatrixBIDMatrixBIDMatrixBIDmatrixBID (input_control)  matrix HMatrix, HTupleHMatrix, HTupleHMatrixX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong)

Matrix handle of the symmetric positive definite input matrix B.

ComputeEigenvectorsComputeEigenvectorsComputeEigenvectorsComputeEigenvectorscomputeEigenvectors (input_control)  string HTupleHTupleVARIANTHtuple (string) (string) (char*) (BSTR) (char*)

Computation of the eigenvectors.

Default value: 'false' "false" "false" "false" "false"

List of values: 'true'"true""true""true""true", 'false'"false""false""false""false"

EigenvaluesIDEigenvaluesIDEigenvaluesIDEigenvaluesIDeigenvaluesID (output_control)  matrix HMatrix, HTupleHMatrix, HTupleHMatrixX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong)

Matrix handle with the eigenvalues.

EigenvectorsIDEigenvectorsIDEigenvectorsIDEigenvectorsIDeigenvectorsID (output_control)  matrix HMatrix, HTupleHMatrix, HTupleHMatrixX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong)

Matrix handle with the eigenvectors.

Result

If the parameters are valid, the operator generalized_eigenvalues_symmetric_matrixgeneralized_eigenvalues_symmetric_matrixgeneralized_eigenvalues_symmetric_matrixGeneralizedEigenvaluesSymmetricMatrixGeneralizedEigenvaluesSymmetricMatrix returns the value 2 (H_MSG_TRUE). If necessary, an exception is raised.

Possible Predecessors

create_matrixcreate_matrixcreate_matrixCreateMatrixCreateMatrix

Possible Successors

get_full_matrixget_full_matrixget_full_matrixGetFullMatrixGetFullMatrix, get_value_matrixget_value_matrixget_value_matrixGetValueMatrixGetValueMatrix

Alternatives

generalized_eigenvalues_general_matrixgeneralized_eigenvalues_general_matrixgeneralized_eigenvalues_general_matrixGeneralizedEigenvaluesGeneralMatrixGeneralizedEigenvaluesGeneralMatrix

See also

eigenvalues_symmetric_matrixeigenvalues_symmetric_matrixeigenvalues_symmetric_matrixEigenvaluesSymmetricMatrixEigenvaluesSymmetricMatrix, eigenvalues_general_matrixeigenvalues_general_matrixeigenvalues_general_matrixEigenvaluesGeneralMatrixEigenvaluesGeneralMatrix

References

David Poole: “Linear Algebra: A Modern Introduction”; Thomson; Belmont; 2006.
Gene H. Golub, Charles F. van Loan: “Matrix Computations”; The Johns Hopkins University Press; Baltimore and London; 1996.

Module

Foundation


Table of Contents / Matrix / Eigenvalues ClassesClassesClasses | | | Operators
HALCON Reference Manual 10.0.2 Copyright © 1996-2011 MVTec Software GmbH