DataDrivenDMD

DataDrivenDMD provides operator-based inference. If we assume the following structure of a discrete dynamical system

\[x_{i+1} = f(x_{i}, p, t, u_{i})\]

Then a valid Koopman representation states, that the system can be expressed as

\[\varphi_{i+1} = \mathcal K \circ \varphi_i\]

where $\mathcal K$ denotes the Koopman operator, which is linear. However, this comes at the price of lifting the original state space $x \in \mathbb R^{n_x}$ into its observables $\varphi \in \mathbb C^{n_\varphi}$ with $n_x \leq n_{\varphi} \leq \infty$ . The important and most crucial fact here is the last inequality. While Koopman stated that any dynamical system can be expressed this way, it might well be that it can only be done in infinite dimensions.

Luckily, we can approximate the operator via Dynamic Mode Decomposition:

\[\hat \varphi_{i+1} \approx K \hat \varphi_i\]

with $K \in \mathbb C^{n_d \times n_d}$ being a simple matrix, not necessary limited to the complex domain. A similar result holds for time continuous systems in the form of the Koopman generator:

\[\partial_t \hat \varphi \approx K_G \hat \varphi\]

Algorithms

DataDrivenDMD.DMDPINVType
mutable struct DMDPINV <: DataDrivenDMD.AbstractKoopmanAlgorithm

Approximates the Koopman operator K based on

K = Y / X

where Y and X are data matrices. Returns a Eigen factorization of the operator.

Fields

Signatures

source
DataDrivenDMD.DMDSVDType
mutable struct DMDSVD{T} <: DataDrivenDMD.AbstractKoopmanAlgorithm

Approximates the Koopman operator K based on the singular value decomposition of X such that:

K = Y*V*Σ*U'

where Y and X = U*Σ*V' are data matrices. The singular value decomposition is truncated via the truncation parameter, which can either be an Int indicating an index-based truncation or a Real indicating a tolerance-based truncation. Returns a Eigen factorization of the operator.

Fields

  • truncation: Indicates the truncation

Signatures

source
DataDrivenDMD.TOTALDMDType
mutable struct TOTALDMD{R, A} <: DataDrivenDMD.AbstractKoopmanAlgorithm

Approximates the Koopman operator K with the algorithm alg over the rank-reduced data matrices Xᵣ = X Qᵣ and Yᵣ = Y Qᵣ, where Qᵣ originates from the singular value decomposition of the joint data Z = [X; Y]. Based on this paper.

If rtol ∈ (0, 1) is given, the singular value decomposition is reduced to include only entries bigger than rtol*maximum(Σ). If rtol is an integer, the reduced SVD up to rtol is used for computation.

Fields

  • truncation

  • alg

Signatures

source
DataDrivenDMD.FBDMDType
mutable struct FBDMD{R} <: DataDrivenDMD.AbstractKoopmanAlgorithm

Approximates the Koopman operator K via the forward-backward DMD. It is assumed that K = sqrt(K₁*inv(K₂)), where K₁ is the approximation via forward and K₂ via DMDSVD. Based on this paper.

If truncation ∈ (0, 1) is given, the singular value decomposition is reduced to include only entries bigger than truncation*maximum(Σ). If truncation is an integer, the reduced SVD up to truncation is used for computation.

Fields

  • alg

Signatures

source