Can You Reformulate a Riccati Equation for Standard Solver Compatibility?

  • Thread starter Thread starter widemanzhao
  • Start date Start date
widemanzhao
Messages
1
Reaction score
0
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?
Thanks in advance!
 
Physics news on Phys.org
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.
 
If you write a little bit more prettier, you can define a new B matrix as
<br /> \hat B \hat B^T = \left[\begin{array}{cc}B_1 &amp;B_2\end{array}\right]\left[\begin{array}{cc}\gamma &amp;0\\0 &amp;R^{-1}\end{array}\right]\left[\begin{array}{cc}B_1 &amp;B_2\end{array}\right]^T<br />
Now, your \hat B is going to be

<br /> \hat B = \left[\begin{array}{cc}B_1 &amp;B_2\end{array}\right]\left[\begin{array}{cc}\sqrt{\gamma} &amp;0\\0 &amp;\sqrt{R^{-1}}\end{array}\right]<br />

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...
 
Back
Top