# How to solve this Riccati equation?

1. Jun 16, 2009

### widemanzhao

Here is a Riccati equation:
X*A + A'*X +X*(gamma*B1*B1' - B2*inv(R)*B2')*X + Q = 0, where A, gamma, B1, B2, R are given.
The function "care" can solve the problem like "A'*X + X*A - X*B*B'*X + Q = 0", the problem is: how can I change the term "(gamma*B1*B1' - B2*inv(R)*B2')" into "B*B'"?
I try to use the function "chol" to decompose the term "(gamma*B1*B1' - B2*inv(R)*B2')" in order to get B*B', but it does not work out with the message "chol : Matrix must be positive definite".
How can I solve that Riccati equation?

2. Jun 16, 2009

### D H

Staff Emeritus
The quadratic form $XBB^TX$ is negated. The term $X(\gamma B_1 B_1{}^T - B_2 R^{-1}B_2{}^T)X$ is not.

3. Jun 18, 2009

### trambolin

If you write a little bit more prettier, you can define a new B matrix as
$\hat B \hat B^T = \left[\begin{array}{cc}B_1 &B_2\end{array}\right]\left[\begin{array}{cc}\gamma &0\\0 &R^{-1}\end{array}\right]\left[\begin{array}{cc}B_1 &B_2\end{array}\right]^T$
Now, your $$\hat B$$ is going to be

$\hat B = \left[\begin{array}{cc}B_1 &B_2\end{array}\right]\left[\begin{array}{cc}\sqrt{\gamma} &0\\0 &\sqrt{R^{-1}}\end{array}\right]$

The squareroot of R exist anyway, because you have to choose as such from LQ theory anyway. You can now plug this new B matrix as an argument to your "care" function.

Edit: oops mixed up the minus sign... And another argument bites the dust...