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