# gdare

(Not recommended) Generalized solver for discrete-time algebraic Riccati equation

`gdare` is not recommended. Use `idare` instead. For more information, see Compatibility Considerations.

## Syntax

```[X,L,report] = gdare(H,J,ns) [X1,X2,D,L] = gdare(H,J,NS,'factor') ```

## Description

`[X,L,report] = gdare(H,J,ns)` computes the unique stabilizing solution `X` of the discrete-time algebraic Riccati equation associated with a Symplectic pencil of the form

`$H-tJ=\left[\begin{array}{ccc}A& F& B\\ -Q& E\prime & -S\\ S\prime & 0& R\end{array}\right]-\left[\begin{array}{ccc}E& 0& 0\\ 0& A\prime & 0\\ 0& B\prime & 0\end{array}\right]$`

The third input `ns` is the row size of the A matrix.

Optionally, `gdare` returns the vector `L` of closed-loop eigenvalues and a diagnosis `report` with value:

• -1 if the Symplectic pencil has eigenvalues on the unit circle

• -2 if there is no finite stabilizing solution `X`

• 0 if a finite stabilizing solution `X` exists

This syntax does not issue any error message when `X` fails to exist.

`[X1,X2,D,L] = gdare(H,J,NS,'factor')` returns two matrices `X1`, `X2` and a diagonal scaling matrix `D` such that `X = D*(X2/X1)*D`. The vector `L` contains the closed-loop eigenvalues. All outputs are empty when the Symplectic pencil has eigenvalues on the unit circle.

## Version History

Introduced before R2006a

collapse all

### R2019a: `gdare` 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 `R` is ill-conditioned relative to `gdare`. Furthermore, `idare` includes an optional `info` structure to gather the implicit solution data of the Riccati equation.

The following table shows some typical uses of `gdare` and how to update your code to use `idare` instead.

Not RecommendedRecommended

`[X,L] = gdare(H,J,NS)`

`[X,K,L] = idare(A,B,Q,R,S,E)` computes the stabilizing solution `X`, the state-feedback gain `K` and the closed-loop eigenvalues `L` of the discrete-time algebraic Riccati equation. For more information, see `idare`.

```[X,L,report] = gdare(H,J,NS)```

`[X,K,L,info] = idare(A,B,Q,R,S,E)` computes the stabilizing solution `X`, the state-feedback gain `K`, the closed-loop eigenvalues `L` of the discrete-time algebraic Riccati equation. The `info` structure contains the implicit solution data. For more information, see `idare`.

There are no plans to remove `gdare` at this time.