 LinearAlgebra - Maple Programming Help

Home : Support : Online Help : Mathematics : Linear Algebra : LinearAlgebra Package : Solvers : LinearAlgebra/SylvesterSolve

LinearAlgebra

 SylvesterSolve
 solve the Sylvester matrix equation

 Calling Sequence SylvesterSolve( A, B, C ) SylvesterSolve( A, B, C, isgn ) SylvesterSolve( A, B, C, isgn, pert, outopts, tranA, schurA, tranB, schurB )

Parameters

 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

Options

 • 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.

Description

 • The SylvesterSolve command computes the solution to the Sylvester matrix equation$A·X+\left(\mathrm{isgn}X\right)·B=\mathrm{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).

Examples

 > $\mathrm{with}\left(\mathrm{LinearAlgebra}\right):$
 > $A≔⟨⟨2,3,7⟩|⟨-1,-1,5⟩|⟨2,1,7⟩⟩:$
 > $C≔\mathrm{IdentityMatrix}\left(3\right):$
 > $\mathrm{SylvesterSolve}\left(A,A,C\right)$
 $\left[\begin{array}{ccc}{-0.176470588235294}& {0.250000000000000}& {0.0147058823529412}\\ {-0.205882352941176}& {2.60297856023309}{}{{10}}^{{-17}}& {0.0588235294117646}\\ {0.323529411764706}& {-0.250000000000000}& {0.0147058823529412}\end{array}\right]{,}{1.}$ (1)
 > $\mathrm{SylvesterSolve}\left(A,A,C,\mathrm{transpose\left[A\right]}=\mathrm{true}\right)$
 $\left[\begin{array}{ccc}{-1.23312439729990}& {0.512295081967212}& {0.204194792671167}\\ {0.512295081967212}& {-0.950819672131147}& {0.0122950819672131}\\ {0.204194792671167}& {0.0122950819672130}& {0.0113307618129219}\end{array}\right]{,}{1.}$ (2)
 > $B≔\mathrm{SchurForm}\left(A\right)$
 ${B}{≔}\left[\begin{array}{ccc}{9.52884381170059}& {-6.26866718463655}& {-1.35252975162594}\\ {0.}& {-0.764421905850299}& {2.98453316627297}\\ {0.}& {-0.999745312853160}& {-0.764421905850299}\end{array}\right]$ (3)
 > $\mathrm{SylvesterSolve}\left(A,B,C\right)$
 $\left[\begin{array}{ccc}{0.0894092265947832}& {-0.0558774253452016}& {0.218774391630871}\\ {-0.0280030511867528}& {-0.310061447256639}& {-0.175968658837354}\\ {-0.0293940299614781}& {0.269087416410547}& {-0.0792924182346908}\end{array}\right]{,}{1.}$ (4)
 > $\mathrm{SylvesterSolve}\left(A,B,C,\mathrm{Schur\left[B\right]}=\mathrm{true}\right)$
 $\left[\begin{array}{ccc}{0.0894092265947832}& {-0.0558774253452016}& {0.218774391630871}\\ {-0.0280030511867528}& {-0.310061447256639}& {-0.175968658837354}\\ {-0.0293940299614781}& {0.269087416410547}& {-0.0792924182346908}\end{array}\right]{,}{1.}$ (5)