Randomized DMD

Derived module from cdmd.py for Randomized DMD

Reference: N. Benjamin Erichson, Lionel Mathelin, J. Nathan Kutz, Steven L. Brunton. Randomized dynamic mode decomposition. SIAM Journal on Applied Dynamical Systems, 18, 2019.

class RDMD(test_matrix=None, seed=None, oversampling=10, power_iters=2, svd_rank=0, tlsq_rank=0, opt=False, rescale_mode=None, forward_backward=False, sorted_eigs=False, tikhonov_regularization=None)[source]

Bases: CDMD

Randomized Dynamic Mode Decomposition

Parameters:
  • test_matrix (numpy.ndarray) – The random test matrix that will be used when executing the Randomized QB Decomposition. If not provided, the svd_rank and oversampling parameters will be used to compute the random matrix.

  • seed (int) – Seed used to initialize the random generator when computing random test matrices.

  • oversampling (int) – Number of additional samples (beyond the target rank) to use when computing the random test matrix. Note that values in the range [5, 10] tend to be sufficient.

  • power_iters (int) – Number of power iterations to perform when executing the Randomized QB Decomposition. Note that as many as 1 to 2 power iterations often lead to considerable improvements.

_compress_snapshots()[source]

Private method that compresses the snapshot matrix X by projecting X onto a near-optimal orthonormal basis for the range of X computed via the Randomized QB Decomposition.

Returns:

the compressed snapshots

Return type:

numpy.ndarray