Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Solving differential equations in Python using DifferentialEquations.jl and the SciML Scientific Machine Learning organization
| Date | Stars |
|---|---|
| 2026-07-31 | 606 |
| 2026-08-02 | 607 |
| 2026-08-06 | 607 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
15.0
growth rate 0.00%/day
# diffeqpy
[](https://gitter.im/JuliaDiffEq/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[](https://github.com/SciML/diffeqpy/actions)
diffeqpy is a package for solving differential equations in Python. It utilizes
[DifferentialEquations.jl](https://docs.sciml.ai/DiffEqDocs/stable/) for its core routines
to give high performance solving of many different types of differential equations,
including:
- Discrete equations (function maps, discrete stochastic (Gillespie/Markov)
simulations)
- Ordinary differential equations (ODEs)
- Split and Partitioned ODEs (Symplectic integrators, IMEX Methods)
- Stochastic ordinary differential equations (SODEs or SDEs)
- Random differential equations (RODEs or RDEs)
- Differential algebraic equations (DAEs)
- Delay differential equations (DDEs)
- Mixed discrete and continuous equations (Hybrid Equations, Jump Diffusions)
directly in Python.
If you have any questions, or just want to chat about solvers/using the package,
please feel free to chat in the [Gitter channel](https://gitter.im/JuliaDiffEq/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge). For bug reports, feature requests, etc., please submit an issue.
## Installation
To install diffeqpy, use pip:
```
pip install diffeqpy
```
and you're good!
## Colab Notebook Examples
- [Solving the Lorenz equation faster than SciPy+Numba](https://colab.research.google.com/drive/1SQCu1puMQO01i3oMg0TXfa1uf7BqgsEW?usp=sharing)
- [Solving ODEs on GPUs Fast in Python with diffeqpy](https://colab.research.google.com/drive/1bnQMdNvg0AL-LyPcXBiH10jBij5QUmtY?usp=sharing)
## General Flow
Import and setup the solvers available in *DifferentialEquations.jl* via the command:
```py
from diffeqpy import de
```
If only the solvers available in *OrdinaryDiffEq.jl* are required, then use the command:
```py
from diffeqpy import ode
```
The general flow for using the package is to follow exactly as would be done
in Julia, except add `de.` or `ode.` in front. Note that `ode.` has a shorter loading time and a smaller memory footprint compared to `de.`.
Most of the commands will work without any modification. Thus
[the DifferentialEquations.jl documentation](https://github.com/SciML/DifferentialEquations.jl)
and the [DiffEqTutorials](https://github.com/SciML/DiffEqTutorials.jl)
are the main in-depth documentation for this package. Below we will show how to
translate these docs to Python code.
## Note about !
Python does not allow `!` in function names, so this is also [a limitation of pyjulia](https://pyjulia.readthedocs.io/en/latest/limitations.html#mismatch-in-valid-set-of-identifiers).
To use functions which on the Julia side have a `!`, like `step!`, replace `!` by `_b`. For example:
```py
from diffeqpy import de
def f(u,p,t):
return -u
u0 = 0.5
tspan = (0., 1.)
prob = de.ODEProblem(f, u0, tspan)
integrator = de.init(prob, de.Tsit5())
de.step_b(integrator)
```
is valid Python code for using [the integrator interface](https://docs.sciml.ai/DiffEqDocs/stable/basics/integrator/).
## Ordinary Differential Equation (ODE) Examples
### One-dimensional ODEs
```py
from diffeqpy import de
def f(u,p,t):
return -u
u0 = 0.5
tspan = (0., 1.)
prob = de.ODEProblem(f, u0, tspan)
sol = de.solve(prob)
```
The solution object is the same as the one described
[in the DiffEq tutorials](https://docs.sciml.ai/DiffEqDocs/stable/tutorials/ode_example/#Step-3:-Analyzing-the-Solution)
and in the [solution handling documentation](https://docs.sciml.ai/DiffEqDocs/stable/basics/solution/)
(note: the array interface is missing). Thus for example the solution time points
are saved in `sol.t` and the solution values are saved in `sol.u`. Additionally,
the interpolation `sol(t)` gives a continuous solution.
We can plot the solution valueExcerpt of 25,988 characters
Read on GitHubChristopher Rackauckas · Massachusetts Institute of Technology · United States
152
61
Lilith Orion Hafner
8
Claude · @anthropics
5
Chris Rackauckas - Beep Boop Edition
2
2
1
1
1
1
Anshul Singhvi · @JuliaComputing · Morocco
1
1
Páll Haraldsson · Iceland
1
Aayush Sabharwal · JuliaHub
1
1
Would you bet a product on this? Bounded 0–100 and slow moving.
Not classified yet. Classification runs as part of npm run ingest.