LinearAlgebra - Maple Programming Help

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

LinearAlgebra

 SchurForm
 reduce a square Matrix to Schur form

 Calling Sequence SchurForm(A, out, ip, options, outopts)

Parameters

 A - square Matrix out - (optional) equation of the form output = obj where obj is one of 'T' or 'Z', or a list containing one or more of these names; selects result objects to compute ip - (optional) BooleanOpt(inplace); specifies if output overwrites input options - (optional); constructor options for the result object(s) outopts - (optional) equation(s) of the form outputoptions[o] = list where o is 'T' or 'Z'; constructor options for the specified result object

Description

 • The SchurForm(A) function returns a Matrix containing the Schur Form of A. This routine operates in the floating-point domain. Hence, the entries in Matrix A must necessarily be of type complex(numeric).
 The reduction to Schur Form is done in two steps. First a reduction to upper Hessenberg Form is performed, and then a further reduction to Schur Form is performed. If the Matrix argument has the Hessenberg[upper] indexing function, then the initial step is skipped.
 For a real Matrix A, the Schur Form is an upper quasi-triangular Matrix T with 1 X 1 or 2 x 2 blocks on its diagonal. The blocks correspond to either eigenvalues, or complex conjugate pairs of eigenvalues, of the Matrix argument A. The real Schur Vectors comprise the columns of the reducing orthogonal Matrix Z such that  $A=Z\cdot T\cdot {Z}^{+}$.
 For a complex Matrix A, the Schur Form is an upper triangular Matrix T with the eigenvalues of A on its diagonal. The complex Schur Vectors comprise the columns of the reducing unitary Matrix Z such that  $A=Z\cdot T\cdot {Z}^{*}$.
 • If the Matrix A does not have a floating-point datatype, then a working copy which does is made in agreement with the environment variable UseHardwareFloats.
 • The output option (out) determines the content of the returned expression sequence.  Depending on what is included in the output option, an expression sequence containing one or more of the factors T (the Schur form) and Z (the reduction Matrix). If output is a list, the objects are returned in the same order as specified in the list.
 • The inplace option (ip) determines where the result is returned. If given as inplace=true, the result overwrites the first argument. If given as inplace=false, or if this option is not included in the calling sequence, the result is returned in a new Matrix.
 The condition inplace=true can be abbreviated to inplace.
 The inplace option must be used with caution since, if the operation fails, the original Matrix argument may be corrupted.
 • The constructor options provide additional information (readonly, shape, storage, order, datatype, and attributes) to the Matrix or Vector constructor that builds the result(s). These options may also be provided in the form outputoptions[o]=[...], where [...] represents a Maple list.  If a constructor option is provided in both the calling sequence directly and in an outputoptions[o] option, the latter takes precedence (regardless of the order).
 The following list indicates permissible values for index [o] of outputoptions with their corresponding meaning.

 T Schur form Z reducing Schur Vectors as columns of a Matrix

 • The inplace and constructor options are mutually exclusive.
 • This function is part of the LinearAlgebra package, and so it can be used in the form SchurForm(..) only after executing the command with(LinearAlgebra). However, it can always be accessed through the long form of the command by using LinearAlgebra[SchurForm](..).

