Metadata-Version: 2.4
Name: numODEsolver
Version: 2.0.1
Summary: Tool that solves ODE's numerically. Written in Python.
Home-page: https://github.com/lukasnf/Numerical-ODE-Solver
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: asteval
Requires-Dist: scipy
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# Numerical ODE Solver

This project is a Python implementation for solving ordinary differential equations (ODEs) numerically. The script allows users to choose between two methods: Euler's Method and Runge-Kutta 4th Order Method (RK4), providing a visual representation of the solution (optional). Note: Euler's Method is more inaccurate than RK4.

## Requirements
Python version >= 3.8

Ensure the following Python libraries are installed:

Install it using `pip`:
```bash
pip install numODEsolver
```
## Example
```bash
import numODEsolver as ns
import matplotlib.pyplot as plt #optional for plot

solver = ns.Solver()
f = solver.get_function("y") 
values = solver.rk4_1order(f,x0=0,y0=1,n=10000,bound=10.1)
n = solver.get_value(values,val=10,dec=5)
print(n)
plt.plot(results[:,0],results[:,1])
plt.show()
```
```bash
from numODEsolver import solver

solver = ns.Solver()
f = solver.get_function("y'+y") #y' = for 1st derivative. The ode would be y'' = y'+y
x,y,dy = solver.euler_2order(f,x0=0,y0=1,dy0=1,n=10000,bound=5)
n = solver.get_value(values,val=3,dec=2)
print(n)
```

# Version History

-  8.12.2024 - v0.1 -> only 1st order ODE's are solvable, more features coming soon
- 15.12.2024 - v0.2 -> removed plot function
- 26.1.2025 - v0.3 -> included 2nd order methods, see more on GitHub
- 18.03.2025 - v2.0 -> more secure function handeling, more stable numerical methods.

---
For more documentation take a look at the source code on my GitHub.

You can modify the script to add more methods, or change visualization settings.

Contributions and suggestions are welcome!

Lukas

