pymor.algorithms.bernoulli
¶
Module Contents¶
- pymor.algorithms.bernoulli.bernoulli_stabilize(A, E, B, ast_spectrum, trans=False)[source]¶
Compute Bernoulli stabilizing feedback.
Returns a matrix \(K\) that stabilizes the spectrum of the matrix pair \((A, E)\):
if trans is
True
the spectrum of\[(A - B K, E)\]contains the eigenvalues of \((A, E)\) where anti-stable eigenvalues have been mirrored on the imaginary axis.
if trans is
False
the spectrum of\[(A - K B, E)\]contains the eigenvalues of \((A, E)\) where anti-stable eigenvalues have been mirrored on the imaginary axis.
See e.g. [BBQOrti07].
Parameters
- A
The
Operator
A.- E
The
Operator
E.- B
The operator B as a
VectorArray
.- ast_spectrum
Tuple
(lev, ew, rev)
whereew
contains the anti-stable eigenvalues andlev
andrev
areVectorArrays
representing the eigenvectors.- trans
Indicates which stabilization to perform.
Returns
- K
The stabilizing feedback as a
VectorArray
.
- pymor.algorithms.bernoulli.solve_bernoulli(A, E, B, trans=False, maxiter=100, after_maxiter=3, tol=1e-08)[source]¶
Compute a solution factor of a Bernoulli equation.
Returns a matrix \(Y\) with identical dimensions to the matrix \(A\) such that \(X = Y Y^H\) is an approximate solution of a (generalized) algebraic Bernoulli equation:
if trans is
True
\[A^H X E + E^H X A - E^H X B B^H X E = 0.\]if trans is
False
\[A X E^H + E X A^H - E X B^H B X E^H = 0.\]
This function is based on [BBQOrti07].
Parameters
- A
The matrix A as a 2D
NumPy array
.- E
The matrix E as a 2D
NumPy array
orNone
.- B
The matrix B as a 2D
NumPy array
.- trans
Whether to solve transposed or standard Bernoulli equation.
- maxiter
The maximum amount of iterations.
- after_maxiter
The number of iterations which are to be performed after tolerance is reached. This will improve the quality of the solution in cases where the iterates which are used by the stopping criterion stagnate prematurely.
- tol
Tolerance for stopping criterion based on relative change of iterates.
Returns
- Y
The solution factor as a
NumPy array
.