differential-equations-ai999x — offline, verified differential equations solver with step-by-step answers
Install · Capability guide · Evaluation · AI999X on Hugging Face · Website · Support: Buy Me a Coffee
License: Apache-2.0 · Author: Ibnul Jaif Farabi (creator and engineer) · Organization: AI999X · Version 1.0.2
Field: Mathematics & Statistics · Tasks: Question Answering, Token Classification, Text Classification, Sentence Similarity, Feature Extraction
differential-equations-ai999x is an offline, deterministic Python solver that answers differential equations questions with verified results from 77 certified capabilities, gives 269 documented answers identically on Windows and Linux, and refuses rather than guesses when an answer cannot be verified.
differential-equations-ai999x is a compact, deterministic differential equations engine for Python. It reads a question in plain English (or a typed call), picks a certified differential equations capability, computes the answer exactly, checks it, and returns the result with its steps, units, LaTeX and assumptions — or an honest refusal that says what is missing. It runs fully offline on any CPU, needs no GPU, no API key and no internet, and is built to give zero wrong answers: when it is not sure, it refuses instead of guessing.
Highlights
- Verified, not generated. Every answer is computed by a certified differential equations capability and checked (substituted back, dimension-checked or compared with an independent computation) before it is returned.
- Zero wrong answers by design. Seven explicit outcomes — SOLVED, NEEDS_INPUT, AMBIGUOUS, INVALID_INPUT, OUT_OF_SCOPE, UNRECOGNIZED_FORMAT, INTERNAL_ERROR — never a silent guess. Every one of its 269 documented answers is reproduced exactly on every tested platform.
- Plain-English questions and a guaranteed typed interface.
ask()reads documented question forms;solve(capability_id, **inputs)always solves a supported task with valid inputs. - Explains itself. Steps, formulas in LaTeX, units, assumptions and the model used, ready for notebooks, tutoring apps and homework checkers.
- Small and portable. Pure Python (sympy, mpmath); identical answers on Windows and Linux (Python 3.10, 3.11, 3.12, 3.13, 3.14).
- Coverage: first- and second-order ODEs, Laplace transforms, linear systems and phase portraits, stability, numerical methods, heat/wave/Laplace equations and dynamical systems.
Model overview
| Property | Value |
|---|---|
| Package | differential-equations-ai999x 1.0.2 (import differential_equations_ai999x) |
| Type | Deterministic neuro-symbolic differential equations engine (rule-based reading + certified symbolic capabilities) |
| Capabilities | 77 certified procedures |
| Knowledge pack | version 1.0.0 |
| Golden answers | 269 documented answers, identical on every tested platform |
| Platforms tested | Windows (Python 3.13), Linux x86-64 (Python 3.10, 3.11, 3.12, 3.13, 3.14) |
| Runtime | CPU only, offline; no GPU, no network, no API key |
| License | Apache-2.0 |
| Creator / engineer | Ibnul Jaif Farabi |
| Organization | AI999X |
Quickstart
pip install differential-equations-ai999x
import differential_equations_ai999x as differential_equations
differential_equations.ask("Solve y'' + 3y' + 2y = 0 with y(0) = 1, y'(0) = 0; find y(1).").show()
# -> SOLVED — y = 0.600424, damping = overdamped (second_order_homogeneous_ivp)
differential_equations.ask("Logistic growth with P0 = 10, r = 0.5, K = 1000; find P(8).").show()
# -> SOLVED — P = 355.461 (logistic_value)
differential_equations.ask("Find the inverse Laplace transform of (s + 3)/(s^2 + 3s + 2) at t = 1.").show()
# -> SOLVED — f = 0.600424, poles = [-2.0, -1.0] (inverse_laplace_transform)
differential_equations.solve("runge_kutta_4", f="t + y", t0=0, y0=1, h=0.1, n=2).show()
# -> SOLVED — y_n = 1.24281, t_n = 0.2 (runge_kutta_4)
differential_equations.ask("Classify the equilibrium of the linear system x' = A x with A = [[0, 1], [-2, -3]].").show()
# -> SOLVED — type = stable node, stability = asymptotically stable, lambda1 = -2, lambda2 = -1 (phase_portrait_2x2)
differential_equations.ask("Who created you?").message
# -> differential-equations-ai999x was created and engineered by Ibnul Jaif Farabi at AI999X.
Command line: differential-equations-ai999x "<question>", differential-equations-ai999x --capabilities. The outputs above were produced by running this exact code on differential-equations-ai999x 1.0.2.
Find the right capability, and draw it
differential_equations.search() finds which certified capability a question is about — across every AI999X model, so a question for another model points you to it. It runs ai999x-encoder, AI999X's own capability encoder (4.7M parameters, a 4.9 MB ONNX model, offline; the root model.safetensors of this repository): pip install "differential-equations-ai999x[search]". ask(question, suggest=True) adds the same pointers to a question it does not answer; an answer itself never changes.
import differential_equations_ai999x as differential_equations
differential_equations.search("Solve x^2 - 5x + 6 = 0", k=2)
# -> Roots of a quadratic equation (math-foundations-ai999x, 0.63); Roots of a cubic equation (math-foundations-ai999x, 0.59)
How every answer is verified
- Reading — the question is turned into typed quantities (value, unit, kind, role) and one asked quantity; every stated number must be used or the question is refused.
- Planning — only certified capabilities may answer; a capability applies only under the conditions the wording states (for example a pendulum, a liquid at rest, boiling).
- Computing — exact symbolic or high-precision numeric evaluation.
- Checking — dimensions, substitution back into the defining equation, and agreement between independent readings; any disagreement becomes a refusal, never a number.
Capabilities are certified before they ship: each must reproduce hand-worked reference cases, reject a deliberately wrong variant (a control), and leave every benchmark answer unchanged.
Worked examples
Each question was put to differential-equations-ai999x; the answer is the one it returned, with the steps it took.
Second-order homogeneous linear ODE: initial value problem · Second-order ODES
Solve y'' + 3y' + 2y = 0 with y(0) = 1, y'(0) = 0; find y(1).
→ y = 0.6004235991, damping = overdamped
Steps
- Second-order homogeneous linear ODE: initial value problem: a = 1, b = 3, c = 2, y0 = 1, v0 = 0, t = 1 → y = 0.6004235991, damping = overdamped
Logistic growth: population at a time · First-order ODES
Logistic growth with P0 = 10, r = 0.5, K = 1000; find P(8).
→ P = 355.4609871
Steps
- Logistic growth: population at a time: P0 = 10, r = 0.5, K = 1000, t = 8 → P = 355.4609871
Inverse Laplace transform of a rational function · Laplace transforms
Find the inverse Laplace transform of (s + 3)/(s^2 + 3s + 2) at t = 1.
→ f = 0.6004235991, poles = [-2, -1]
Steps
- Inverse Laplace transform of a rational function: F = (s + 3)/(s^2 + 3s + 2), t = 1 → f = 0.6004235991, poles = [-2, -1]
Classical Runge-Kutta method (RK4) · Numerical methods
m.solve("runge_kutta_4", f="t + y", t0=0, y0=1, h=0.1, n=2)
→ y_n = 1.242805142, t_n = 0.2
Steps
- Classical Runge-Kutta method (RK4): f = t + y, t0 = 0, y0 = 1, h = 0.1, n = 2 → y_n = 1.242805142, t_n = 0.2
Linear 2x2 system: equilibrium type and stability (trace-determinant plane) · Linear systems
Classify the equilibrium of the linear system x' = A x with A = [[0, 1], [-2, -3]].
→ type = stable node, stability = asymptotically stable, lambda1 = -2, lambda2 = -1, trace = -3, det = 2
Steps
- Linear 2x2 system: equilibrium type and stability (trace-determinant plane): A = [0 1; -2 -3] → type = stable node, stability = asymptotically stable, lambda1 = -2, lambda2 = -1, trace = -3, det = 2
Wave equation on the whole line: d'Alembert's formula · Classic PDES
Use d'Alembert's formula with f(x) = sin(x), g(x) = 0, c = 2, x = 1, t = 0.5.
→ u = 0.4546487134
Steps
- Wave equation on the whole line: d'Alembert's formula: f = sin(x), g = 0, c = 2, x = 1, t = 0.5 → u = 0.4546487134
Figures
Every point was computed by differential-equations-ai999x.
Phase portrait of the damped pendulum
Phase portrait of the damped pendulum x′ = y, y′ = -sin(x) - 0.5*y: 12 trajectories integrated by the package's fourth-order Runge–Kutta system solver (step 0.05, t = 0 … 16), equilibria classified by it from the Jacobian (x = 0: stable spiral; x = 3.14159: saddle; the pattern repeats every 2π).
Slope field and solutions of the logistic equation
Slope field of y′ = y*(1 - y) (direction at 187 grid points, each slope from the package) with five solutions integrated by its fourth-order Runge–Kutta solver (step 0.05); equilibria found by the package: y = 0 (unstable), y = 1 (stable).
Equilibrium types on the trace–determinant plane
Eight 2×2 systems x′ = A x placed by trace and determinant, each classified by the package: [[0, 1], [-2, -3]]: stable node (trace -3, det 2); [[-1, 2], [-2, -1]]: stable spiral (trace -2, det 5); [[1, 2], [-2, 1]]: unstable spiral (trace 2, det 5); [[2, 1], [0, 3]]: unstable node (trace 5, det 6); [[0, 1], [-4, 0]]: center (trace 0, det 4); [[1, 0], [0, -2]]: saddle (trace -1, det -2); [[-1, 3], [1, 1]]: saddle (trace 0, det -4); [[0.5, 3], [-3, 0.5]]: unstable spiral (trace 1, det 9.25).
Bifurcation of the logistic map: fixed points and 2-cycles
Period-doubling of the logistic map x → r x(1 − x): its fixed points and 2-cycles for 69 values of r from 0.05 to 3.45, with their stability, all from the package; the fixed point loses stability at r = 3 where a stable 2-cycle appears — marked: r = 3.2, cycle 0.513045 ↔ 0.799455 (multiplier 0.16).
Heat spreading along a rod, step by step
Temperatures along a rod (9 nodes, ends held at 0) from the explicit heat-equation scheme with r = 0.25, starting from 0, 0, 20, 60, 100, 60, 20, 0, 0: row k is the state after k steps, each computed by the package; the peak spreads and decays (100 → 47.79 at the centre after 7 steps).
The three damping regimes of a second-order equation
Solutions of y″ + b y′ + y = 0 with y(0) = 1, y′(0) = 0, evaluated by the package at 121 times each: b = 0.4 (underdamped, y(12) = 0.0492303); b = 2 (critically damped, y(12) = 7.9875e-05); b = 4 (overdamped, y(12) = 0.0432445).
Capabilities
77 certified procedures. A few of them:
- Procedures: Age from the fraction remaining (radioactive dating); Backward (implicit) Euler method; Bernoulli equation y' + p y = q y^n; Brusselator: equilibrium, its type, and the Hopf value b = 1 + a^2; CFL condition for the advection equation (upwind scheme); Cauchy-Euler (equidimensional) equation: initial value problem; Classical Runge-Kutta method (RK4); Competing species: coexistence equilibrium and its stability; Convolution integral (f * g)(t); Crank-Nicolson steps for the heat equation; Damped oscillator: resonance frequency and peak amplitude; Doubling time or half-life from a rate constant; Draining tank (Torricelli's law): height and emptying time; Eigenvalues of y'' + lambda y = 0 with Dirichlet/Neumann ends; Eigenvalues with a Robin (convective) end condition; Equation y' = k y^2: solution and blow-up time; Equilibria of y' = f(y) and their stability (phase line); Euler's method; Euler's method error for exponential growth; Explicit finite-difference (FTCS) steps for the heat equation; Explicit midpoint method (RK2); Exponential growth or decay: value at a time; Exponential model through two measurements; Falling body with linear drag: velocity …
differential_equations_ai999x.templates() lists every question form ask() reads; the capability guide (PDF, every example executed) is included in this repository.
Out of scope
- Open-ended explanation, essay writing or tutoring dialogue: it is a solver, not a chatbot.
- Questions outside its certified differential equations capabilities, and any question whose stated numbers it cannot all use — it refuses with the reason instead.
- High-stakes engineering, medical or legal decisions without independent review.
Limitations
- It answers what its certified capabilities cover (first- and second-order ODEs, Laplace transforms, linear systems and phase portraits, stability, numerical methods, heat/wave/Laplace equations and dynamical systems); anything else is refused with a reason.
ask()reads documented question forms and common phrasings; unusual wording may be refused — usesolve()for guaranteed results.- Results are as correct as the certified relations and their stated conditions; a certified relation is a checked model, not a claim about every physical situation.
Citation
@software{differential_equations_ai999x_1_0_2,
title = {differential-equations-ai999x: an offline, verified differential equations solver},
author = {Farabi, Ibnul Jaif}, organization = {AI999X},
year = {2026}, version = {1.0.2},
url = {https://huggingface.co/AI999X/differential-equations-ai999x}
}
Contact
Questions, bug reports and requests: open a discussion on https://huggingface.co/AI999X/differential-equations-ai999x/discussions or visit https://ai999x.com.
Support the project
differential-equations-ai999x is free and open source. If it helps you, you can support further development on Buy Me a Coffee.
Created and engineered by Ibnul Jaif Farabi · AI999X · ai999x.com
Metadata
Release files for differential-equations-ai999x 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| differential_equations_ai999x-1.0.2-py3-none-any.whl | Python 3 | none | any | Details for differential_equations_ai999x-1.0.2-py3-none-any.whl |
Release files / differential_equations_ai999x-1.0.2-py3-none-any.whl
| Download URL | differential_equations_ai999x-1.0.2-py3-none-any.whl |
|---|---|
| Size | 18.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8db9dbbe7377921fe677c9f43a7177090d1f61e38389ccccffd9072aecf831b7
|
|
BLAKE2b-256 checksum How to use checksums |
cf6ad047acf2e125fa96e92e82399cc1d75a653dd1721f618c21c58f8248a7fb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.7
|
Security for differential-equations-ai999x 1.0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.