Welcome back. In today’s blog post, I am excited to discuss Koopman operator theory, which provides a mathematical framework for representing nonlinear dynamics as a linear system. This theory was originally developed by Columbia University professor Bernard Koopman in 1931 [1], but remained in relative obscurity until the 2000s, when modern computers allowed it to be applied in fluid mechanics research [2]. Koopman operator theory was compelling for many fluid dynamicists because fluid flows are nonlinear, and it can be very challenging to model and control them. However, with a linear representation of a flow field, researchers can apply classical linear systems techniques to uncover flow physics, and design control laws using traditional methods from linear control theory, such as the linear quadratic regulator (LQR). While Koopman operator theory has its limitations, and some researchers have moved on to different tools, it is still a fascinating piece of mathematics that is worth exploring. Therefore, I will provide a brief introduction to what the Koopman operator is, and how it can be represented in continuous and discrete-time settings. I will then discuss the importance of eigenfunctions of the Koopman operator, and conclude with some brief considerations of the challenges and limitations of this framework.
Koopman Operator for Continuous-Time Dynamical Systems
Suppose we have a continuous-time dynamical system of the form:
dx/dt = f(x), (1)
for some state vector x ∈ ℝn and nonlinear vector field f: ℝn→ ℝn. The system could represent a discretization of the Navier-Stokes equations on a grid for computational fluid dynamics (CFD) simulations. Now suppose there is a function g: ℝn→ ℝ that takes the state vector x and maps it to some measurement of the state vector, g(x). It turns out that the dynamics of g(x) can actually be represented represented as a linear dynamical system for some linear operator K, called the Koopman operator:
d/dt g(x) = K g(x). (2)
This is absolutely amazing, but there is a slight technicality in that K is an infinite-dimensional operator that acts on the entire function space of measurements g. This presents some difficulties in computing K that we will explore in a moment.
Koopman Operator for Discrete-Time Dynamical Systems
The Koopman operator can also be defined for a discrete-time dynamical system, of the form:
xk+1 = f(xk). (3)
In this case, the Koopman operator pushes measurements of the state at time k to measurements of the state at time k + 1:
g(xk+1) = K g(xk). (4)
This discrete-time formulation can be useful for dynamical systems modeled on computers, since numerical integrators always have a finite-step size, and discrete-time operators can be defined for continuous-time systems using the flow map. (For more information on the flow map, please check out any of the blogs on the finite-time Lyapunov exponent!)
Eigenfunctions of the Koopman Operator in Continuous-Time
Since the Koopman operator is infinite-dimensional, it can be challenging to compute it. However, one possible remedy is to define the measurement g in terms of a finite set of basis functions that form an invariant subspace under the Koopman operator. If this can be done, then g(x(t)) can be represented in terms of the same finite set of basis functions at any time t, and the action of the Koopman operator on those basis functions can be represented in terms of a finite-dimensional matrix. A natural set of basis functions of a Koopman-invariant subspace are eigenfunctions of the Koopman operator.
Suppose that 𝜑j is an eigenfunction of the Koopman operator with eigenvalue 𝜆j, which obeys the relation:
K 𝜑j = 𝜆j 𝜑j. (5)
Also suppose, now, that g can be written as a finite linear combination of eigenfunctions:
g(x) = ∑1 ≤ j ≤ n 𝜑j vj, (6)
where vj is a Koopman mode. Then, the action of the Koopman operator on g(x) can be represented as:
d/dt g(x) = K g(x) = ∑1 ≤ j ≤ n K 𝜑j(x) vj = ∑1 ≤ j ≤ n 𝜆j 𝜑j(x) vj. (7)
The above equation represents a finite-dimensional linear system that can be solved using standard methods. Under “nice” conditions, the solution can be written as:
g(x(t)) = ∑1 ≤ j ≤ n exp(𝜆j t) 𝜑j(x(0)) vj. (8)
Furthermore, a useful partial differential equation (PDE) for the eigenfunctions can be written by substituting 𝜑j for g in equation (2) and applying the chain rule to the left-hand side:
(∂𝜑j/∂x) f(x) = 𝜆j 𝜑j. (9)
Although this PDE for 𝜑j and 𝜆j can be insightful, it is also challenging to solve since it has varying coefficients defined by f(x).
Eigenfunctions of the Koopman Operator in Discrete-Time
Koopman-invariant subspaces can also be defined in discrete-time using eigenfunctions of the discrete-time Koopman operator. In this case, the eigenfunctions 𝜑j and eigenvalues 𝜆j still obey equation (5), and we suppose that an observable g can still be expressed by equation (6). However, the action of the Koopman operator on the observable now becomes:
g(xk+1) = K g(xk) = ∑1 ≤ j ≤ n K 𝜑j(xk) vj = ∑1 ≤ j ≤ n 𝜆j 𝜑j(xk) vj. (10)
From this linear recursion, it can be shown that:
g(xk) = ∑1 ≤ j ≤ n 𝜆jk 𝜑j(x0) vj. (11)
Therefore, the dynamics of g(xk) can be represented quite cleanly, in terms of the Koopman eigenvalues, eigenfunctions, and modes.
Conclusion
I hope I have conveyed the basics of Koopman operator theory, and provided some motivation for why it might be useful when researching nonlinear systems. We have seen that measurements of a state vector are governed by linear finite-dimensional systems as long as the measurements can be represented by a finite set of Koopman eigenfunctions. One of the limitations of Koopman theory is that eigenfunctions are generally difficult to compute, so the theory might have limited applicability in complex systems where eigenfunctions cannot easily be found. Another limitation is that linear systems cannot have coexisting isolated stationary states. Therefore, it can be challenging to adapt Koopman theory to model dynamics between multiple fixed points. In spite of these challenges, the Koopman operator has proved useful for many research projects in fluid mechanics, and therefore deserves to be studied. In future blog posts, I look forward to exploring the Koopman operator in more detail. Until then, please take care.
References
[1] Koopman, B. O. (1931). “Hamiltonian Systems and Transformations in Hilbert Space”. Proceedings of the National Academy of Sciences. 17(5): 315–318.
[2] Mezic, I. (2013). “Analysis of fluid flows via spectral properties of the Koopman operator“. Annual Review of Fluid Mechanics. 45:357–78.
Leave a Reply