How to solve this Riccati equation?

  • #1
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!
 

Answers and Replies

  • #2
D H
Staff Emeritus
Science Advisor
Insights Author
15,393
686
The quadratic form [itex]XBB^TX[/itex] is negated. The term [itex]X(\gamma B_1 B_1{}^T - B_2 R^{-1}B_2{}^T)X[/itex] is not.
 
  • #3
341
0
If you write a little bit more prettier, you can define a new B matrix as
[itex]
\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
[/itex]
Now, your [tex]\hat B[/tex] is going to be

[itex]
\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]
[/itex]

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

Related Threads on How to solve this Riccati equation?

  • Last Post
Replies
3
Views
2K
  • Last Post
Replies
10
Views
17K
  • Last Post
Replies
7
Views
2K
  • Last Post
Replies
2
Views
3K
  • Last Post
Replies
15
Views
3K
  • Last Post
Replies
2
Views
2K
Replies
6
Views
12K
Replies
10
Views
2K
Replies
7
Views
10K
Replies
2
Views
12K
Top