first-order-odes
npx machina-cli add skill parcadei/Continuous-Claude-v3/first-order-odes --openclawFirst Order Odes
When to Use
Use this skill when working on first-order-odes problems in odes pdes.
Decision Tree
-
Classify the ODE
- Linear: y' + P(x)y = Q(x)?
- Separable: y' = f(x)g(y)?
- Exact: M(x,y)dx + N(x,y)dy = 0 with dM/dy = dN/dx?
- Bernoulli: y' + P(x)y = Q(x)y^n?
-
Select Solution Method
Type Method Separable Separate and integrate Linear Integrating factor e^{int P dx} Exact Find potential function Bernoulli Substitute v = y^{1-n} -
Numerical Solution (IVP)
scipy.integrate.solve_ivp(f, [t0, tf], y0, method='RK45')- For stiff systems:
method='Radau'ormethod='BDF' - Adaptive step size: specify rtol/atol, not step size
-
Verify Solution
- Substitute back into ODE
- Check initial/boundary conditions
sympy_compute.py dsolve "y' + y = x" --ics "{y(0): 1}"
-
Phase Portrait (Autonomous)
- Find equilibria: f(y*) = 0
- Analyze stability: sign of f'(y*)
z3_solve.py solve "dy/dt == 0"
Tool Commands
Scipy_Solve_Ivp
uv run python -c "from scipy.integrate import solve_ivp; sol = solve_ivp(lambda t, y: -y, [0, 5], [1]); print('y(5) =', sol.y[0][-1])"
Sympy_Dsolve
uv run python -m runtime.harness scripts/sympy_compute.py dsolve "Derivative(y,x) + y" --ics "{y(0): 1}"
Z3_Equilibrium
uv run python -m runtime.harness scripts/z3_solve.py solve "f(y_star) == 0"
Key Techniques
From indexed textbooks:
- [Elementary Differential Equations and... (Z-Library)] Solving ODEs with MATLAB (New York: Cambridge REFERENCES cyan black NJ: Prentice-Hall, 1971). Mattheij, Robert, and Molenaar, Jaap, Ordinary Differential Equations in Theory and Practice Shampine, Lawrence F. Numerical Solution of Ordinary Differential Equations (New York: Chapman and Shampine, L.
- [Elementary Differential Equations and... (Z-Library)] Differential Equations: An Introduction to Modern Methods and Applications (2nd ed. Use the Laplace transform to solve the system 2e−t 3t α1 α2 , where α1 and α2 are arbitrary. How must α1 and α2 be chosen so that the solution is identical to Eq.
- [An Introduction to Numerical Analysis... (Z-Library)] Modern Numerical Methods for Ordinary Wiley, New York. User's guide for DVERK: A subroutine for solving non-stiff ODEs. Keller (1966), Analysis of Numerical Methods.
- [Elementary Differential Equations and... (Z-Library)] Show that the rst order Adams–Bashforth method is the Euler method and that the rst order Adams–Moulton method is the backward Euler method. Show that the third order Adams–Moulton formula is yn+1 = yn + (h/12)(5fn+1 + 8fn − fn−1). Derive the second order backward differentiation formula given by Eq.
- [An Introduction to Numerical Analysis... (Z-Library)] Test results on initial value methods for non-stiff ordinary differential equations, SIAM J. Comparing numerical methods for Fehlberg, E. Klassische Runge-Kutta-Formeln vierter und niedrigerer Ordnumg mit Schrittweiten-Kontrolle und ihre Anwendung auf Warme leitungsprobleme, Computing 6, 61-71.
Cognitive Tools Reference
See .claude/skills/math-mode/SKILL.md for full tool documentation.
Source
git clone https://github.com/parcadei/Continuous-Claude-v3/blob/main/.claude/skills/math/odes-pdes/first-order-odes/SKILL.mdView on GitHub Overview
Guides classification of first-order ODEs (linear, separable, exact, Bernoulli) and matching solution methods, with practical steps for analytical and numerical IVP solutions, verification, and phase-portrait analysis.
How This Skill Works
Begin by classifying the ODE as linear, separable, exact, or Bernoulli. Choose the corresponding method: integrating factor for linear, separation for separable, potential function for exact, or a Bernoulli substitution. For IVPs, use SciPy solve_ivp with appropriate tolerances and consider stiff solvers like Radau or BDF, then verify the solution and, if autonomous, analyze equilibria and stability through a phase portrait.
When to Use It
- You need to identify the ODE type to select an effective solution method.
- You are solving a first-order ODE that is separable, linear, exact, or Bernoulli.
- You are solving an initial value problem (IVP) and may need a numerical method.
- You want to verify the obtained solution by substitution and boundary conditions.
- You are analyzing long-term behavior via a phase portrait and equilibria.
Quick Start
- Step 1: Classify the ODE as linear, separable, exact, or Bernoulli.
- Step 2: Apply the appropriate analytical method (integrating factor, separation, exact function, or Bernoulli substitution).
- Step 3: If solving a numerical IVP, use SciPy solve_ivp with a suitable method and tolerances; verify the solution and, for autonomous cases, inspect equilibria.
Best Practices
- Classify the ODE first (linear, separable, exact, Bernoulli) to pick a targeted method.
- Use the integrating factor e^{∫P dx} for linear equations of the form y' + P(x)y = Q(x).
- For separable equations, rewrite as dy/dx = f(x)g(y) and integrate both sides.
- When solving numerically, choose solve_ivp and, for stiff problems, Radau or BDF with appropriate rtol/atol.
- Always verify by substituting back and checking initial/boundary conditions; analyze equilibrium for autonomous systems.
Example Use Cases
- Solve a linear ODE: y' + P(x)y = Q(x) using an integrating factor.
- Solve a separable ODE: y' = f(x)g(y) by separation and direct integration.
- Solve an exact ODE: M(x,y)dx + N(x,y)dy = 0 with dM/dy = dN/dx.
- Solve a Bernoulli equation: y' + P(x)y = Q(x)y^n by substituting v = y^{1-n}.
- Numerical IVP: solve y' = -y with y(0)=1 from t=0 to 5 using solve_ivp.