Toggle menu
71
399
28
3.6K
Medusa: Coordinate Free Meshless Method implementation
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Integrators for time stepping

From Medusa: Coordinate Free Meshless Method implementation
Revision as of 10:54, 10 November 2017 by Jureslak (talk | contribs)

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

<math> y_{n+1} = y_n + h \sum_{i=1}^s b_i k_i, </math>

where[1]

<math>

\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} </math>

(Note: the above equations have different but equivalent definitions in different texts).[2]

To specify a particular method, one needs to provide the integer s (the number of stages), and the coefficients aij (for 1 ≤ j < i ≤ s), bi (for i = 1, 2, ..., s) and ci (for i = 2, 3, ..., s). The matrix [aij] is called the Runge–Kutta matrix, while the bi and ci are known as the weights and the nodes.[3] These data are usually arranged in a mnemonic device, known as a Butcher tableau (after John C. Butcher):

  1. ↑ Template:Harvnb
  2. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named notation
  3. ↑ Template:Harvnb