  The Koopman operator is a linear but infinite dimensional operator that
governs the evolution of scalar observables defined on the state space of an
autonomous dynamical system, and is a powerful tool for the analysis and
decomposition of nonlinear dynamical systems. In this manuscript, we present a
data driven method for approximating the leading eigenvalues, eigenfunctions,
and modes of the Koopman operator. The method requires a data set of snapshot
pairs and a dictionary of scalar observables, but does not require explicit
governing equations or interaction with a "black box" integrator. We will show
that this approach is, in effect, an extension of Dynamic Mode Decomposition
(DMD), which has been used to approximate the Koopman eigenvalues and modes.
Furthermore, if the data provided to the method are generated by a Markov
process instead of a deterministic dynamical system, the algorithm approximates
the eigenfunctions of the Kolmogorov backward equation, which could be
considered as the "stochastic Koopman operator" [1]. Finally, four illustrative
examples are presented: two that highlight the quantitative performance of the
method when presented with either deterministic or stochastic data, and two
that show potential applications of the Koopman eigenfunctions.
