quatica.decomp.eigen
quatica.decomp.eigen
Quaternion Matrix Eigendecomposition Module
This module provides eigenvalue decomposition algorithms for HERMITIAN quaternion matrices.
⚠️ IMPORTANT: This implementation is ONLY for Hermitian quaternion matrices. For non-Hermitian matrices, consider using the adjoint matrix approach.
Main functions: - quaternion_eigendecomposition: Eigendecomposition for Hermitian quaternion matrices - quaternion_eigenvalues: Extract eigenvalues only (Hermitian matrices only) - quaternion_eigenvectors: Extract eigenvectors only (Hermitian matrices only)
Algorithm: Tridiagonalization + Standard Eigendecomposition - Tridiagonalize Hermitian matrix A: P * A * P^H = B - Compute eigendecomposition of tridiagonal matrix B using numpy.linalg.eig - Transform eigenvectors back: V = P^H * V_B
Limitations: - Only works for Hermitian quaternion matrices - For non-Hermitian matrices, use adjoint matrix approach - For single quaternions, use adjoint matrix approach
References: - MATLAB QTFM (Quaternion Toolbox for MATLAB) implementation: http://qtfm.sourceforge.net/ by Stephen J. Sangwine & Nicolas Le Bihan
quaternion_eigendecomposition(A_quat, verbose=False)
Compute eigendecomposition of Hermitian quaternion matrix.
Parameters:
A_quat : numpy.ndarray with dtype=quaternion Input quaternion matrix (must be square and Hermitian) verbose : bool Whether to print convergence information
Returns:
tuple : (eigenvalues, eigenvectors) eigenvalues : complex array of eigenvalues eigenvectors : quaternion matrix of eigenvectors
quaternion_eigenvalues(A_quat, verbose=False)
Compute only eigenvalues of Hermitian quaternion matrix.
Parameters:
A_quat : numpy.ndarray with dtype=quaternion Input quaternion matrix (must be square and Hermitian) verbose : bool Whether to print convergence information
Returns:
eigenvalues : complex array Eigenvalues of the matrix
quaternion_eigenvectors(A_quat, verbose=False)
Compute only eigenvectors of Hermitian quaternion matrix.
Parameters:
A_quat : numpy.ndarray with dtype=quaternion Input quaternion matrix (must be square and Hermitian) verbose : bool Whether to print convergence information
Returns:
eigenvectors : quaternion matrix Matrix of eigenvectors (columns are eigenvectors)
verify_eigendecomposition(A_quat, eigenvalues, eigenvectors, verbose=False)
Verify eigendecomposition by checking A * v = λ * v for each eigenpair.
Parameters:
A_quat : quaternion matrix eigenvalues : complex array eigenvectors : quaternion matrix (columns are eigenvectors) verbose : bool
Returns:
dict : verification results