Você está na página 1de 4


discussions, stats, and author profiles for this publication at:


Numerical recipes: The art of

scientific computing
Article in Acta Applicandae Mathematicae June 1990
DOI: 10.1007/BF01321860




1 author:
Peter Frolkovi
Slovak University of Technology in Bratislava

Available from: Peter Frolkovi

Retrieved on: 16 November 2016

Acta ApplicandaeMathematicae 19 (1990)


Book Reviews

William H. Press, Brian P. Flannery, Saul A. Teukolsky, and William T. Vetterling:

Numerical Recipes: The Art of Scientific Computing, Cambridge University Press,
Cambridge, New York, New Rochelle, Melbourne, Sydney, 1986, 20 + 818 pp.

The book, Numerical Recipes, is a 'cookbook' on numerical computation. This title

and this comparison make the intentions of the four authors- scientists in academic
research and industry-clear and understandable. Like a cookbook, it leads us from
theoretical considerations about our intentions to their practical realization. In our
subject-scientific computing-it means from the mathematical and algorithmic
discussion of a topic to the concrete implementation of the resulting ideas to working
computer routines.
More precisely, you need not cook after all! The computer programs in this book
(more than 200 procedures) are available in several machine-readable formats in the
FORTRAN and PASCAL programming languages and you can use them as a
complete subroutine library for numerical computations. But Numerical Recipes gives
you another opportunity. You can open these 'black boxes' and modifying them to
suit your specific needs, because you will learn what secrets are inside.
The scope of this single volume is everything up to, but not including, partial
differential equations. Firstly, the classical topics of numerical analysis have been
included, each of them beyond their standard treatments; namely, solution of linear
algebraic equations, interpolation and extrapolation, integration of functions,
evaluation of functions, root-finding for nonlinear equations, minimization or
maximization of functions, eigensystems, integration of ordinary differential
equations, two point boundary-value problems, and an introduction to partial
differential equations.
Secondly, some subjects which have been separated from classical numerical
analysis only for 'historical' reasons, are covered in the book. They are special
functions, random numbers, sorting, Fourier transform spectral methods, statistical
description of data and modelling of data. This comprehensive treatment of both
subject groups enables us, among other things, to introduce all connections between
individual topics without reference to other sources.
Most cookbooks contain recipes of varying levels of complexity and this attractive
feature is valid also for Numerical Recipes. The authors expect that the readers are
mathematically literate and know how to program a computer. They do not demand
any a-priori knowledge of numerical analysis or numerical methods. The important



effect of the whole approach is that the reader can use the book at increasing levels of
exactness as his or her experience grows.
The first part of each chapter is mostly reserved for the method which is most
straightforward and pedagogical. You will learn about the possibilities of this and
other methods and why and where they work well. It is not the tendency of the book
to discuss every possible method for a concrete problem, but rather to choose from
them the favorite ones. The authors are very reasonable in their editorializing and
they offer practical judgements whenever they can.
Computer routines in F O R T R A N are placed into the main body of the text. Each
subroutine begins with an introductory comment explaining its purpose and calling
sequence and important comments are included in the programs. The first chapter
deals with program organization and control structures in F O R T R A N and it is very
interesting to follow the authors' efforts to explain how to write programs in this
language using the style of a structured programming. The deficiencies of ANSI
FORTRAN-77 standard with respect to this request, are removed with a little
typographical help and the result is that the subroutines in the book are readable and
fully in the language standard (on the IBM PC they run, for instance, in Microsoft
F O R T R A N 3.20 or later).
F O R T R A N language is the 'default' for this edition of Numerical Recipes but
PASCAL programmers are not penalized too much. All the routines are translated
into working PASCAL (on the IBM PC they run, for instance, in T U R B O Pascal 2.0
or later) and these translations are printed at the back of the book. In fact, much of the
work was done automatically by a computer program and so PASCAL programmers
with a strong sense of style may feel some discomfort. If it is necessary, important
remarks for PASCAL users are added to the text before the F O R T R A N programs.
The last chapter also contains an argumentation, why the authors did not consider the
PASCAL as a better language for serious numerical work in early 1985. One natural
remark - although the programs are copyrighted, the readers are authorized to make
one copy of each program for their own use, but the authors give no warranty that the
programs are free of error.
Numerical Recipes is very nearly a complete education on its subject and the format
of breaking up this extensive material into easy-use pieces is satisfactory. Each section
of every chapter ends with references and further reading for a concrete topic. In the
case of the existence of standard subroutine packages for the described problems,
short information about them are included.
The final sentences of the book contain an invitation for readers to comment on the
choice of a principal language for a subsequent edition of Numerical Recipes. Some
readers have probably already done so and in 1988 the Cambridge University Press
published Numerical Recipes in C. Also valuable is the edition of Numerical
Recipes Example Book with the listings and short descriptions of programs which
exercise and demonstrate all of the subroutines and functions used in Numerical
Recipes. These Example books (15 each in 1987) are available in all three
programming languages and also in machine-readable forms. If you plan to use more



than a few programs from Numerical Recipes or on more than one different computer,
then you will find it useful to be the owner of these demonstration programs. If you
have them in a machine-readable form, then it is helpful, but not necessary, to own the
Example Book.
Now two addresses where you can receive information on ordering all these books
and diskettes for IBM PC (15 each in 1987) and also for Apple Macintosh: Customer
Services Department, Cambridge University Press, Edinburgh Building, Shaftesbury
Road, Cambridge CB2 2RU, U.K. or Cambridge University Press, 510 North Avenue,
New Rochelle, NY 10801, U.S.A. Technical questions and requests for information on
other available formats (such as PS/2 or laptop 3.5" diskettes, magtapes for
VAX/VMS, UNIX, ULTRIX or IBM Mainframes... ) should be directed to Numerical Recipes Software, P.O. Box 243, Cambridge, MA 02238, U.S.A.
The last remark concerns my sources of information. I received the third reprint of
the book mentioned in the title of this review and the diskettes for the Main Book and
for the Example Book in FORTRAN, PASCAL, and C languages. I can report my
positive evaluation of the book and I can report that I did not meet any problems in
testing the programs.
Department of Numerical Method,
M F F UK, Mlynska dolina,
Bratislava, Czechoslovakia


Monique Pavel: Fundamentals of Pattern Recognition, Marcel Dekker, Inc., New

York, 1989.
Deciding whether two objects are the same is actually a fundamental problem of
mathematics. The statistical inference consisting of testing the hypothesis of the
equivalence of two probability density functions, the classification problem searching
for a way to decide whether two objects are equivalent, the recognition problem
deciding whether a given object belongs to a given class of prototypes, are all typical
examples of the problem. The last two examples are the main items of this book.
From the very beginning, the author considers an interesting and easily generalized
analogy between the classification, or recognition problem, and the word problem.
This well-known problem consists of deciding whether two words w 1, w2 e S* (S* is a
set of words formed by the concatenation of the elements of a finite set S) are
equivalent (in a group G defined by a finite number of defining relations) in the sense
that there exists a finite sequence of words ul . . . . . u, with ul = Wl, u, = w2 such that
ui is adjacent to ui+ 1, i = 1, 2 . . . . . n - 1.
The general setting of the problems is as follows. Let I1 and 12 be two images
defined by their invariant properties with respect to a set G of similarity transformations. Defining a set T ( T = G) of synonymy transformations, the classification
Acta Applicandae Mathernaticae 19 (1990).