maanantai 29. elokuuta 2011

Perusasioita tieteellisestä laskennasta

(Kirjoitan tämän kirja-arvion englanniksi kahdesta syystä: siksi että teos on englanninkielinen ja siksi että tuntui raskaalta löytää oikeita suomenkielisiä termejä - harjoituksen puutetta.)

---

Bertil Gustafsson's book Fundamentals of Scientific Computing (Springer, 2011) is a competent introduction to solving differential equations by numerical methods. Not only that, it does go rather deep into the subject in parts. Helpfully, the book also offers a fast review of calculus, even some elementary topics such as complex numbers and trigonometric functions.

The book is relatively short given the scope of the subject, a little over 300 pages. This also means that many topics are discussed shortly, or left out. One such thing is the implementation side of numerical methods, which often can be rather important.

I think some stress should be put on implementation issues. This could be easily done by including some classic examples of failures. (Or maybe this is a too pessimistic approach?)

A classic failure case was the programming mistake which destroyed on 4.6.1996 the Ariane 5 rocket in the first launch. And in the Gulf war in the beginning of 1991 there was a floating-point to fixed point conversion error in the control code of the Patriot missiles which lead them to miss the target and to fall on US troops.

In mathematical models details matter, as happened in 1991 in the sinking of Sleipner A offshore platform due to inaccurate NASTRAN calculations. Another example is the failure of Mariner I probe in 1962 because of forgetting the average sign from above the velocity symbol in the model.

One thing which Gustafsson discusses in a clear manner is the concept of well-posedness, which is very important in applications. Here he brings up the case (real story?) of using simulations of a nuclear power plant to either argue for the risks, or for the safe behavior, of the plant. It turned out that both sides were right, as the model was ill posed. Thus more work was needed in the modeling to find out what really would happen.

The book recommends using Matlab for solving the more advanced exercises. Matlab is a good choice at least in helping the readers and students to get started with problem-solving. However, as Matlab is in some part rather like a black box, it can sometimes happen that problems are solved without really understanding what happens.

Also, Matlab can lead to overconfidence in numerical methods, even in cases where the problem is ill posed or stated in such a way that the result of computation is garbage. Some simple examples of this would be nice to have.

Conclusion: Even though there is already a great deal of books written on the topic of scientific computing, especially using numerical methods for solving differential equations, Gustafsson book is a valuable addition to literature. With some care and supplementary material and exercises the book offers an excellent starting point for a university course on the topic.

---

PS. The book seems to be popular: when I made a Google search on it, to my surprise the third result pointed to a torrent site apparently offering the PDF version. Maybe because of copyright violation the site was not responding so I can't say whether there is some illegal distribution going on or not.

PS2. Several years ago I was involved in writing books about computational science, in the Finnish language. Most are available in PDF format, including the following books: Numeeriset menetelmät käytännössä, Optimointitehtävien ratkaiseminen, Rinnakkaisohjelmointi MPI:llä and Fortran 95/2003.

Ei kommentteja: