Subspace DMD

Derived module from for Subspace DMD.

Reference: Takeishi, Naoya, Yoshinobu Kawahara, and Takehisa Yairi. “Subspace dynamic mode decomposition for stochastic Koopman analysis.” Physical Review E 96.3 (2017): 033310.

class SubspaceDMD(svd_rank=-1, opt=False, rescale_mode=None, sorted_eigs=False)[source]

Bases: pydmd.dmdbase.DMDBase

Subspace Dynamic Mode Decomposition

param svd_rank

the rank for the truncation; if -1 all the columns of U_q are used, if svd_rank is an integer grater than zero it is used as the number of columns retained from U_q. svd_rank=0 or float values are not supported.

  • opt (bool or int) – argument to control the computation of DMD modes amplitudes. See DMDBase. Default is False.

  • rescale_mode ({'auto'} or None or numpy.ndarray) – Scale Atilde as shown in 10.1016/j.jneumeth.2015.10.010 (section 2.4) before computing its eigendecomposition. None means no rescaling, ‘auto’ means automatic rescaling using singular values, otherwise the scaling factors.

  • sorted_eigs ({'real', 'abs'} or False) – Sort eigenvalues (and modes/dynamics accordingly) by magnitude if sorted_eigs=’abs’, by real part (and then by imaginary part to break ties) if sorted_eigs=’real’. Default: False.


Compute the SubspaceDynamic Modes Decomposition to the input data.


X (numpy.ndarray or iterable) – the input snapshots.