@f}
where for the form of the right hand side above
@f{eqnarray*}
-k_i = h M^{-1} f\left(t_n+c_ih,y_n+\sum_{j=1}^sa_{ij}k_j\right).
+k_i = \Delta t \, M^{-1} f\left(t_n+c_ih,y_n+\sum_{j=1}^sa_{ij}k_j\right).
@f}
Here $a_{ij}$, $b_i$, and $c_i$ are known coefficients that identify which
-particular Runge-Kutta scheme you want to use, and $h=t_{n+1}-t_n$ is the time step
+particular Runge-Kutta scheme you want to use, and $\Delta t=t_{n+1}-t_n$ is the time step
used. Different time stepping methods of the Runge-Kutta class differ in the
number of stages $s$ and the values they use for the coefficients $a_{ij}$,
$b_i$, and $c_i$ but are otherwise easy to implement since one can look up
Many well known time stepping schemes that one does not typically associate
with the names Runge or Kutta can in fact be written in a way so that they,
too, can be expressed in these categories. They oftentimes represent the
-lowest-order members of these families.
+lowest-order members of these families; one example is the simple explicit
+Euler method.
<h4>Explicit Runge-Kutta methods</h4>
// @sect4{<code>Diffusion::run</code>}
//
// The following is the main function of the program. At the top, we create
- // the grid (a [0,5]x[0,5] square) and refine it four times to get a mesh
- // that has 16 by 16 cells, for a total of 256. We then set the boundary
+ // the grid (a $[0,5]\times [0,5]$ square) and refine it four times to get a
+ // mesh that has 16 by 16 cells, for a total of 256. We then set the boundary
// indicator to 1 for those parts of the boundary where $x=0$ and $x=5$.
void Diffusion::run()
{