dare
(Not recommended) Solve discretetime algebraic Riccati equations (DAREs)
dare
is not recommended. Use idare
instead. For more information, see Compatibility Considerations.
Syntax
[X,L,G] = dare(A,B,Q,R)
[X,L,G] = dare(A,B,Q,R,S,E)
[X,L,G,report] = dare(A,B,Q,...)
[X1,X2,L,report] = dare(A,B,Q,...,'factor')
Description
[X,L,G] = dare(A,B,Q,R)
computes the unique
stabilizing solution X
of the discretetime algebraic Riccati
equation
$${A}^{T}XAX{A}^{T}XB{({B}^{T}XB+R)}^{1}{B}^{T}XA+Q=0$$
The dare
function also returns the gain matrix, $$G={({B}^{T}XB+R)}^{1}{B}^{T}XA$$, and the vector L
of closed loop eigenvalues, where
L=eig(AB*G,E)
[X,L,G] = dare(A,B,Q,R,S,E)
solves the more
general discretetime algebraic Riccati equation,
$${A}^{T}XA{E}^{T}XE({A}^{T}XB+S){({B}^{T}XB+R)}^{1}({B}^{T}XA+{S}^{T})+Q=0$$
or, equivalently, if R
is nonsingular,
$${E}^{T}XE={F}^{T}XF{F}^{T}XB{({B}^{T}XB+R)}^{1}{B}^{T}XF+QS{R}^{1}{S}^{T}$$
where $$F=AB{R}^{1}{S}^{T}$$. When omitted, R
, S
, and
E
are set to the default values R=I
,
S=0
, and E=I
.
The dare
function returns the corresponding gain matrix $$G={({B}^{T}XB+R)}^{1}({B}^{T}XA+{S}^{T})$$
and a vector L
of closedloop eigenvalues, where
L= eig(AB*G,E)
[X,L,G,report] = dare(A,B,Q,...)
returns a diagnosis
report
with value:

1
when the associated symplectic pencil has eigenvalues on or very near the unit circle
2
when there is no finite stabilizing solutionX
The Frobenius norm if
X
exists and is finite
[X1,X2,L,report] = dare(A,B,Q,...,'factor')
returns two matrices,
X1
and X2
, and a diagonal scaling matrix D
such that X = D*(X2/X1)*D
. The vector L contains the closedloop
eigenvalues. All outputs are empty when the associated Symplectic matrix has eigenvalues
on the unit circle.
Limitations
The (A, B) pair must be stabilizable (that is, all eigenvalues of A outside the unit disk must be controllable). In addition, the associated symplectic pencil must have no eigenvalue on the unit circle. Sufficient conditions for this to hold are (Q, A) detectable when S = 0 and R > 0, or
$$\left[\begin{array}{cc}Q& S\\ {S}^{T}& R\end{array}\right]>0$$
Algorithms
dare
implements the algorithms described in [1]. It uses the QZ algorithm to deflate the extended symplectic pencil and compute its stable invariant subspace.
References
[1] Arnold, W.F., III and A.J. Laub, "Generalized Eigenproblem Algorithms and Software for Algebraic Riccati Equations," Proc. IEEE^{®}, 72 (1984), pp. 17461754.