Quick Start

Example 1 — Solve an IVP (exponential decay):

import numpy as np
from differentialequations import ivpag

def f(t, y):
    return [-y[0]]

result = ivpag(f, t_span=(0.0, 5.0), y0=[1.0])
print(result.t[-1], result.y[0, -1])   # 5.0, ~0.0067

Example 2 — Harmonic oscillator (RK45):

import numpy as np
from differentialequations import ivprk

def harmonic(t, y):
    return [y[1], -y[0]]

result = ivprk(harmonic, t_span=(0.0, 2*np.pi), y0=[1.0, 0.0])
# After one full period, y returns to initial state
print(result.y[0, -1])   # ~1.0

Example 3 — BVP solver (y’’ + y = 0, y(0)=0, y(π/2)=1):

import numpy as np
from differentialequations import bvpfd

def ode(x, y):
    return np.vstack([y[1], -y[0]])

def bc(ya, yb):
    return np.array([ya[0], yb[0] - 1.0])

x = np.linspace(0, np.pi / 2, 20)
y_guess = np.zeros((2, x.size))
y_guess[0] = np.sin(x)

result = bvpfd(ode, bc, x, y_guess)
print(result.success)     # True
print(result.y[0, -1])    # ~1.0

Example 4 — Stiff DAE system:

from differentialequations import daspg

def stiff_f(t, y):
    return [-1000.0 * y[0], y[0]]

result = daspg(stiff_f, (0.0, 0.01), [1.0, 0.0], [-1000.0, 1.0])
print(result.success)   # True