Class Q_Sylvest

java.lang.Object
jline.lib.qmam.Q_Sylvest

public final class Q_Sylvest extends Object
  • Method Details

    • qSylvest

      public static Matrix qSylvest(ComplexMatrix U, ComplexMatrix T, Matrix B)
      Solves the equation X*kron(A,I)+B*X=-I, where kron(A,I)=U*T*U' is given by its complex Schur decomposition (U unitary, T upper triangular).

      Mirrors MATLAB Q_Sylvest.m: B is reduced to upper Hessenberg form NBAR=V'*B*V, the transformed equation Y*T+NBAR*Y=F with F=-V'*U is solved column by column exploiting the triangularity of T, and the solution is mapped back as X=real(V*Y*U').

      Parameters:
      U - unitary factor of the complex Schur decomposition of kron(A,I)
      T - upper triangular factor of the complex Schur decomposition of kron(A,I)
      B - the coefficient matrix multiplying X from the left
      Returns:
      the real solution X
    • schurDecomposition

      public static Map<String,ComplexMatrix> schurDecomposition(Matrix A)
      Computes the complex Schur decomposition of A, equivalent to MATLAB's [U,T] = schur(A,'complex') with A = U*T*U'.
      Parameters:
      A - the matrix to decompose
      Returns:
      a map with keys "U" (unitary) and "T" (upper triangular)
    • kronEye

      public static ComplexMatrix kronEye(ComplexMatrix A, int m)
      Computes kron(A, eye(m)) for a complex matrix A.
      Parameters:
      A - the complex matrix
      m - the order of the identity factor
      Returns:
      the Kronecker product kron(A, eye(m))