LinearAlgebra
SylvesterSolve
solve the Sylvester matrix equation
Calling Sequence
Parameters
Options
Description
Examples
SylvesterSolve( A, B, C )
SylvesterSolve( A, B, C, isgn )
SylvesterSolve( A, B, C, isgn, pert, outopts, tranA, schurA, tranB, schurB )
A
-
Matrix ; first input matrix, of dimension m by m
B
Matrix ; second input matrix, of dimension n by n
C
Matrix ; third input matrix, of dimension m by n
isgn
(optional) {-1,1} ; indicate the sign of the term X . B (second term)
pert
(optional) perturb=truefalse; allow use of perturbed values
outopts
(optional); constructor options for Matrix output
tranA
(optional) `transpose[A]`={truefalse,identical(transpose,hermitiantranspose)} ; specify operation on A prior to solving
schurA
(optional) `Schur[A]`=truefalse ; specify whether A is in Schur form
tranB
(optional) `transpose[B]`={truefalse,identical(transpose,hermitiantranspose)} ; specify operation on B prior to solving
schurB
(optional) `Schur[B]`=truefalse ; specify whether B is in Schur form
The isgn argument designates the sign of the second term of the left hand side of the equation. The default value of this argument is 1.
The constructor options provide additional information (readonly, shape, storage, order, datatype, and attributes) to the Matrix constructor that builds the result. These options may also be provided in the form outputoptions=[...], where [...] represents a Maple list. If a constructor option is provided in both the calling sequence directly and in an outputoptions option, the latter takes precedence (regardless of the order).
The perturb argument designates whether to allow use of perturbed values in the case that eigenvalues are detected as being too close to guarantee convergence to a unique solution. The default value for this argument is true. When this option is supplied as false an error is thrown in the case that close eigenvalues are detected.
The tranA argument specifies whether the first Matrix argument A should be transposed prior to solving. The default value of this argument is false.
The schurA argument specifies whether to omit reduction of the first Matrix argument to Schur form. This avoids unnecessary computation in the case that the first Matrix argument is already in Schur form. The default value of this argument is false.
The tranB argument specifies whether the second Matrix argument B should be transposed prior to solving. The default value of this argument is false.
The schurB argument specifies whether to omit reduction of the second Matrix argument to Schur form. This avoids unnecessary computation in the case that the second Matrix argument is already in Schur form. The default value of this argument is false.
The SylvesterSolve command computes the solution to the Sylvester matrix equationA·X+isgn⁢X·B=scale⁢C
The returned solution is an expression sequence consisting of the Matrix X followed by the scalar scale.
This routine operates in the floating-point domain. Hence, the entries in the Matrix arguments must necessarily be of type complex(numeric).
with⁡LinearAlgebra:
A≔2,3,7|−1,−1,5|2,1,7:
C≔IdentityMatrix⁡3:
SylvesterSolve⁡A,A,C
−0.1764705882352940.2500000000000000.0147058823529412−0.205882352941176−1.62981927784384×10−170.05882352941176470.323529411764706−0.2500000000000000.0147058823529412,1.
SylvesterSolve⁡A,A,C,`transpose[A]`=true
−1.233124397299900.5122950819672120.2041947926711670.512295081967212−0.9508196721311470.01229508196721310.2041947926711670.01229508196721300.0113307618129219,1.
B≔SchurForm⁡A
B≔9.52884381170059−6.26866718463655−1.352529751625940.−0.7644219058502992.984533166272970.−0.999745312853160−0.764421905850299
SylvesterSolve⁡A,B,C
0.0894092265947832−0.05587742534520160.218774391630871−0.0280030511867528−0.310061447256639−0.175968658837354−0.02939402996147810.269087416410547−0.0792924182346908,1.
SylvesterSolve⁡A,B,C,`Schur[B]`=true
See Also
LinearAlgebra[LyapunovSolve]
LinearAlgebra[SchurForm]
Download Help Document