pymor.algorithms.dmd¶
Module Contents¶
- pymor.algorithms.dmd.dmd(X, Y=None, modes=None, atol=None, rtol=None, cont_time_dt=None, type='exact', order='magnitude', svd_method='method_of_snapshots', return_A_approx=False, return_A_tilde=False)[source]¶
Dynamic Mode Decomposition.
See Algorithm 1 and Algorithm 2 in [TRL+14].
- Parameters:
X – The
VectorArrayfor which the DMD algorithm is performed. IfYis given,XandYare the left resp. right snapshot series.Y – The
VectorArrayof the right snapshot series.modes – Maximum number of singular vectors of
Xto take into account.atol – Absolute truncation tolerance for singular values of
X.rtol – Relative truncation tolerance for singular values of
X.cont_time_dt – If not
None, return continuous-time DMD eigenvalues with scaling log(lambda) / dt.type –
- ‘standard’: uses the standard definition to compute the dynamic modes
Wk = U * evecs, whereUare the left singular vectors ofX.
’exact’ : computes the exact dynamic modes,
Wk = (1/evals) * Y * V * Sigma_inv * evecs.
order – Sort DMD eigenvalues either by
'magnitude'or'phase'.svd_method – Which SVD method from
svd_vato use ('method_of_snapshots'or'qr_svd').return_A_approx – If
True, the approximation of the operatorAwithAX=Yis returned as aLowRankOperator.return_A_tilde – If
Truethe low-rank dynamics are returned.
- Returns:
Wk –
VectorArraycontaining the dynamic modes. The number of computed modes is given by the SVD truncation rank determined by themodes,atolandrtolarguments.evals – Discrete or continuous time DMD eigenvalues.
A_approx –
LowRankOperatorcontaining the approximation of the operatorAwithAX=Y. Only provided ifreturn_A_approxisTrue.A_tilde – Low-rank dynamics. Only provided if
return_A_tildeisTrue.