Scientific Computation , Gaston H. Gonnet and Ralf Scholl
Cambridge U. Press, New York, 2009. $65.00 (236 pp.). ISBN 978-0-521-84989-0
Computational science—the third branch of science, joining experimental and theoretical — combines programming and modeling to achieve scientific insight that can be verified and validated. The field is mature enough that it can benefit from highly technical textbooks, meant to be archival in nature, that present penetrating analyses. But since computational science (and scientific programming) is interdisciplinary, practiced by scientists from various fields, it is also critical that thinking patterns and problem-solving methodologies are clear to each member of a research team. Therefore, an important role remains for tutorials that make obvious the author’s expertise and thinking patterns.
Taking that approach, and executing it quite well, is Scientific Computation by Gaston Gonnet and Ralf Scholl. Both authors draw from their extensive teaching experiences: Gonnet is a computer science professor at ETH Zürich and is known for his contributions to the development of the commercial mathematical software Maple; Scholl teaches mathematics, physics, science, and technology at Geschwister-Scholl Gymnasium, a high school in Stuttgart, Germany.
In Scientific Computation (also available as an e-book), the authors lay out how they reason: They present a scientific model and then test it, providing along the way appropriate knowledge and strategies needed to solve problems. And yet, the book is organized in a way that will facilitate learning for most students. Each chapter contains basic and advanced instruction, a worked-out example, practical illustrations, and background information appropriate to the chapter’s theme. Students using this textbook are assumed to have some mastery of Maple, which may make it unsuitable for Mathematica users or for courses that emphasize programming.
The introduction to the text lists the problems, academic goals, and algorithms covered. Each chapter focuses on one problem: Chapter 1 solves a minimization problem; chapter 2 deals with when to replace equipment like a car; chapters 3 through 6 deal with aspects of bioinformatics; chapter 7 with stock-market predictions; and chapter 8 with phylogenetic-tree generation.
Chapter 1, “Determination of the accurate location of an aircraft,” is a good example of the book’s organization and presentation of computational models. It poses a problem that is accessible to readers in any discipline: How do aircraft electronics compute position using data from standard avionics equipment? The authors build several models, error terms included, then use each model in Maple to solve the problem from three different approaches: first as a linear least squares, then as a mixed equation minimization, and finally as a nonlinear least squares. The chapter includes an error analysis of the solutions and verification of statistical confidence intervals.
Scientific Computation is far from a reference volume, and I would not recommend it as such. But the text makes an important contribution: It describes the thought process necessary to solve a problem computationally, considers the various possible models, and shows which ones lead to the most precise solutions. I recommend this text for instructors who are interested in problem-based or other interactive learning styles.