A simple package to perform numerical integration easily
Project description
Phyber NumInt
A numerical integrator for solving ODE systems
A simple package to solving ODE with different algorithms, written as explicitly as possible. I created this for a University course.
To use it you simply create an instance of the class ODEIntegrator
It takes the following parameters
F
that's the function that represents the ODE system (X' = F(X))X0
that's the initial conditionsti
the initial timetf
the final timedt
the time step
The function F
should be structured in the following fashion
def F_lorenz(t, X, sigma, beta, rho):
'''
x' = sigma(y - x)
y' = x(rho - z) - y
z' = x*y - beta*z
'''
x, y, z = X
dxdt = sigma * (y - x)
dydt = x * (rho - z) - y
dzdt = x * y - beta * z
return (dxdt, dydt, dzdt)
Then, the method solve
of ODEIntegrator
can be called with the method
argument. The method
argument is an enum member of IntegrationMethods. The following exist
EULER_FORWARD
EULER_BACKWARD
EULER_IMPROVED
EULER_IMPROVED
RUNGE_KUTTA_2
RUNGE_KUTTA_3
RUNGE_KUTTA_4
RUNGE_KUTTA_FEHLBERG_45
For example, ode_integrator.solve(IntegrationMethod.EULER_FORWARD)
Examples in the file examples.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
phyber_numint-0.1.1.tar.gz
(6.3 kB
view hashes)
Built Distribution
Close
Hashes for phyber_numint-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab8161f43ced0926829b6246698992e7e08044f04d1bc92d85e49f6d61e8d783 |
|
MD5 | 13a0cb9f5f050067ff4b1e0f82dea28c |
|
BLAKE2b-256 | 71de9a46c847f2f3a48061c4188d8347aa6c60a7ec8384be4c41260a045dc91f |