Matrix Equation Solvers using Kronecker-product Expansions
MatrixEquations.sylvckr — FunctionX = sylvckr(A,B,C)Solve the continuous Sylvester matrix equation
AX + XB = Cusing 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.
MatrixEquations.sylvdkr — FunctionX = sylvdkr(A,B,C)Solve the discrete Sylvester matrix equation
AXB + X = Cusing 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.
MatrixEquations.gsylvkr — FunctionX = gsylvkr(A,B,C,D,E)Solve the generalized Sylvester matrix equation
AXB + CXD = Eusing 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.
MatrixEquations.sylvsyskr — Functionsylvsyskr(A,B,C,D,E,F) -> (X,Y)Solve the Sylvester system of matrix equations
AX + YB = C
DX + YE = Fusing 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.
MatrixEquations.dsylvsyskr — Functiondsylvsyskr(A,B,C,D,E,F) -> (X,Y)Solve the dual Sylvester system of matrix equations
AX + DY = C
XB + YE = Fusing 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.
MatrixEquations.tlyapckr — FunctionX = 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 = 0using 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.
MatrixEquations.hlyapckr — FunctionX = 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 = 0using 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.
MatrixEquations.tsylvckr — FunctionX = 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 = Cusing 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.
MatrixEquations.hsylvckr — FunctionX = 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 = Cusing 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.
MatrixEquations.csylvckr — FunctionX = csylvckr(A,B,C)Solve the continuous C-Sylvester matrix equation
A*X + conj(X)*B = Cusing 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.
MatrixEquations.tsylvdkr — FunctionX = tsylvdkr(A,B,C)Solve the discrete T-Sylvester matrix equation
A*transpose(X)*B + X = Cusing 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.
MatrixEquations.hsylvdkr — FunctionX = hsylvdkr(A,B,C)Solve the discrete H-Sylvester matrix equation
A*adjoint(X)*B + X = Cusing 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.
MatrixEquations.csylvdkr — FunctionX = csylvdkr(A,B,C)Solve the discrete C-Sylvester matrix equation
A*conj(X)*B + X = Cusing 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.