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.0.tar.gz
(7.4 kB
view hashes)
Built Distribution
Close
Hashes for phyber_numint-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 594620c409deef8f244b5d840c70e555905e545677cff40f396c1e50beac6c50 |
|
MD5 | 0e03d9a468c93d31f4dde53ac1cd86ba |
|
BLAKE2b-256 | a4d6081eeff70a4bee721788d3a9b00e95800bc12a857ee7b2e73342ee4b6981 |