Errata for Numerical Solution of Ordinary Differential Equations, by Atkin, Han and StewartΒΆ

The textbook contains a number of small errors. As I find these, I post the corrections on this page. Other errors may also exist; these are only those that I have written down.

  1. page 33, problem 2, should include a time interval to use when solving the problem numerically. I recommend a time interval \(t\in [0,5]\).

  2. page 35, problem 11, should also include a time interval to use when solving the problem numerically. I recommend a time interval \(t\in [0,4]\).

    Additionally, it should be more precise about how the solution errors should be calculated. I recommend an absolute error (as opposed to relative), and that the convergence orders should be computed using the maximum error over the nodes for each value of \(h\).

  3. page 53, middle of the page. The authors incorrectly state that

    “Traditional root-finding methods (e.g., Newton’s method, the secant method, the bisection method) can be applied to (4.11) to find its root \(y_{n+1}\); but often that is a very time-consuming process. Instead, (4.11) is usually solved by a simple iteration technique.”

    The authors then go on to describe a simple fixed-point iteration.

    This is not in fact true. The authors’ motivation for using backwards Euler is for stiff differential equations, and simple fixed-point iterations are ill-suited for stiff implicit systems, primarily because the iteration (4.12) is not a contraction unless the step size \(h\) is incredibly small. Even the authors contradict themselves later on in the book, when in section 8.5 they state:

    “We illustrate the difficulty in solving the finite difference equations by considering the backward Euler method. ... For convergence we would need to have

    \[\begin{split}\left| h\frac{\partial f(t_{n+1},y_{n+1})}{\partial y}\right| < 1.\end{split}\]

    But with stiff equations, this would again force \(h\) to be very small, which we are trying to avoid. Thus another rootfinding method must be used to solve for \(y_{n+1}\) in (8.42).”

    In my experience, I have rarely seen the combination of an implicit time integration method coupled with a simple fixed-point iteration; for non-stiff problems explicit methods are vastly preferred, and for stiff problems more robust nonlinear solvers are required.

  4. page 76, equation (5.40) should read:

    \[|e_{n+1}| \le (1+hL) |e_n| + h \tau_h(Y),\quad t_0\le t_N\le b.\]
  5. page 108, the final answer for problem 11 in chapter 6 should read:

    \[Y(t_{n+1}) - \left[Y(t_{n-1}) + 2h\,f(t_n, Y(t_n))\right] = \frac13 h^3 Y'''(t_n) + \mathcal O(h^4)\]
  6. page 151, equation (9.6) should read:

    \[D(r): \quad \sum_{i=1}^s b_i c_i^{k-1} a_{ij} = \frac{b_j}{k}(1-c_j^k), \qquad k=1,2,\ldots r, \quad j=1,2,\ldots,s.\]
  7. page 152, Table 9.5 has two incorrect coefficients for the Gauss method of order 6. The correct table should be

    \[\begin{split}\begin{array}{c|ccc} (5-\sqrt{15})/10 & 5/36 & 2/9-\sqrt{15}/15 & 5/36-\sqrt{15}/30\\ 1/2 & 5/36+\sqrt{15}/24 & 2/9 & 5/36-\sqrt{15}/24\\ (5+\sqrt{15})/10 & 5/36+\sqrt{15}/30 & 2/9+\sqrt{15}/15 & 5/36\\ \hline & 5/18 & 4/9 & 5/18\\ \end{array}\end{split}\]
  8. page 156, the final paragraph before section 9.3: The DIRK method in Table 9.8 (part b) is in fact B-stable, since it has eigenvalues \(\{1.55303,0,0\}\), which are all non-negative.

  9. page 161, problem 2, the first equation should read:

    \[z_{n,i} = y_n + h\sum_{j=1}^s a_{ij} f(t_n+c_j h, z_{n,j}), \quad i=1,2,\ldots s.\]