You are here

Numerical Analysis Using R

Graham W. Griffiths
Cambridge University Press
Publication Date: 
Number of Pages: 
[Reviewed by
Jason M. Graham
, on

Numerical Analysis Using R is a very interesting text on the theory and practical implementation of numerical methods for approximating solutions to differential equations. The book contains a wealth of information presented in such a way as to be accessible to a wide audience of engineers, mathematicians and other scientists.

This book manages to be a unique contribution to the collection of numerical methods texts, which is perhaps surprising given the large amount of existing literature on the subject. It is unique in two notable ways: the author’s use of case studies to illustrate the application of numerical methods to solve real-world problems, and the author’s use of the R programming language to implement the numerical methods described in the book. Furthermore, in Numerical Analysis Using R, Griffiths covers some methods, particularly for partial differential equations, that have not typically been covered in texts written at this level. I am especially fond of chapter seven, on meshless methods for approximating solutions to partial differential equations.

The case studies presented concern the flight of a golf ball, explosive blast waves, and the carbon cycle in climate science. These case studies proceed according to the typical workflow in applied mathematics: statement of the problem, derivation of a mathematical model, some analysis of the model, and computational simulations based on the model. The thing I really like about these case studies is that they really help the reader to synthesize the practical and theoretical aspects of the numerical methods discussed in the book. Additionally, the case studies serve to place the concepts presented in the earlier chapters of the book into a concrete context. In my opinion, the case studies are really well done and form a highlight of Numerical Analysis Using R.

For me personally, the most exciting feature of this book is the collection of R code implementing the various numerical methods contained in the book. Many numerical differential equations texts are heavily focused on elegant derivations and mathematical analyses of methods and often tend to use little if any page-space discussing the details of implementing the methods. In contrast, Griffiths makes available complete, well-documented programs that are written using best practices and run efficiently with no problems across all major computer platforms. Thus, one can take the code from Numerical Analysis Using R and easily use it as is, or adapt it to solve specific problems. Note however, that this is not just a numerical recipes book. Griffiths in fact takes great care to exhibit the mathematical development of the methods he covers.

The fact that Griffiths chooses R as the programming language in which to implement algorithms is worthy of further discussion. On the affirmative side, R is free, open source and available across platforms. Furthermore, there are some robust packages such as the deSolve package which are of great value in numerically approximating solutions to differential equations. On the negative side, readers without a fair amount of familiarity with R programming may struggle to understand some aspects of the code. This is noteworthy since R is not as well known among the mathematics community as other programming languages, although this may be changing.

It is fair to mention at this point that there are other recent books, Solving Differential Equations in R by Karline Soetaert and Jeff Cash, and Differential Equation Analysis in Biomedical Science and Engineering by William E. Schiesser that discuss numerical methods for approximating solutions to differential equations using R as the programming language of choice. These texts are somewhat different in scope than Numerical Analysis Using R, however, particularly with regard to the types of methods covered and the level of mathematical analysis. I approve of Griffiths choice of R and would also like to point out the beautiful visualizations in R based on the numerical simulations that are found in Numerical Analysis Using R.

There is a lot of material in Numerical Analysis Using R, likely more than can be covered in a one semester course. Nevertheless, I believe that by a judicious selection of sections to cover, it can profitably be used as a text for a single semester course. Note, however, that there are no end of chapter exercises. I believe, however, that it would be very easy for an instructor to come up with a selection of appropriate problems based on the material covered in the text. Also of note, there are many good references for further reading, so that the book can serve well to prepare readers for research on either the theoretical or practical aspects of numerical approximation of ordinary and partial differential equations.

Jason M. Graham is an assistant professor in the department of mathematics at the University of Scranton, Scranton, Pennsylvania. His current professional interests are in teaching applied mathematics and mathematical biology, and collaborating with biologists specializing in the collective behavior of groups of organisms.

1. ODE integration methods
2. Stability analysis of ODE integrators
3. Numerical solution of PDEs
4. PDE stability analysis
5. Dissipation and dispersion
6. High resolution schemes
7. Meshless methods
8. Conservation laws
9. Case study: analysis of golf ball flight
10. Case study: Taylor–Sedov blast wave
11. Case study: the carbon cycle.