brainpy.integrators.ode.RK3#
- class brainpy.integrators.ode.RK3(f, var_type=None, dt=None, name=None, show_code=False, state_delays=None, neutral_delays=None)[source]#
Classical third-order Runge-Kutta method for ODEs.
For the given initial value problem \(y'(x) = f(t,y);\, y(t_0) = y_0\), the third order Runge-Kutta method is given by:
\[y_{n+1} = y_n + 1/6 ( k_1 + 4 k_2 + k_3),\]where
\[\begin{split}k_1 = h f(t_n, y_n), \\ k_2 = h f(t_n + h / 2, y_n + k_1 / 2), \\ k_3 = h f(t_n + h, y_n - k_1 + 2 k_2 ),\end{split}\]where \(t_n = t_0 + n h.\)
Error term \(O(h^4)\), correct up to the third order term in Taylor series expansion.
The Taylor series expansion is \(y(t+h)=y(t)+\frac{k}{6}+\frac{2 k_{2}}{3}+\frac{k_{3}}{6}+O\left(h^{4}\right)\).
The corresponding Butcher tableau is:
\[\begin{split}\begin{array}{c|ccc} 0 & 0 & 0 & 0 \\ 1 / 2 & 1 / 2 & 0 & 0 \\ 1 & -1 & 2 & 0 \\ \hline & 1 / 6 & 2 / 3 & 1 / 6 \end{array}\end{split}\]- __init__(f, var_type=None, dt=None, name=None, show_code=False, state_delays=None, neutral_delays=None)#
Methods
__init__
(f[, var_type, dt, name, show_code, ...])build
()cpu
()Move all variable into the CPU device.
cuda
()Move all variables into the GPU device.
load_state_dict
(state_dict[, warn, compatible])Copy parameters and buffers from
state_dict
into this module and its descendants.load_states
(filename[, verbose])Load the model states.
nodes
([method, level, include_self])Collect all children nodes.
register_implicit_nodes
(*nodes[, node_cls])register_implicit_vars
(*variables[, var_cls])save_states
(filename[, variables])Save the model states.
set_integral
(f)Set the integral function.
state_dict
()Returns a dictionary containing a whole state of the module.
to
(device)Moves all variables into the given device.
tpu
()Move all variables into the TPU device.
train_vars
([method, level, include_self])The shortcut for retrieving all trainable variables.
tree_flatten
()Flattens the object as a PyTree.
tree_unflatten
(aux, dynamic_values)Unflatten the data to construct an object of this class.
unique_name
([name, type_])Get the unique name for this object.
vars
([method, level, include_self, ...])Collect all variables in this node and the children nodes.
Attributes
A
B
C
arguments
All arguments when calling the numer integrator of the differential equation.
dt
The numerical integration precision.
integral
The integral function.
name
Name of the model.
neutral_delays
neutral delays.
parameters
The parameters defined in the differential equation.
state_delays
State delays.
variables
The variables defined in the differential equation.