Methods for dealing with continuous-time Lyapunov equations. More...
#include <lyapunov_continuous.h>
Static Public Member Functions | |
static bool | hasUniqueSolution (const Eigen::Ref< const Eigen::MatrixXd > &A) |
Determine if the Lyapunov equation exhibits a unique solution. More... | |
static bool | solve (const Eigen::Ref< const Eigen::MatrixXd > &A, const Eigen::Ref< const Eigen::MatrixXd > &Q, Eigen::MatrixXd &X) |
Solve continuous-time Lyapunov equation. More... | |
Methods for dealing with continuous-time Lyapunov equations.
The continuous-time Lyapunov equation is given by
If Q is symmetric, solution X is symmetric as well. A and Q must be square.
Add support for the generalized Lyapunov equations .
Allow the user to precompute the Schur decomposition for subsequent calls of solve() with varying .
Definition at line 56 of file lyapunov_continuous.h.
|
static |
Determine if the Lyapunov equation exhibits a unique solution.
The solution is unique if for Eigenvalues of A it is:
[in] | A | Matrix (might be non-square) |
Definition at line 83 of file lyapunov_continuous.cpp.
|
static |
Solve continuous-time Lyapunov equation.
Solve w.r.t.
. If Q is symmetric, solution X is symmetric as well. A and Q must be square. The solution is unique if for Eigenvalues of A it is:
The solution is obtained via Schur decomposition [1-4]. We solve the transformed equation: with
In this transformed representation the system of equations can be solved by backward substitution.
[1] R.H. Bartels, G. W. Stewart. "Algorithm 432: Solution of the matrix equation AX + XB = C". Comm. ACM. 15 (9): 820–826, 1972. [2] V. Simoncini. "Computational Methods for Linear Matrix Equations". SIAM Review 58 (3): 377-441, 2016. [3] https://people.kth.se/~eliasj/NLA/matrixeqs.pdf [4] https://github.com/ajt60gaibb/freeLYAP
[in] | A | Square matrix |
[in] | Q | Square matrix with same size as A |
[out] | X | Solution with same size as A and Q (size(X) must not be preallocated a-priori) |
Definition at line 37 of file lyapunov_continuous.cpp.