Matrix Equation Solvers using Kronecker-product Expansions
MatrixEquations.sylvckr
— FunctionX = 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.
MatrixEquations.sylvdkr
— FunctionX = 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.
MatrixEquations.gsylvkr
— FunctionX = 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.
MatrixEquations.sylvsyskr
— Functionsylvsyskr(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.
MatrixEquations.dsylvsyskr
— Functiondsylvsyskr(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.
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 = 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.
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 = 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.
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 = 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.
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 = 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.
MatrixEquations.csylvckr
— FunctionX = 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.
MatrixEquations.tsylvdkr
— FunctionX = 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.
MatrixEquations.hsylvdkr
— FunctionX = 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.
MatrixEquations.csylvdkr
— FunctionX = 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.