{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/modern-koopman-theory-for-dynamical-systems","title":"Modern Koopman Theory for Dynamical Systems","arxiv_id":"2102.12086","date":"2021-02-24","proceeding":null,"authors":["Steven L. Brunton","Marko Budišić","Eurika Kaiser","J. Nathan Kutz"],"abstract":"The field of dynamical systems is being transformed by the mathematical tools and algorithms emerging from modern computing and data science. First-principles derivations and asymptotic reductions are giving way to data-driven approaches that formulate models in operator theoretic or probabilistic frameworks. Koopman spectral theory has emerged as a dominant perspective over the past decade, in which nonlinear dynamics are represented in terms of an infinite-dimensional linear operator acting on the space of all possible measurement functions of the system. This linear representation of nonlinear dynamics has tremendous potential to enable the prediction, estimation, and control of nonlinear systems with standard textbook methods developed for linear systems. However, obtaining finite-dimensional coordinate systems and embeddings in which the dynamics appear approximately linear remains a central open challenge. The success of Koopman analysis is due primarily to three key factors: 1) there exists rigorous theory connecting it to classical geometric approaches for dynamical systems, 2) the approach is formulated in terms of measurements, making it ideal for leveraging big-data and machine learning techniques, and 3) simple, yet powerful numerical algorithms, such as the dynamic mode decomposition (DMD), have been developed and extended to reduce Koopman theory to practice in real-world applications. In this review, we provide an overview of modern Koopman operator theory, describing recent theoretical and algorithmic developments and highlighting these methods with a diverse range of applications. We also discuss key advances and challenges in the rapidly growing field of machine learning that are likely to drive future developments and significantly transform the theoretical landscape of dynamical systems.","url_abs":"https://arxiv.org/abs/2102.12086v2","url_pdf":"https://arxiv.org/pdf/2102.12086v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"modern-koopman-theory-for-dynamical-systems","repo_url":"https://github.com/decargroup/pykoop","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null},{"paper_slug":"modern-koopman-theory-for-dynamical-systems","repo_url":"https://github.com/decarsg/pykoop","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"unanswered"}},{"paper_slug":"modern-koopman-theory-for-dynamical-systems","repo_url":"https://github.com/eurika-kaiser/koopman-mpc-comparison","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"unanswered"}},{"paper_slug":"modern-koopman-theory-for-dynamical-systems","repo_url":"https://github.com/datafold-dev/datafold","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"none","reach":{"status":"unanswered"}}],"tasks":[{"task_slug":"machine-learning","task_name":"BIG-bench Machine Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2102.12086","atlas_url":"https://app.syntology.ai/?focus=2102.12086","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2102.12086"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/decarsg/pykoop","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/datafold-dev/datafold","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/decargroup/pykoop","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/eurika-kaiser/koopman-mpc-comparison","reach":{"status":"unanswered"}}],"summary":{"unverified":3},"by_repo_kind":{"listed":{"samples":3,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"b1d763dc1b6b8b70","entry":"extract_initial_conditions","repo":"decargroup/pykoop","repo_kind":"listed","path":"pykoop/koopman_pipeline.py","file_url":"https://github.com/decargroup/pykoop/blob/HEAD/pykoop/koopman_pipeline.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b1d763dc1b6b8b70"}},{"code_sha256_prefix":"a848406483007869","entry":"extract_input","repo":"decargroup/pykoop","repo_kind":"listed","path":"pykoop/koopman_pipeline.py","file_url":"https://github.com/decargroup/pykoop/blob/HEAD/pykoop/koopman_pipeline.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a848406483007869"}},{"code_sha256_prefix":"fb88d899f1d3d923","entry":"score_trajectory","repo":"decargroup/pykoop","repo_kind":"listed","path":"pykoop/koopman_pipeline.py","file_url":"https://github.com/decargroup/pykoop/blob/HEAD/pykoop/koopman_pipeline.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fb88d899f1d3d923"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}