How ojasrane/ordinary-differential-equations works
This educational ODE project takes a user’s equation, interval, step size, and initial or boundary conditions and returns fixed-step numerical solution arrays. Its runtime has separate scalar/second-order and state-vector IVP methods, plus a finite-difference BVP solver whose tridiagonal system is solved with the Thomas algorithm. Example scripts use IVP methods to compute trajectories for animated demonstrations; notebooks explain numerical methods and model results. README documents additional notebook and animation topics beyond the sampled scripts; those links are shown at their supported directory paths.
Main entry points: ivp.py Scalar IVP methods · analysis Method walkthroughs · bvp.py Finite-difference BVP · simple_pendulum.py Pendulum demos
Components 20
Numerical solvers
- Scalar IVP methods
solver/ivp.py - State-vector IVP methods
solver/ivp.py - Finite-difference BVP
solver/bvp.py - Thomas elimination
solver/bvp.py
Learning materials
- Method walkthroughs
analysis - IVP derivations
analysis/solving_ivp_problems.ipynb - BVP derivation
analysis/solving_bvp_problems_using_fdm.ipynb - Population models
analysis/population_models.ipynb - Error function
analysis/erf_function_using_ode.ipynb
Animated models
- Animation examples
animation_scripts - Pendulum demos
animation_scripts/simple_pendulum.py - Double pendulum
animation_scripts/double_pendulum.py - Lorenz attractor
animation_scripts/lorenz_attractor.py - Spring-mass demos
animation_scripts/spring_mass.py - Damped oscillator
animation_scripts/damped_shm.py - Population animation
animation_scripts/population_modelling.py - Error animation
animation_scripts/erf.py
Other components
- Learner or researcher
- NumPy
- Matplotlib
Connections 27
- Learner or researcher → Scalar IVP methods: provides IVP
- Learner or researcher → State-vector IVP methods: provides state IVP
- Learner or researcher → Finite-difference BVP: provides BVP
- Scalar IVP methods → NumPy: uses arrays
- State-vector IVP methods → NumPy: uses arrays
- Finite-difference BVP → NumPy: uses arrays
- Finite-difference BVP → Thomas elimination: eliminates diagonals
- Learner or researcher → Method walkthroughs: studies methods
- Method walkthroughs → IVP derivations: includes
- Method walkthroughs → BVP derivation: includes
- Method walkthroughs → Population models: includes
- Method walkthroughs → Error function: includes
- Learner or researcher → Animation examples: runs examples
- Pendulum demos → Scalar IVP methods: integrates
- Double pendulum → State-vector IVP methods: integrates
- Lorenz attractor → State-vector IVP methods: integrates
- Spring-mass demos → Scalar IVP methods: integrates
- Damped oscillator → Scalar IVP methods: integrates
- Population animation → Scalar IVP methods: integrates
- Error animation → Scalar IVP methods: integrates
- Pendulum demos → Matplotlib: animates results
- Double pendulum → Matplotlib: animates results
- Lorenz attractor → Matplotlib: animates results
- Spring-mass demos → Matplotlib: animates results
- Damped oscillator → Matplotlib: animates results
- Population animation → Matplotlib: animates results
- Error animation → Matplotlib: animates results