DiscreteRiccatiSolve

DiscreteRiccatiSolve[{a, b}, {q, r}]
gives the matrix that is the stabilizing solution of the discrete algebraic Riccati equation TemplateBox[{a}, ConjugateTranspose].x.a-x-TemplateBox[{a}, ConjugateTranspose].x.b.TemplateBox[{{(, {r, +, {TemplateBox[{b}, ConjugateTranspose], ., x, ., b}}, )}}, Inverse].TemplateBox[{b}, ConjugateTranspose].x.a+q=0.

DiscreteRiccatiSolve[{a, b}, {q, r, p}]
solves TemplateBox[{a}, ConjugateTranspose].x.a-x-(TemplateBox[{a}, ConjugateTranspose].x.b+p).TemplateBox[{{(, {r, +, {TemplateBox[{b}, ConjugateTranspose], ., x, ., b}}, )}}, Inverse].(TemplateBox[{b}, ConjugateTranspose].x.a+TemplateBox[{p}, ConjugateTranspose])+q=0.

Details and OptionsDetails and Options

  • In TemplateBox[{a}, ConjugateTranspose].x.a-x-TemplateBox[{a}, ConjugateTranspose].x.b.TemplateBox[{{(, {r, +, {TemplateBox[{b}, ConjugateTranspose], ., x, ., b}}, )}}, Inverse].TemplateBox[{b}, ConjugateTranspose].x.a+q=0, denotes the conjugate transpose.
  • The equation TemplateBox[{a}, ConjugateTranspose].x.a-x-TemplateBox[{a}, ConjugateTranspose].x.b.TemplateBox[{{(, {r, +, {TemplateBox[{b}, ConjugateTranspose], ., x, ., b}}, )}}, Inverse].TemplateBox[{b}, ConjugateTranspose].x.a+q=0 has a unique, symmetric, positive semidefinite solution only if is stabilizable, is detectable, , and . Consequently, all the eigenvalues of the matrix lie inside the unit circle, and the solution is stabilizing.
  • The solution is positive definite when is controllable and is observable.
  • The eigenvalues of the symplectic matrix (a+b.r^(-1).b.TemplateBox[{{(, TemplateBox[{a}, ConjugateTranspose], )}}, Inverse].q -b .r^(-1).b.TemplateBox[{{(, TemplateBox[{a}, ConjugateTranspose], )}}, Inverse]; -TemplateBox[{{(, TemplateBox[{a}, ConjugateTranspose], )}}, Inverse].q TemplateBox[{{(, TemplateBox[{a}, ConjugateTranspose], )}}, Inverse]) must not contain any symbolic expressions.
  • DiscreteRiccatiSolve supports a Method option. The following explicit settings can be specified:
  • "Eigensystem"uses eigenvalue decomposition
    "Schur"uses Schur decomposition
  • The default setting Method->Automatic selects for exact matrices and as the primary method for real matrices.
  • Method->"Schur" only works with real matrices.
New in 8
New to Mathematica? Find your learning path »
Have a question? Ask support »