CARE - Maple Help

LinearAlgebra

 CARE
 solves the continuous algebraic Riccati equation

 Calling Sequence CARE(A, B, Q, R, S, options, outopts)

Parameters

 A - Matrix(square) B - Matrix Q - Matrix R - (optional) Matrix(square) S - (optional) Matrix options - (optional) constructor options for the result objects and/or equation(s) of the form keyword = value, where keyword is one of haveB or output outopts - (optional) equation(s) of the form outputoptions[o] = list, where o is one of X, L or G

Options

 • haveB=true or false

Specifies whether the second Matrix argument should be interpreted as B (true) or as G (false) in $G=B·{R}^{\mathrm{-1}}·{B}^{+}$. The default value is true.

 • output=value

Specifies which results are returned, where value can be a single name or a list of names. The choices of names for value are

 – X - the Matrix which solves the equation
 – L - the Vector of closed-loop eigenvalues of the symplectic Matrix H
 – rcond - the reciprocal of the condition number of the system solved by X
 – G - the gain Matrix, where $G={R}^{\mathrm{-1}}·\left({B}^{+}·X+{S}^{+}\right)$.

The default returned object is X.

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

Description

 • The CARE command solves the continuous algebraic Riccati equation,

${A}^{+}·X+X·A-\left(S+X·B\right)·{R}^{\mathrm{-1}}·{\left(S+X·B\right)}^{+}+Q=0$

 • The optional Matrix arguments R and S default respectively to the identity Matrix and the zero Matrix.
 • This routine operates in the real floating-point domain. Hence, the entries in the Matrix arguments must necessarily be of type numeric.

Examples

 > $\mathrm{with}\left(\mathrm{LinearAlgebra}\right):$
 > $a≔\mathrm{Matrix}\left(\left[\left[-3,2\right],\left[1,1\right]\right]\right):$
 > $b≔\mathrm{Matrix}\left(\left[\left[0\right],\left[1\right]\right]\right):$
 > $c≔\mathrm{Matrix}\left(\left[\left[1,-1\right]\right]\right):$
 > $r≔\mathrm{Matrix}\left(\left[\left[3\right]\right]\right):$
 > $\mathrm{CARE}\left(a,b,\mathrm{.}\left({c}^{\mathrm{%T}},c\right),r,\mathrm{output}=\left[X,L\right]\right)$
 $\left[\begin{array}{cc}{0.589517437276262}& {1.82157472488609}\\ {1.82157472488609}& {8.81883980692312}\end{array}\right]{,}\left[\begin{array}{c}{-3.42578096594334}{+}{0.}{}{I}\\ {-1.32083158810045}{+}{0.}{}{I}\end{array}\right]$ (1)
 > $a≔\mathrm{Matrix}\left(\left[\left[0,1\right],\left[0,0\right]\right]\right):$
 > $q≔\mathrm{Matrix}\left(\left[\left[1,0\right],\left[0,2\right]\right]\right):$
 > $b≔\mathrm{Matrix}\left(\left[\left[0,0\right],\left[0,1\right]\right]\right):$
 > $\mathrm{CARE}\left(a,b,q\right)$
 $\left[\begin{array}{cc}{2.00000000000000}& {1.}\\ {1.}& {2.00000000000000}\end{array}\right]$ (2)
 > $\mathrm{CARE}\left(a,b,q,\mathrm{output}=X\right)$
 $\left[\begin{array}{cc}{2.00000000000000}& {1.}\\ {1.}& {2.00000000000000}\end{array}\right]$ (3)
 > $\mathrm{CARE}\left(a,b,q,\mathrm{output}=\left[X,L,\mathrm{rcond}\right]\right)$
 $\left[\begin{array}{cc}{2.00000000000000}& {1.}\\ {1.}& {2.00000000000000}\end{array}\right]{,}\left[\begin{array}{c}{-0.771362433706343}{+}{0.}{}{I}\\ {-0.788573861585529}{+}{0.}{}{I}\end{array}\right]{,}{0.427050982904767451}$ (4)