There is a number of powerful software packages intended to solve numerical problems and differential equations in particular. First of all, we can mention here MATLAB, Maple and Mathematica. Recently to that list we can add R. The advantage of using R as compared to the previously mentioned programs, which are rather expensive, is that R is an open source software. At the same time, the recent development of R make it a very powerful and flexible software for solving differential equations. The book ''Solving differential equations in R by K. Soetaert (NIOO-CEME, Yerseke, Netherlands); J. Cash (Imperial College, London, UK); F. Mazzia (University of Bari, Italy), Springer, World Scientific, Publishers Series in Business, 2012. Approx. 250 p. 70 illus. (Use R!) Softcover. ISBN: 978-3-642-28069-6, describes the present stage of development of R packages intended to solve differential equations. Consecutive chapters focus on initial value problems for ODE, differential algebraic equations, boundary value problems for ODE, delayed differential equations and partial differential equations. From the point of view of the R software the book presents the following R packages: \textbf{deSolve}, \textbf{rootSolve}, \textbf{deTestSet}, \textbf{ReacTran} and \textbf{bvpSolve}. The package \textbf{deSolve} contains most of the integration methods used to solve differential equations. It contains a large number of Runge-Kutta methods, both explicit and implicit, and a large variety of multistep methods (Adams methods). These methods can be applied to solve initial value problems for both non-stiff and stiff ODE systems. Also delayed differential equations can be solved using specially designed functions form the package \textbf{deSolve}. Algebraic differential equations can be solved using special methods from \textbf{deSolve} and \textbf{deTestSet} packages. The package \textbf{bvpSolve} is for solving boundary value problems. This package implements 3 methods of solution: shooting, MIRK and collocation methods. Solving partial differential equations in R requires an additional work from the user. The idea is to reduce a particular PDE to a system of ODE's or a system of algebraic equations and then solve such a system using tools available in R. For simple parabolic or hyperbolic equations the method of line can be used and reduce the problem to a system of ODE's which can be solved by special functions from the \textbf{deSolve} package. For elliptic equations a finite difference approximations can be applied and the resulting system of algebraic equations can be solved by a function from the package \textbf{rootSolve}. A grid generation for diffusive and adjective transport terms in analyzed PDE's can be performed automatically by functions from the package \textbf{ReacTran}. Subsequent topics of the book are presented in a similar manner. First comes a chapter with relevant theoretical results about existence of solutions, limits of solvability, discretization methods and stability problems. The presentation is accompanied by a large number of references where more detailed information is available. Then follows a chapter with R implementation of described methods together with a detailed information about the use of the relevant packages. These implementations are illustrated by a large number of well-known examples. Most of important ODE's models are treated as illustrations to particular methods or peculiarities of solutions obtained. Logistic equation, Lorenz model, Arenstorf orbits, van der Pol equation, Josephson junctions, pendulum problem, Sturm-Liouville problem and a large number of models from biology and medicine -- all that can be found in some place in the book. To whom the book is intended? First of all to practitioners: researchers and graduate students who need solutions to differential equations. The R software gives them a possibility to obtain solutions without going into details of computer coding. In addition, a large number of R graphic and statistical functions can improve visualization of the solution obtained. There is however a word of warning to non-expert in numerical analysis. There is a number of traps in numerical solutions of differential equations related to solvability or numerical stability problems. Majority of these traps is addressed in theoretical chapters of the book. But these theoretical chapters are written in a very concise form. A mathematical theorem is sometime reported just in one sentence. Hence, when the reader is a non-expert he should read very carefully a relevant part of theoretical introduction before starting computations to avoid frustration when the result do not fit to expectations. The book can be also very interesting for experts in differential equations. I strongly recommend the book to all courses in ODE and numerical ODE as a valuable source of interesting examples and illustrations to the course. It can be as well an interesting source of problems for students enabling them to test lectured topics and experiment with new models. Finally even experts in the field can find in the book tasty remarks on the state of the art of some numerical methods for differential equations.
Read full abstract