pymor.bindings.slycot

Module Contents

pymor.bindings.slycot.lyap_dense_solver_options()[source]

Return available Lyapunov solvers with default options for the slycot backend.

Returns

A dict of available solvers with default solver options.

pymor.bindings.slycot.lyap_lrcf_solver_options()[source]

Return available Lyapunov solvers with default options for the slycot backend.

Returns

A dict of available solvers with default solver options.

pymor.bindings.slycot.pos_ricc_lrcf_solver_options()[source]

Return available positive Riccati solvers with default options for the slycot backend.

Returns

A dict of available solvers with default solver options.

pymor.bindings.slycot.ricc_dense_solver_options()[source]

Return available Riccati solvers with default options for the slycot backend.

Returns

A dict of available solvers with default solver options.

pymor.bindings.slycot.ricc_lrcf_solver_options()[source]

Return available Riccati solvers with default options for the slycot backend.

Returns

A dict of available solvers with default solver options.

pymor.bindings.slycot.solve_lyap_dense(A, E, B, trans=False, cont_time=True, options=None)[source]

Compute the solution of a Lyapunov equation.

See

for a general description.

This function uses slycot.sb03md (if E is None) and slycot.sg03ad (if E is not None), which are based on the Bartels-Stewart algorithm.

Parameters

A

The matrix A as a 2D NumPy array.

E

The matrix E as a 2D NumPy array or None.

B

The matrix B as a 2D NumPy array.

trans

Whether the first matrix in the Lyapunov equation is transposed.

cont_time

Whether the continuous- or discrete-time Lyapunov equation is solved.

options

The solver options to use (see lyap_dense_solver_options).

Returns

X

Lyapunov equation solution as a NumPy array.

pymor.bindings.slycot.solve_lyap_lrcf(A, E, B, trans=False, cont_time=True, options=None)[source]

Compute an approximate low-rank solution of a Lyapunov equation.

See

for a general description.

This function uses slycot.sb03md (if E is None) and slycot.sg03ad (if E is not None), which are dense solvers based on the Bartels-Stewart algorithm. Therefore, we assume A and E can be converted to NumPy arrays using to_matrix and that B.to_numpy is implemented.

Parameters

A

The non-parametric Operator A.

E

The non-parametric Operator E or None.

B

The operator B as a VectorArray from A.source.

trans

Whether the first Operator in the Lyapunov equation is transposed.

cont_time

Whether the continuous- or discrete-time Lyapunov equation is solved.

options

The solver options to use (see lyap_lrcf_solver_options).

Returns

Z

Low-rank Cholesky factor of the Lyapunov equation solution, VectorArray from A.source.

pymor.bindings.slycot.solve_pos_ricc_lrcf(A, E, B, C, R=None, trans=False, options=None)[source]

Compute an approximate low-rank solution of a positive Riccati equation.

See pymor.algorithms.riccati.solve_pos_ricc_lrcf for a general description.

This function uses slycot.sb02md (if E is None) or slycot.sg03ad (if E is not None), which are dense solvers. Therefore, we assume all Operators and VectorArrays can be converted to NumPy arrays using to_matrix and to_numpy.

Parameters

A

The non-parametric Operator A.

E

The non-parametric Operator E or None.

B

The operator B as a VectorArray from A.source.

C

The operator C as a VectorArray from A.source.

R

The matrix R as a 2D NumPy array or None.

trans

Whether the first Operator in the positive Riccati equation is transposed.

options

The solver options to use (see pos_ricc_lrcf_solver_options).

Returns

Z

Low-rank Cholesky factor of the positive Riccati equation solution, VectorArray from A.source.

pymor.bindings.slycot.solve_ricc_dense(A, E, B, C, R=None, trans=False, options=None)[source]

Compute the solution of a Riccati equation.

See pymor.algorithms.riccati.solve_ricc_dense for a general description.

This function uses slycot.sb02md (if E is None) which is based on the Schur vector approach and slycot.sg02ad (if E is not None) which is based on the method of deflating subspaces.

Parameters

A

The matrix A as a 2D NumPy array.

E

The matrix E as a 2D NumPy array or None.

B

The matrix B as a 2D NumPy array.

C

The matrix C as a 2D NumPy array.

R

The matrix R as a 2D NumPy array or None.

trans

Whether the first matrix in the Riccati equation is transposed.

options

The solver options to use (see ricc_dense_solver_options).

Returns

X

Riccati equation solution as a NumPy array.

pymor.bindings.slycot.solve_ricc_lrcf(A, E, B, C, R=None, trans=False, options=None)[source]

Compute an approximate low-rank solution of a Riccati equation.

See pymor.algorithms.riccati.solve_ricc_lrcf for a general description.

This function uses slycot.sb02md (if E is None) or slycot.sg03ad (if E is not None), which are dense solvers. Therefore, we assume all Operators and VectorArrays can be converted to NumPy arrays using to_matrix and to_numpy.

Parameters

A

The non-parametric Operator A.

E

The non-parametric Operator E or None.

B

The operator B as a VectorArray from A.source.

C

The operator C as a VectorArray from A.source.

R

The matrix R as a 2D NumPy array or None.

trans

Whether the first Operator in the Riccati equation is transposed.

options

The solver options to use (see ricc_lrcf_solver_options).

Returns

Z

Low-rank Cholesky factor of the Riccati equation solution, VectorArray from A.source.