Skip to main content

A Python package for solving differential equations with neural networks

Project description

neurodiffeq

Build Status codecov Documentation Status DOI

Introduction

neurodiffeq is a package for solving differential equations with neural networks. Differential equations are equations that relate some function with its derivatives. They emerge in various scientific and engineering domains. Traditionally these problems can be solved by numerical methods (e.g. finite difference, finite element). While these methods are effective and adequate, their expressibility is limited by their function representation. It would be interesting if we can compute solutions for differential equations that are continuous and differentiable.

As universal function approximators, artificial neural networks have been shown to have the potential to solve ordinary differential equations (ODEs) and partial differential equations (PDEs) with certain initial/boundary conditions. The aim of neurodiffeq is to implement these existing techniques of using ANN to solve differential equations in a way that allow the software to be flexible enough to work on a wide range of user-defined problems.

Installation

Install via pip (or pip3)

We are hosting neurodiffeq in PyPI shortly. By the time you read this, you should be able to install neurodiffeq by simply running

pip install neurodiffeq 
# or try: pip3 install neurodiffeq

Manual Install

Alternatively, you can install the library manually, which allows you to make changes and contribute to this project.

  1. (optional) Create a new environment. With conda: conda create --name [name of the new environment] python=3.7 and activate the enviroment by conda activate [name of the new environment]; With venv: python3 -m venv temp [path to the new environment] and activate the environment by source [path to the new environment]/bin/activate

  2. Clone the repo by git clone https://github.com/odegym/neurodiffeq.git and cd into the root directory of the repo by cd neurodiffeq

  3. Install the dependencies by pip install -r requirements.txt and install neurodiffeq by pip install .

  4. (optional) Run tests by

for file in tests/test*py; do 
    pytest $file;
done

Note: running all tests together using pytest or pytest tests/test*py will not pass due to this issue.

  1. (optional) Deactivate the environment. With conda: conda deactivate; With venv: deactivate

Getting Started

For basic use of neurodiffeq, please check the documentation hosted on ReadTheDocs

Contributing

Thanks for your interest to contribute!

When contributing to this repository, we consider the following process:

  1. Open an issue to discuss the change you are planning to make

  2. Make the change on a forked repository and update the README.md if changes are made to the interface

  3. Open a pull request

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

neurodiffeq-0.1.0.tar.gz (65.4 kB view hashes)

Uploaded Source

Built Distribution

neurodiffeq-0.1.0-py3-none-any.whl (71.6 kB view hashes)

Uploaded Python 3

Supported by

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