Skip to main content

A Python package to discover Differential Algebraic Equations from data.

Project description

DaeFinder

DaeFinder is a Python package designed to discover Differential Algebraic Equations (DAEs) from noisy data using sparse optimization framework. It is based on the SODAs algorithm developed by the researchers in the Mangan Group at Northwestern University. The associated research paper will soon be available on arXiv, and a link will be provided here once published.

If you use DaeFinder for your development or research, please cite the SODAs paper once it is available.


Author and Contributors

  • Manu Jayadharan (Primary Developer)
  • Christina Catlett
  • Arthur Montanari
  • Niall Mangan

Features

  • Decoupling of Algebraic and Dynamic Equations
  • Smoothening noisy data and calculating derivatives.
  • Generate polynomial features for regression models.
  • Support for sparse feature coupling.
  • SVD Analysis.
  • Example notebooks for practical demonstrations including chemical reaction networks, power grid networks, etc.

Dependencies

The following Python packages are required to use DaeFinder:

  • numpy
  • scipy
  • pandas
  • sympy
  • scikit-learn
  • matplotlib
  • joblib

Installation

To install the DaeFinder package, follow these steps:

  1. Ensure you have Python 3.7 or higher installed.
  2. Install the package using pip:
    pip install DaeFinder
    

Examples

Walkthrough notebooks are available in the Examples/ folder of the repository. These notebooks include:

  • A step-by-step guide to using DaeFinder.
  • Application to chemical reaction network, non-linear pendulum, power grid, etc.

For examples that require additional data (e.g., the power grid example), the data files are included in the GitHub repository. Be sure to download the required datasets from the relevant folders in the repository.

Known Issues

  • The parallel function currently has some bugs that need fixing.
  • If you encounter issues with the installation or the package itself, please feel free to contact the authors or contributors.

Contributing

We welcome contributions to improve DaeFinder! If you are interested in contributing to the package or working on related research, please reach out to the author or the Mangan Group.

Contact

For any questions, issues, or collaboration inquiries, please contact:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

daefinder-0.2.1.tar.gz (34.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

DaeFinder-0.2.1-py3-none-any.whl (15.5 kB view details)

Uploaded Python 3

File details

Details for the file daefinder-0.2.1.tar.gz.

File metadata

  • Download URL: daefinder-0.2.1.tar.gz
  • Upload date:
  • Size: 34.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.3

File hashes

Hashes for daefinder-0.2.1.tar.gz
Algorithm Hash digest
SHA256 4a90eefb6dbddc76e70491fe69b363a3cd36432ec2ebd5260e10e209a686df44
MD5 8026bba7708723359322f7eeb4846583
BLAKE2b-256 e0cba8fef03cc49d8ce7c28f2c21d2560cbc0f9fecb9222f31c0a4a2f9c0d206

See more details on using hashes here.

File details

Details for the file DaeFinder-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: DaeFinder-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 15.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.3

File hashes

Hashes for DaeFinder-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1a5df5a9c5adb19d0ba30afa491c70a9d190e2c7f7e0b9a947397bddf0a99a03
MD5 01f1309d7a1c4642d95ce210d1a9345d
BLAKE2b-256 26f88bb078b63b23e332f95c2a041194aa5607f90d9c056dbf0982b114297997

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page