Examples

 > $\mathrm{with}\left(\mathrm{LinearAlgebra}\right):$
 > $A≔\mathrm{Matrix}\left(3,\left[\left[1,2I,3\right],\left[4,-3,0\right],\left[I,1,9\right]\right],\mathrm{datatype}=\mathrm{complex}\left(\mathrm{sfloat}\right)\right):$
 > $\mathrm{SchurForm}\left(A\right)$
 $\left[\begin{array}{ccc}{-}{3.38167040667581}{-}{1.73873155455341}{}{I}& {3.32402140940930}{+}{1.00133720342504}{}{I}& {1.32747249214003}{-}{0.241955619281952}{}{I}\\ {0.}{+}{0.}{}{I}& {1.27253014447447}{+}{1.36770446544023}{}{I}& {-}{1.90579815869152}{-}{1.85269670080711}{}{I}\\ {0.}{+}{0.}{}{I}& {0.}{+}{0.}{}{I}& {9.10914026220134}{+}{0.371027089113183}{}{I}\end{array}\right]$ (1)
 > $\mathrm{SchurForm}\left(A,\mathrm{output}=\left['T','Z'\right]\right)$
 $\left[\begin{array}{ccc}{-}{3.38167040667581}{-}{1.73873155455341}{}{I}& {3.32402140940930}{+}{1.00133720342504}{}{I}& {1.32747249214003}{-}{0.241955619281952}{}{I}\\ {0.}{+}{0.}{}{I}& {1.27253014447447}{+}{1.36770446544023}{}{I}& {-}{1.90579815869152}{-}{1.85269670080711}{}{I}\\ {0.}{+}{0.}{}{I}& {0.}{+}{0.}{}{I}& {9.10914026220134}{+}{0.371027089113183}{}{I}\end{array}\right]{,}\left[\begin{array}{ccc}{0.156708317237421}{-}{0.372760653354651}{}{I}& {0.844410111959314}{+}{0.327381215907293}{}{I}& {-}{0.116315989269289}{+}{0.0524946811730249}{}{I}\\ {0.742626478222309}{+}{0.523526369851161}{}{I}& {0.224493990212794}{-}{0.346714687041648}{}{I}& {-}{0.0432663200205400}{-}{0.0441072966007453}{}{I}\\ {-}{0.0959073889001757}{-}{0.0414707763030237}{}{I}& {-}{0.00563400115541655}{-}{0.0956699245889354}{}{I}& {-}{0.645272301970484}{-}{0.750680442889660}{}{I}\end{array}\right]$ (2)
 > $\mathrm{SchurForm}\left(\mathrm{HessenbergForm}\left(A\right),\mathrm{output}=\left['T','Z'\right]\right)$
 $\left[\begin{array}{ccc}{-}{3.38167040667581}{-}{1.73873155455341}{}{I}& {3.32402140940930}{+}{1.00133720342504}{}{I}& {1.32747249214003}{-}{0.241955619281952}{}{I}\\ {0.}{+}{0.}{}{I}& {1.27253014447447}{+}{1.36770446544023}{}{I}& {-}{1.90579815869152}{-}{1.85269670080711}{}{I}\\ {0.}{+}{0.}{}{I}& {0.}{+}{0.}{}{I}& {9.10914026220134}{+}{0.371027089113183}{}{I}\end{array}\right]{,}\left[\begin{array}{ccc}{0.156708317237421}{-}{0.372760653354651}{}{I}& {0.844410111959314}{+}{0.327381215907293}{}{I}& {-}{0.116315989269289}{+}{0.0524946811730249}{}{I}\\ {-}{0.710395367605318}{-}{0.531156139851921}{}{I}& {-}{0.194587795975285}{+}{0.334996207332006}{}{I}& {0.224041246295610}{-}{0.113711158078146}{}{I}\\ {0.198308916899810}{+}{0.101868291827065}{}{I}& {0.168024523645759}{-}{0.0383926096558928}{}{I}& {0.882282995993234}{-}{0.377050270596494}{}{I}\end{array}\right]$ (3)
 > $B≔⟨⟨1,1,1⟩|⟨-1,-1,0⟩|⟨-1,0,-1⟩⟩:$
 > $T,Z≔\mathrm{SchurForm}\left(B,\mathrm{output}=\left['T','Z'\right]\right):$
 > $\mathrm{map}\left(\mathrm{fnormal},Z\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}T\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{Z}^{\mathrm{%T}}\right)$
 $\left[\begin{array}{ccc}{1.000000000}& {-}{1.000000000}& {-}{1.000000000}\\ {1.000000000}& {-}{1.000000000}& {0.}\\ {1.000000000}& {0.}& {-}{1.000000000}\end{array}\right]$ (4)
 > $\mathrm{Map}\left(\mathrm{fnormal},T\right)$
 $\left[\begin{array}{ccc}{0.}& {2.41421356200000}& {0.}\\ {-}{0.414213562400000}& {0.}& {0.}\\ {0.}& {0.}& {-}{1.}\end{array}\right]$ (5)
 > $\mathrm{Eigenvalues}\left(B\right)$
 $\left[\begin{array}{c}{-}{1}\\ {I}\\ {-}{I}\end{array}\right]$ (6)
 > $\mathrm{Eigenvalues}\left({T}_{1..2,1..2}\right)$
 $\left[\begin{array}{c}{0.}{+}{0.999999999955207}{}{I}\\ {0.}{-}{0.999999999955207}{}{I}\end{array}\right]$ (7)