
DifferentialLab
Numerical ODE, difference equation, and PDE solver with a graphical interface for scientists, engineers, and students.
📂 Repository • 🐛 Report Bug • 💡 Request Feature
DifferentialLab solves ordinary differential equations, difference equations, and PDEs numerically using SciPy’s integration engine. It provides a desktop GUI built with Tkinter/ttk, predefined equations from physics and engineering, a custom expression editor, publication-ready matplotlib plots, statistical analysis of solutions, and a function transforms module (Fourier, Laplace, Taylor, Hilbert, Z-transform).
Key Features
ODEs: Six numerical methods (RK45, RK23, DOP853, Radau, BDF, LSODA)
Difference equations: Recurrence relations (geometric growth, logistic map, Fibonacci, etc.)
PDEs: 2D elliptic solver (Poisson, Laplace) plus general operator-based PDEs
Vector ODEs: Coupled systems with animation, 3D phase-space trajectories, and surface visualization
Complex Problems (experimental): Special cases with custom UIs (e.g. coupled harmonic oscillators). Still in development; may contain bugs.
Unified f-notation: Write equations using
f[0],f[1],f[i,k](function, derivatives, vector components)Interactive result tabs: Select derivatives to plot, choose phase-space axes, switch visualization modes without re-solving
Predefined equations: Harmonic oscillator, pendulum, Van der Pol, Lorenz, Lotka-Volterra, and more
Function transforms: Fourier (FFT), Laplace, Taylor series, Hilbert, Z-transform
Custom equations: Python syntax with safe evaluation
Plots: Solution curves, phase portraits (2D/3D), surface/contour for PDEs, vector animation
Statistics: Mean, RMS, period, amplitude, energy, residual error metrics
Export: CSV, JSON, PNG/JPG/PDF, MP4 animation
User Documentation
Getting Started – installation, setup, first run
User Guide – walk-through of the complete workflow
Configuration Reference – every
.envsetting explained
Developer Documentation
Architecture – module structure, data flow, design decisions
API Reference – auto-generated from source docstrings
Project
Changelog – release history