These notes fill in some of the details of Section 2.1 of Kamb et al.’s “Time-Delay Observables for Koopman: Theory and Applications”. They were made by relying heavily on finite-dimensional intuition (operators as infinite-dimensional matrices), and by talking with ChatGPT, so likely contain errors.
We are interested in understanding the time evolution of a dynamical system $$ \dot \xx = f(\xx), $$ for some given well-behaved $f$.
Rather than studying the dynamics in this differential formulation, we can equivalently study them from an integral perspective: we can integrate the dynamics from some initial point $\xx_0$ to some desired time $t$ and get
$$ \xx(t) = F_t(\xx_0).$$ $F_t$ is the propagator of the state.
Unless the dynamics $f$ are very simple, $F_t$ will in general be some complicated nonlinear function. Koopman’s crucial idea was that if instead of tracking the state $\xx$ itself we instead track observables $g(\xx)$ of the state, then the dynamics of these observables is linear. The price we pay is that this linearity is in an infinite dimensional Hilbert space.
To see what he means, let’s pick an observable $$g: \mathbb R^N \to \mathbb C.$$ The notation just means that an observable maps the state, which lives in $\mathbb R^N$, to some potentially complex, scalar. Example observables could be as simple as taking the first dimension of the state: $$g(\xx) = x_1.$$ Another example would be the energy of the state: $$g(\xx) = \sum_{i=1}^N x_i^2.$$ We will call the space of all valid observables $\mathcal G$, and require that it be a Hilbert space.
A Koopman operator $K_t$, indexed by $t\ge 0$, maps an observable to its value at time $t$. That is, $$ K_t: \mathcal G \to \mathbb C, \quad K_t g = g( \xx (t)) = g \circ F_t.$$
The crucial observation is that $K_t$ is linear on the space of operators. That’s because, given any two operators $g , h \in \mathcal G$ and scalars $\alpha$ and $\beta$, $$ K_t (\alpha g + \beta h) = (\alpha g + \beta h)(\xx(t)) = \alpha g(\xx(t)) + \beta h(\xx(t)) = \alpha K_t g + \beta K_t h.$$
Linearity means that $K_t$ behaves like an (infinite-dimensional) matrix. In particular, it has an eigendecomposition, in terms of eigenfunctions $\phi$ and eigenvalues $\lambda$:
$$ K_t \phi_k = \phi_k \lambda_k.$$
In the same way that the eigenvectors of a matrix are each vectors and form a basis for the input space of the matrix, the eigenfunctions here are all observables and form a basis for the space of observables. That is, a given observable $g$ can be decomposed as $$ g = \sum_{k=1}^\infty \phi_k c_k,$$ where $c_k$ are the coefficients of the decomposition.
Just like in the finite-dimensional case of matrices, the action of $K_t$ is particularly simple to express in its eigenbasis: $$ \quad K_t g = \sum_{k=1}^\infty \phi_k \lambda_k c_k.$$
If $K_t$ happens to be Hermitian (think conjugate-symmetric matrix) then the $\phi_k$ form an orthonormal basis, and $c_k$ is particularly easy to compute as $$ c_k = \langle \phi_k , g \rangle = \int \phi_k(\xx) g(\xx) d\xx.$$
This is the Koopman mode decomposition and it’s clear why it has that name: we are decomposing an observable $g$ as a linear combination of Koopman modes $\phi_k$.
Time evolution
What have we achieved so far? If we have Koopman modes $\phi_k$, then we can evaluate the value of any observable $g$ at time $t$ by first determining the decomposition coefficients $c_k$, and then evaluating the (infinite!) sum $$ g(\xx(t)) = \sum_{k=1}^\infty \phi_k(\xx) \lambda_k c_j.$$
But a problem immediately presents itself: The above decompositions etc. are computed for a single time point $t$. We’re interested in the time-evolution of the observables i.e. their values at all $t\ge 0$. From the above, it looks like we’d have to compute a separate set of Koopman modes $\phi_k$ for every time point $t$! This would be computationally burdensome, at the very least.
Luckily for us, it turns out that the Koopman modes are the same for all time $t \ge 0$ – all that changes is the eigenvalues $\lambda_k$. In other words, the Koopman modes form a basis for the evolution of all observables under our dynamics.
To see why this is true, notice that the Koopman operators have the very special property that their contributions can be composed, as $$ K_{t+s} = K_t K_s.$$ This is because $$\begin{align}K_{t+s} g(\xx_0) &= g(\xx(t+s))\\ &= g(F_{t+s} (\xx_0))\\ &= g(F_t(F_s(\xx_0)))\\ &= K_t g(F_s(\xx_0))\\ &= K_t K_s g(\xx_0).\end{align}$$
Incidentally, this means the operators form a one-parameter semi-group (group without inverse), though we won’t use that explicitly here.
Because of the property above, we can describe $K_t$, which propagates the state for a time interval $t$, as the repeated action of a generator $\mathcal K$ that propagates the state some infinitesimal amount.
To see this, fix some $\Delta t$, and let $N = t/\Delta t.$ Then since $t = t/\Delta t + \dots (N-2 \text{ times} ) + \dots t/\Delta t,$
$$ K_t = K_{\Delta t} \dots (N-2 \text { times} ) \dots K_{\Delta t} g = (K_{\Delta t})^N .$$
$K_{\Delta t}$ propagates the observables by an amount $\Delta t$. We can Taylor approximate it around $t= 0$ as
$$K_{\Delta t} = K_0 + \Delta \mathcal K + O(\Delta^2).$$
$K_0$ is just the identity. The generator $\mathcal K$ is the derivative of the operator at $t = 0$, defined as
$$ \mathcal K = \lim_{t \to 0^+} {K_t – K_0 \over t} = \lim_{t \to 0^+} {K_t – I \over t}.$$
Our definition of $K_t$ in terms of $K_{\Delta t}$ holds for any $\Delta t$. In particular, we can take the limit $\Delta t \to 0$ and get
$$K_t = \lim_{\Delta t \to 0} (K_{\Delta t})^N = \lim_{\Delta t \to 0} (I + \Delta \mathcal K)^{t/\Delta t} = e^{t \mathcal K}.$$
Then, analogously with how the matrix exponential works in the finite-dimensional case, we can write
$$K_t = [\phi_1, \phi_2, \dots ] \text{diag}(e^{\lambda_1 t}, e^{\lambda_2 t}, \dots ) [\phi_1, \phi_2, \dots]^{-1}.$$ Here $\phi_k$ are the eigenfunctions of the generator, and $\lambda_k$ its eigenvalues.
What all this means is that all of the Koopman operators have the same basis $\phi_k$, differing only in their eigenvalues $e^{\lambda)_k t}$. The time-evolution of the observable can be computed by simply changing the time index in the Koopman mode decomposition
$$ K_t g = \sum_{k=1}^\infty e^{\lambda_k t} c_k \phi_k.$$
Summary
We’ve shown how Koopman operators allow us to convert the problem of tracking the state evolution of a potentially nonlinear dynamical system into the linear evolution of observables of the state. This is done by projecting the observable into an infinite basis of Koopman modes, which are eigenfunctions of the generator, and exponentially evolving the coefficients of the projection according to the eigenvalues of the generator and the time index $t$.
It remains to be seen how to compute the eigenfunctions, and which observables to use.
Leave a Reply