Matrix Equation Solvers using Kronecker-product Expansions

MatrixEquations.sylvckrFunction
X = sylvckr(A,B,C)

Solve the continuous Sylvester matrix equation

            AX + XB = C

using the Kronecker product expansion of equations. A and B are square matrices, and A and -B must not have common eigenvalues. This function is not recommended for large order matrices.

source
MatrixEquations.sylvdkrFunction
X = sylvdkr(A,B,C)

Solve the discrete Sylvester matrix equation

            AXB + X = C

using the Kronecker product expansion of equations. A and B are square matrices, and A and -B must not have common reciprocal eigenvalues. This function is not recommended for large order matrices.

source
MatrixEquations.gsylvkrFunction
X = gsylvkr(A,B,C,D,E)

Solve the generalized Sylvester matrix equation

            AXB + CXD = E

using the Kronecker product expansion of equations. A, B, C and D are square matrices. The pencils A-λC and D+λB must be regular and must not have common eigenvalues. This function is not recommended for large order matrices.

source
MatrixEquations.sylvsyskrFunction
sylvsyskr(A,B,C,D,E,F) -> (X,Y)

Solve the Sylvester system of matrix equations

            AX + YB = C
            DX + YE = F

using the Kronecker product expansion of equations. (A,D), (B,E) are pairs of square matrices of the same size. The pencils A-λD and -B+λE must be regular and must not have common eigenvalues. This function is not recommended for large order matrices.

source
MatrixEquations.dsylvsyskrFunction
dsylvsyskr(A,B,C,D,E,F) -> (X,Y)

Solve the dual Sylvester system of matrix equations

   AX + DY = C
   XB + YE = F

using the Kronecker product expansion of equations. (A,D), (B,E) are pairs of square matrices of the same size. The pencils A-λD and -B+λE must be regular and must not have common eigenvalues. This function is not recommended for large order matrices.

source
MatrixEquations.tlyapckrFunction
X = tlyapckr(A,C, isig = 1; atol::Real=0, rtol::Real=atol>0 ? 0 : N*ϵ)

Compute for isig = ±1 a solution of the the continuous T-Lyapunov matrix equation

            A*X + isig*transpose(X)*transpose(A) + C = 0

using the Kronecker product expansion of equations. A and C are m×n and m×m matrices, respectively, and X is an n×m matrix. The matrix C must be symmetric if isig = 1 and skew-symmetric if isig = -1. atol and rtol are the absolute and relative tolerances, respectively, used for rank computation. The default relative tolerance is N*ϵ, where N = 4*min(m,n)^2 and ϵ is the machine precision of the element type of A. This function is not recommended for large order matrices.

source
MatrixEquations.hlyapckrFunction
X = hlyapckr(A,C, isig = 1; atol::Real=0, rtol::Real=atol>0 ? 0 : N*ϵ)

Compute for isig = ±1 a solution of the continuous H-Lyapunov matrix equation

            A*X + isig*adjoint(X)*adjoint(A) + C = 0

using the Kronecker product expansion of equations. A and C are m×n and m×m matrices, respectively, and X is an n×m matrix. The matrix C must be hermitian if isig = 1 and skew-hermitian if isig = -1. atol and rtol are the absolute and relative tolerances, respectively, used for rank computation. The default relative tolerance is N*ϵ, where N = 4*min(m,n)^2 and ϵ is the machine precision of the element type of A. This function is not recommended for large order matrices.

source
MatrixEquations.tsylvckrFunction
X = tsylvckr(A,B,C; atol::Real=0, rtol::Real=atol>0 ? 0 : N*ϵ)

Compute a solution of the continuous T-Sylvester matrix equation

            A*X + transpose(X)*B = C

using the Kronecker product expansion of equations. A, B and C are m×n, n×m and m×m matrices, respectively, and X is an n×m matrix. atol and rtol are the absolute and relative tolerances, respectively, used for rank computation. The default relative tolerance is N*ϵ, where N = 4*min(m,n)^2 and ϵ is the machine precision of the element type of A. This function is not recommended for large order matrices.

source
MatrixEquations.hsylvckrFunction
X = hsylvckr(A,B,C; atol::Real=0, rtol::Real=atol>0 ? 0 : N*ϵ)

Compute a solution of the continuous H-Sylvester matrix equation

            A*X + adjoint(X)*B = C

using the Kronecker product expansion of equations. A, B and C are m×n, n×m and m×m matrices, respectively, and X is an n×m matrix. atol and rtol are the absolute and relative tolerances, respectively, used for rank computation. The default relative tolerance is N*ϵ, where N = 4*min(m,n)^2 and ϵ is the machine precision of the element type of A. This function is not recommended for large order matrices.

source
MatrixEquations.csylvckrFunction
X = csylvckr(A,B,C)

Solve the continuous C-Sylvester matrix equation

            A*X + conj(X)*B = C

using the Kronecker product expansion of equations. A, B and C are m×m, n×n and m×n matrices, respectively, and X is an m×n matrix. This function is not recommended for large order matrices.

source
MatrixEquations.tsylvdkrFunction
X = tsylvdkr(A,B,C)

Solve the discrete T-Sylvester matrix equation

            A*transpose(X)*B + X = C

using the Kronecker product expansion of equations. A, B and C are m×n matrices and X is an m×n matrix. This function is not recommended for large order matrices.

source
MatrixEquations.hsylvdkrFunction
X = hsylvdkr(A,B,C)

Solve the discrete H-Sylvester matrix equation

            A*adjoint(X)*B + X = C

using the Kronecker product expansion of equations. A, B and C are m×n matrices and X is an m×n matrix. This function is not recommended for large order matrices.

source
MatrixEquations.csylvdkrFunction
X = csylvdkr(A,B,C)

Solve the discrete C-Sylvester matrix equation

            A*conj(X)*B + X = C

using the Kronecker product expansion of equations. A, B and C are m×m, n×n and m×n matrices, respectively, and X is an m×n matrix. This function is not recommended for large order matrices.

source