Integrators for time stepping
This page describes how to solve ordinary differential equations numerically with examples from our library.
Introduction and notation
We are solving an initial value problem, given as
$ \begin{align*} \dot{y}(t) &= f(t, y) \\ y(t_0) &= y_0 \end{align*} $
where $y$ is the unknown (possibly vector) function, $t_0$ is the start time, $f$ is the derivative (the functions we wish to integrate) and $y_0$ is the initial value of $y$. Numerically, we usually choose a time step $\Delta t$ and integrate the function up to a certain time $t_{\max}$. Times os subsequent time steps are denoted with $t_i$ and function values with $y_i$.
The simplest method is explicit Euler's method: $y_{n+1} = y_{n} + \Delta t f(t, y_n)$
Explicit (single step) methods
A family of single step methods are exaplicit Runge-Kutta methods
It is given by \[ y_{n+1} = y_n + h \sum_{i=1}^s b_i k_i, \] where[1] \[ \begin{align} k_1 & = f(t_n, y_n), \\ k_2 & = f(t_n+c_2h, y_n+h(a_{21}k_1)), \\ k_3 & = f(t_n+c_3h, y_n+h(a_{31}k_1+a_{32}k_2)), \\ & \ \ \vdots \\ k_s & = f(t_n+c_sh, y_n+h(a_{s1}k_1+a_{s2}k_2+\cdots+a_{s,s-1}k_{s-1})). \end{align} \]
- (Note: the above equations have different but equivalent definitions in different texts).[2]
- ↑ Template:Harvnb
- ↑ Cite error: Invalid
<ref>
tag; no text was provided for refs namednotation
- ↑ Template:Harvnb