Methods for dealing with continuous-time sylvester equations. More...
#include <sylvester_continuous.h>
Static Public Member Functions | |
| static bool | hasUniqueSolution (const Eigen::Ref< const Eigen::MatrixXd > &A, const Eigen::Ref< const Eigen::MatrixXd > &B) |
| Determine if the Sylvester equation exhibits a unique solution. More... | |
| static bool | solve (const Eigen::Ref< const Eigen::MatrixXd > &A, const Eigen::Ref< const Eigen::MatrixXd > &B, const Eigen::Ref< const Eigen::MatrixXd > &C, Eigen::MatrixXd &X) |
| Solve continuous-time Sylvester equation. More... | |
Methods for dealing with continuous-time sylvester equations.
The Sylvester equation is given by
A, B and C are not required to be square, but must be compatible to each other. In particular if size(C) = m x n, then size(A) = n x n and size(B) = m x m.
you might want to refer to our specialized implementation in order to improve efficency.Add support for the generalized Sylvester equations
.
Allow the user to precompute the Schur decomposition for subsequent calls of solve() with varying
.
Definition at line 56 of file sylvester_continuous.h.
|
static |
Determine if the Sylvester equation exhibits a unique solution.
The solution is unique if for Eigenvalues of A and B it is: 
| [in] | A | Matrix (might be non-square) |
| [in] | B | Matrix (might be non-square) |
Definition at line 92 of file sylvester_continuous.cpp.
|
static |
Solve continuous-time Sylvester equation.
Solve
w.r.t.
. A, B and C are not required to be square, but must be compatible to each other. In particular if size(C) = m x n, then size(A) = n x n and size(B) = m x m. The solution is unique if for Eigenvalues of A and B it is: 
The solution is obtained via Schur decomposition [1-4].
[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 | Matrix (might be non-square) |
| [in] | B | Matrix (might be non-square) |
| [in] | C | Matrix (might be non-square) |
| [out] | X | Solution with same size as C (size(X) must not be preallocated a-priori) |
Definition at line 37 of file sylvester_continuous.cpp.