(Not recommended) Solve discrete-time algebraic Riccati equations (DAREs)
dare is not recommended. Use
instead. For more information, see Compatibility Considerations.
[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')
[X,L,G] = dare(A,B,Q,R) computes the unique
X of the discrete-time algebraic Riccati
dare function also returns the gain matrix, , and the vector
L of closed loop eigenvalues, where
[X,L,G] = dare(A,B,Q,R,S,E) solves the more
general discrete-time algebraic Riccati equation,
or, equivalently, if
R is nonsingular,
where . When omitted,
E are set to the default values
dare function returns the corresponding gain matrix
and a vector
L of closed-loop eigenvalues, where
[X,L,G,report] = dare(A,B,Q,...) returns a diagnosis
report with value:
1when the associated symplectic pencil has eigenvalues on or very near the unit circle
2when there is no finite stabilizing solution
The Frobenius norm if
Xexists and is finite
[X1,X2,L,report] = dare(A,B,Q,...,'factor') returns two matrices,
X2, and a diagonal scaling matrix D
X = D*(X2/X1)*D. The vector L contains the closed-loop
eigenvalues. All outputs are empty when the associated Symplectic matrix has eigenvalues
on the unit circle.
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
dare implements the algorithms described in . It uses the QZ algorithm to deflate the extended symplectic pencil and compute its stable invariant subspace.
 Arnold, W.F., III and A.J. Laub, "Generalized Eigenproblem Algorithms and Software for Algebraic Riccati Equations," Proc. IEEE®, 72 (1984), pp. 1746-1754.
Version HistoryIntroduced before R2006a
dare not recommended
Starting in R2019a, use the
idare command to solve discrete-time Riccati equations. This
approach has improved accuracy through better scaling and the computation of
K is more accurate when
ill-conditioned relative to
idare includes an optional
info structure to
gather the implicit solution data of the Riccati equation.
The following table shows some typical uses of
dare and how to
update your code to use
There are no plans to remove
dare at this time.