.. _edmd: Extended Dynamical Mode Decomposition ===================================== .. index:: pair: Extended Dynamical Mode Decomposition; EDMD Dynamical Mode Decomposition (DMD) is a a method for extracting underlying linear dynamics from complex non-linear data. This method originates in the general proof by Koopman that a finite dimensional non-linear dynamical flow maps on to a linear infinite dimensional flow. The theorem *does not* help us find that mapping and it's very hard in general. In essence, DMD is a high-dimensional finite approximation to the infinite dimensional mapping envisioned by Koopman (usually called a *Koopman operator*). In essence, the DMD is identifies the best-fit linear dynamical system in a least-squares sense from samples of a flow that advances high-dimensional measurements forwards in time. This is similar to and often justified by the mathematical structure of the Koopman operator which also advances the observation of a state at a given time to the next time step. Part of the growing attraction of DMD is attributed to its equation-free nature. Although some dynamical systems could be modeled from first principles (e.g. a set of ordinary differential equations), many dynamical systems have unknown governing equations. Even within systems with known dynamics, it is difficult uncover patterns that allow for the characterization of how dominant behaviors evolve in time. Koopman Operators ----------------- .. index:: pair: Extended Dynamical Mode Decomposition; Koopman operators Consider dynamical systems that can be modeled as: .. math:: \mathbf{\dot{x}} = \mathbf{F}(\mathbf{x}) where the current state :math:`\mathbf{x}` is an element a state space :math:`{\cal M}\in\mathbb{R}^n` and :math:`\mathbf{F}` is a flow field. If we discretize this problem we get: .. math:: \mathbf{x}_{j+1} = \mathbf{A}(\mathbf{x}_j) where :math:`\mathbf{A}` is the mapping that represents the mapping from time :math:`t=t_0 + hj` to :math:`t=t_0 + h(j+1)` where :math:`h` is the numerical integration time step. Since we are interested in the prediction of time-steps of the dynamical system such as an N-body simulation, we will be generally interested in this discrete time formulation. In 1931, Bernard Koopman [koopman31]_ proposed the existence of a compositional operator for any dynamical system that that results in linear system for the appropriate span of functions in Hilbert space. This composition is now known as the Koopman operator. It is usual written as follows: .. math:: {\cal K}(t)\mathbf{g}(\mathbf{x}) = \mathbf{g}\circ\mathbf{F}(t, \mathbf{x}) where :math:`{\cal K}` denotes the Koopman operator which is a linear transformation and :math:`\mathbf{F}` is the dynamical flow. This sounds too good to be true. And it is. The downfall here is that the Koopman operator updates some unknown vector of real valued functions of this dynamical system, usually called _observables_ which echos the origin of this idea in quantum mechanics. These _observable_ functions, :math:`g(\mathbf{x})` that make the system linear are unknown. In the language of functional analysis, the vector space of these observables is infinite. Figuratively, the use of Koopman operators as a trade off from simple set of physically motivated phase-space variables with non-linear dynamics to complicated set of functions with simple dynamics. .. note:: The following sections provides mathematical details of extended Dynamical Mode Decomposition for motivation of the method and to better describe its relationship to multichannel SSA, and its implementation in EXP. Feel free to skip this on your first read through. Some of this presentation partly follows [brunton21]_. Koopman Spectral Analysis ------------------------- .. index:: pair: Extended Dynamical Mode Decomposition; Koopman spectral analysis The discrete mapping version of the continuous Koopman operator has a very similar form: .. math:: {\cal K}\mathbf{g}(\mathbf{x}) = \mathbf{g}\circ\mathbf{A}(\mathbf{x}) Our end goal is an estimation of the operator :math:`{\cal K}` directly from the basis-function coefficients from our simulations. This estimation process is called extended Dynamical Mode Decomposition and will be described below. This will assume that the dynamics is time-indepdendent; that is, :math:`{\cal K}` and :math:`A` are indepdendent of time. Let us assume that we know the Koopman operator eigenfunctions of :math:`{\cal K}`: :math:`{\cal C}\phi_j = \lambda_j\phi_j` where :math:`j` may be countably infinite. In practice, we will have :math:`j