pymor.algorithms.sylvester

Module Contents

pymor.algorithms.sylvester.solve_sylv_schur(A, Ar, E=None, Er=None, B=None, Br=None, C=None, Cr=None)[source]

Solve Sylvester equation by Schur decomposition.

Solves Sylvester equation

\[A V E_r^T + E V A_r^T + B B_r^T = 0\]

or

\[A^T W E_r + E^T W A_r + C^T C_r = 0\]

or both using (generalized) Schur decomposition (Algorithms 3 and 4 in [BKohlerS11]), if the necessary parameters are given.

Parameters

A

Real Operator.

Ar

Real Operator. It is converted into a NumPy array using to_matrix.

E

Real Operator or None (then assumed to be the identity).

Er

Real Operator or None (then assumed to be the identity). It is converted into a NumPy array using to_matrix.

B

Real Operator or None.

Br

Real Operator or None. It is assumed that Br.range.from_numpy is implemented.

C

Real Operator or None.

Cr

Real Operator or None. It is assumed that Cr.source.from_numpy is implemented.

Returns

V

Returned if B and Br are given, VectorArray from A.source.

W

Returned if C and Cr are given, VectorArray from A.source.

Raises

ValueError

If V and W cannot be returned.