Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a SSM ( State Space Model ) and I want to calculate its optimum gains unisng LQOutputRegulatorGains[] command. When I run the code, it solves the equations and give an answer, but this error also appears :

    RiccatiSolve::ncsol: Cannot compute a stabilizing solution to the matrix equation.>>

What's wrong with it ?! And is it possible to change the method which RiccatiSolve[] command uses to solve the equation ?

It is good to mention that RiccatiSolve[] uses two methods : 1.Eigensystem 2.Schur. I don't know how to change the RiccatiSolve[] methods in the LQOutputRegulatorGains[] command.

Thank you in advance.

share|improve this question
up vote 3 down vote accepted

The Method option in LQOutputRegulatorGains is not documented yet and seems to be going through several iterations. This is what works for the different versions.

v8: Method -> {"RiccatiSolveOptions" -> {Method -> "Eigensystem"}}

v9: Method -> {"Riccati", {Method-> "Eigensystem"}}

v10:Method ->{"Riccati"->{Method-> "Eigensystem"}}

And, FWIW, all method options documented for RiccatiSolve in v10 seem to work in v9.

The message you got, typically means that the method used detected some problem with the Hamiltonian. If none of the methods work, you will need to look at the Hamiltonian or see if conditions for solvability of the LQOutputRegulatorGains are satisfied.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.