This is a comprehensive and up-to-date guide to numerical methods, aimed at engineers. It’s more a handbook or encyclopedia or catalog than a textbook, although it does include a large number of numerical drill exercises (answers to odd-numbered problems are in the back). It’s not a proofs book, although it usually gives some motivation and plausibility arguments. Coverage is similar to other familiar textbooks such as Burden & Faires’s *Numerical Analysis* or Dahlquist & Bjorck’s *Numerical Methods*. It omits a few commonly-found topics, such as Monte Carlo methods and optimization problems such a maximum finding or linear programming. It does include some uncommon topics such as Padé approximants and successive over-relaxation (SOR) methods for linear systems.

One unfortunate omission, especially considering the target audience, is a survey of numerical software packages. The book uses Mathematica to illustrate the algorithms, but in real life people would either use built-in functions in Mathematica or use a separate software package, and would not write their own algorithms. Unfortunately the Mathematica examples are not provided in electronic form, so you have to type them in to try them. The examples are written in a FORTRAN or C style, with lots of loops, which is not how Mathematica would normally be used. For example, the main step in the trapezoidal rule (p. 198) is

For[i=1;s=0,i<=n-1,i++,s+=2*y[a+i*h]];

but a more natural Mathematica expression for this would be \[s = \sum_{i=1}^{n-1} 2 y (a + h i).\]

The two big weaknesses in this book are in comparing methods and in error estimation. There are multiple solution methods for nearly every kind of problem, which is good. For example, there are five different way to solve systems of linear equations, and five different ways to find eigenvalues. But the methods are explained in isolation; there’s no explanation of their relative strengths and weaknesses, and no guidance on when to use which method.

Most of the methods have at least a rudimentary error analysis, and this is good as far as it goes. However, these estimates are never used in the worked examples, so the student is not reminded that he should estimate the error and adjust the method’s parameters as needed. For example, there are rough error estimates for each of the numerical quadrature methods, but when it comes to the examples, we apply the methods on a given number of partitions that was plucked out of the air. The examples often end with an observation like “this is correct to 5 significant digits”, which is true, but the reason we know it is true is not from the error estimates but because we know the exact answer to the example problem and can compare the calculated answer.

Allen Stenger is a math hobbyist and retired software developer. He is an editor of the Missouri Journal of Mathematical Sciences. His personal web page is allenstenger.com. His mathematical interests are number theory and classical analysis.