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
.