Richard J. Gaylord and Kazume Nishidate
Telos, 1996, ISBN: 0-387-94620-9. 260 pages+diskette
Review by André Heck
CAN Expertise Center, University of Amsterdam, The Netherlands
Email: heck@can.nl
Actually, the subtitle expresses best the topic of this book: simulations of cellular automata that are calculated and graphically presented with Mathematica, and that model physical, chemical, biological, and social systems. The book can be seen as an easy-to-read introduction to Mathematica as a convenient tool for studying such systems in discrete space-time models. You can also view the book as a complementary tool-book in a course on computational science. However it does not introduce you to simulating per se or to the systems that are supposedly being studied in it. This is not necessarily a negative statement about the book because it was designed to be complementary to more theoretical approach in standard book on simulations. The authors briefly mention the science underlying the cellular automata and give references to the literature.
But the reviewer finds the book a missed chance of finding a good balance between modeling and simulating physical systems, between theory and experimentation so to speak, in one textbook. To give an example, in the discussion of phase-ordering of binary mixtures as cellular automata, the rules for updating the cellular automaton are stated hardly without any motivation. One term in the replacement rule for the value of the order parameter at a lattice point is the average of values at neighboring sites. This term comes directly from a finite discretization of the diffusion equation. But the reader is not informed about this link between continuous and discrete models. He or she is not explained how and why the rule was chosen.
This holds for all examples in the book: the authors do not give much insight into how the simulation rules are intuited. The physical phenomena modeled by the cellular automata are only briefly explained in heuristic terms. Criteria for validity of the models and other choices of modeling are not presented. The reader is left with nothing but intuition and pictures to know whether the calculation simulate nature or whether they are little more than nice graphics and animations.
But let us come to the good things about the book. The book describes lattice-based simulations of many physical systems: high-way traffic, diffusion, adsorption-desorption, chemotaxis, predator-prey ecosystems, forest fires, to name a few. A rich collection of examples. But what is more important they are all implemented in the same style in Mathematica. After the explanation of the generic toolkit in the first chapter and the sample implementation of the game of life in the second chapter, the implementations of the simulations in the subsequent chapter are all rather small variations on the same theme. Of course this is an advantage if one wishes to concentrate on the models and not too much on the implementation issues. Drawback is that after a while the implementation of simulations become rather mechanical, but this counts for little compared to the fact that it allows the reader to jump through the chapters in any order.
Modeling Nature is a well-structured book: each chapter consists of the following sections:
Modeling Nature is very good in explaining how to program cellular automata in Mathematica. The toolkit is clearly explained. The only minor point is the lack of discussion on efficiency. After reading the book the read will still not know why some natural implementations are less efficient than others and at what scale simulations can be done with Mathematica. The examples in the book indicate that only small-size simulations are possible in Mathematica.
For people who already understand the science behind the models used and want to work with small-scale simulations this book is highly recommended. The same hold for teachers who want to supplement their courses in modeling and simulating with Mathematica implementations for visualization of results and for further experimentation.