Skip to content

Lyapunov

Options for solving the Lyapunov equation. The discrete Lyapunov equation arises in the computation of the boundary conditions for quantities such as W.

The discrete Lyapunov equation has the form:

\[ \mathbf{A} \mathbf{X} \mathbf{A}^{\dagger} - \mathbf{X} = - \mathbf{Q} \]

algorithm#

algorithm: Literal['spectral', 'doubling'] = 'spectral'

The Lyapunov solver algorithm used

  • "spectral": Uses the eigenvalue decomposition to solve the Lyapunov equation. This method is more expensive since a full eigendecomposition is required.
  • "doubling": Uses the doubling method to iteratively solve the Lyapunov equation. This method should exponentially converge, but it is not stable if \(\mathbf{A}\) has eigenvalues outside the unit circle.

reduce_sparsity#

reduce_sparsity: bool = True

Whether to use the sparsity of \(\mathbf{A}\) to accelerate the Lyapunov solver.

This is done by removing zero rows and columns from \(\mathbf{A}\), solving the reduced Lyapunov equation, and then expanding the solution back to the original size.

assume_constant_sparsity#

assume_constant_sparsity: bool = False

Whether to assume that the sparsity pattern of \(\mathbf{A}\) is constant during the SCBA iterations. In practice, this should be the case, but not guaranteed.

If set to True, the sparsity pattern is only computed once during the first SCBA iteration and reused for subsequent iterations.

max_iterations#

max_iterations: PositiveInt = 100

The maximum number of iterations for the doubling method.

relative_tol#

relative_tol: PositiveFloat = 0.0001

The relative tolerance for the doubling method.

absolute_tol#

absolute_tol: PositiveFloat = 1e-08

The absolute tolerance for the doubling method.

num_ref_iterations#

num_ref_iterations: PositiveInt = 2

The number of fixed-point iterations used to refine the solution of the solution of the spectral Lyapunov solver.

This is not used in the doubling method. Additionally, the number of iterations in the memoizer is also independent of this parameter.

memoizer#

memoizer: MemoizerConfig

Options for memoizing the Lyapunov solver.