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.
High performance ordinary differential equation (ODE) and differential-algebraic equation (DAE) solvers, including neural ordinary differential equations (neural ODEs) and scientific machine learning (SciML)
| Date | Stars |
|---|---|
| 2026-07-31 | 664 |
| 2026-08-03 | 665 |
| 2026-08-06 | 667 |
Today
+2 stars today
This week
— stars this week
This month
— stars this month
Momentum
43.0
growth rate 0.00%/day
# OrdinaryDiffEq.jl
[](https://julialang.zulipchat.com/#narrow/stream/279055-sciml-bridged)
[](https://docs.sciml.ai/OrdinaryDiffEq/stable/)
[](https://app.codecov.io/gh/SciML/OrdinaryDiffEq.jl)
[](https://github.com/SciML/OrdinaryDiffEq.jl/actions?query=workflow%3ACI)
[](https://buildkite.com/julialang/ordinarydiffeq-dot-jl)
[](https://github.com/SciML/ColPrac)
[](https://github.com/SciML/SciMLStyle)
OrdinaryDiffEq.jl is a component package in the DifferentialEquations ecosystem. It holds the
ordinary differential equation solvers and utilities. While completely independent
and usable on its own, users interested in using this
functionality should check out [DifferentialEquations.jl](https://github.com/SciML/DifferentialEquations.jl).
## Installation
Assuming that you already have Julia correctly installed, it suffices to import
OrdinaryDiffEq.jl in the standard way:
```julia
import Pkg;
Pkg.add("OrdinaryDiffEq");
```
## v7 Breaking Changes
OrdinaryDiffEq v7 bumps to **SciMLBase v3** and **RecursiveArrayTools v4** with breaking changes across all sublibraries. See [NEWS.md](NEWS.md) for the full migration guide.
## API
OrdinaryDiffEq.jl is part of the SciML common interface, but can be used independently of DifferentialEquations.jl. The only requirement is that the user passes an OrdinaryDiffEq.jl algorithm to `solve`. For example, we can solve the [ODE tutorial from the docs](https://docs.sciml.ai/DiffEqDocs/stable/getting_started/#ode_example) using the `Tsit5()` algorithm:
```julia
using OrdinaryDiffEq
f(u, p, t) = 1.01 * u
u0 = 1 / 2
tspan = (0.0, 1.0)
prob = ODEProblem(f, u0, tspan)
sol = solve(prob, Tsit5(), reltol = 1e-8, abstol = 1e-8)
using Plots
plot(sol, linewidth = 5, title = "Solution to the linear ODE with a thick line",
xaxis = "Time (t)", yaxis = "u(t) (in μm)", label = "My Thick Line!") # legend=false
plot!(sol.t, t -> 0.5 * exp(1.01 * t), lw = 3, ls = :dash, label = "True Solution!")
```
That example uses the out-of-place syntax `f(u,p,t)`, while the in-place syntax (more efficient for systems of equations) is shown in the Lorenz example:
```julia
using OrdinaryDiffEq
function lorenz!(du, u, p, t)
du[1] = 10.0 * (u[2] - u[1])
du[2] = u[1] * (28.0 - u[3]) - u[2]
du[3] = u[1] * u[2] - (8 / 3) * u[3]
end
u0 = [1.0; 0.0; 0.0]
tspan = (0.0, 100.0)
prob = ODEProblem(lorenz!, u0, tspan)
sol = solve(prob, Tsit5())
using Plots;
plot(sol, idxs = (1, 2, 3))
```
Very fast static array versions can be specifically compiled to the size of your model. For example:
```julia
using OrdinaryDiffEq, StaticArrays
function lorenz(u, p, t)
SA[10.0 * (u[2] - u[1]), u[1] * (28.0 - u[3]) - u[2], u[1] * u[2] - (8 / 3) * u[3]]
end
u0 = SA[1.0; 0.0; 0.0]
tspan = (0.0, 100.0)
prob = ODEProblem(lorenz, u0, tspan)
sol = solve(prob, Tsit5())
```
For "refined ODEs", like dynamical equations and `SecondOrderODEProblem`s, refer to the [DiffEqDocs](https://docs.sciml.ai/DiffEqDocs/stable/types/ode_types/). For example, the harmonic oscillator equations can be solved using symplectic methods. The harmonic oscillator is described by:
$$\ddot{x} + \omega^2 x = 0$$
which is equivalent to the first-order system:
$$\dot{x} = v$$
$$\dot{v} = -\omega^2 x$Excerpt of 5,527 characters
Read on GitHubChristopher Rackauckas · Massachusetts Institute of Technology · United States
6.3k
Yingbo Ma · @JuliaComputing · Morocco
889
Param Thakkar · India
600
454
Chris Rackauckas - Beep Boop Edition
287
David Müller-Widmann · @PumasAI · Sweden
275
255
244
235
Hendrik Ranocha · Johannes Gutenberg University Mainz · Germany
224
Kanav Gupta
180
180
Claude · @anthropics
150
128
119
Arno Strouwen
104
98
90
74
63
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:7645d97036865513, llm:repository topics and description: 'differential-equations, ode, ordinary-differential-equations, scientific-machine-learning, neural ordinary differential equations (neural ODEs)', README indicates high-performance ODE/DAE solvers and SciML integration
matched fp:7645d97036865513, llm:repository topics and description: 'differential-equations, ode, ordinary-differential-equations, scientific-machine-learning, neural ordinary differential equations (neural ODEs)', README indicates high-performance ODE/DAE solvers and SciML integration
matched fp:7645d97036865513, llm:repository topics and description: 'differential-equations, ode, ordinary-differential-equations, scientific-machine-learning, neural ordinary differential equations (neural ODEs)', README indicates high-performance ODE/DAE solvers and SciML integration