pykoop: a Python Library for Koopman Operator Approximation
pykoop is a Python package for learning differential equations in discretized form using the Koopman operator.Differential equations are an essential tool for modelling the physical world.Ordinary differential equations can be used to describe electric circuits, rigid-body dynamics, or chemical reaction rates, while the fundamental laws of electromagnetism, fluid dynamics, and heat transfer can be formulated as partial differential equations.The Koopman operator allows nonlinear differential equations to be rewritten as infinite-dimensional linear differential equations by viewing their time evolution in terms of an infinite number of nonlinear lifting functions.A finite-dimensional approximation of the Koopman operator can be identified from data given a user-selected set of lifting functions.Thanks to its linearity, the approximate Koopman model can be used for analysis, design, and optimal controller or observer synthesis for a wide range of systems using well-established linear tools.pykoop's documentation, along with examples in script and notebook form, can be found at at pykoop.readthedocs.io/en/stable.Its releases are also archived on Zenodo (Dahdah & Forbes, 2024b).
Authors
- Steven Dahdah (ORCID: https://orcid.org/0000-0003-4930-9634)
- James Richard Forbes (ORCID: https://orcid.org/0000-0002-1987-9268)
Institutions
- McGill University (CA)
Publication Details
- Journal
- The Journal of Open Source Software
- Published
- 2025-10-03
- DOI
- https://doi.org/10.21105/joss.07947
- Primary Topic
- Model Reduction and Neural Networks
- Type
- article
- Field-Weighted Citation Impact
- 0.00
Funders
- Canadian Institute for Advanced Research
- Mitacs
- Institut de Valorisation des Données
- Natural Sciences and Engineering Research Council of Canada
- Fonds de recherche du Québec – Nature et technologies