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.DMDPINV
— Typemutable 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
DataDrivenDMD.DMDSVD
— Typemutable 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
DataDrivenDMD.TOTALDMD
— Typemutable 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
DataDrivenDMD.FBDMD
— Typemutable 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