Page 13 - Compact Numerical Methods For Computers
P. 13
A starting point 3
possibly under-utilised small computer, this work is directed to those who share
my philosophy that human beings are better able to comprehend and deal with
small programs and systems than large ones. That is to say, it is anticipated that
the costs involved in implementing, modifying and correcting a small program will
be lower for small algorithms than for large ones, though this comparison will
depend greatly on the structure of the algorithms. By way of illustration, I
implemented and tested the eigenvalue/vector algorithm (algorithm 13) in under
half an hour from a 10 character/second terminal in Aberystwyth using a Xerox
Sigma 9 computer in Birmingham. The elapsed time includes my instruction in the
use of the system which was of a type I had not previously encountered. I am
grateful to Mrs Lucy Tedd for showing me this system. Dr John Johns of the
Herzberg Institute of Astrophysics was able to obtain useful eigensolutions from
the same algorithm within two hours of delivery of a Hewlett-Packard 9825
programmable calculator. He later discovered a small error in the prototype of
the algorithm.
The topics covered in this work are numerical linear algebra and function
minimisation. Why not differential equations? Quite simply because I have had
very little experience with the numerical solution of differential equations except
by techniques using linear algebra or function minimisation. Within the two broad
areas, several subjects are given prominence. Linear equations are treated in
considerable detail with separate methods given for a number of special situations.
The algorithms given here are quite similar to those used on larger machines. The
algebraic eigenvalue problem is also treated quite extensively, and in this edition, a
method for complex matrices is included. Computing the eigensolutions of a general
square matrix is a problem with many inherent difficulties, but we shall not dwell on
these at length.
Constrained optimisation is still a topic where I would be happier to offer more
material, but general methods of sufficient simplicity to include in a handbook of this
sort have eluded my research efforts. In particular, the mathematical programming
problem is not treated here.
Since the aim has been to give a problem-solving person some tools with which
to work, the mathematical detail in the pages that follow has been mostly confined
to that required for explanatory purposes. No claim is made to rigour in any
‘proof’, though a sincere effort has been made to ensure that the statement of
theorems is correct and precise.
1.2. MACHINE CHARACTERISTICS
In the first edition, a ‘small computer’ was taken to have about 6000 characters of
main memory to hold both programs and data. This logical machine, which might be
a part of a larger physical computer, reflected the reality facing a quite large group of
users in the mid- to late-1970s.
A more up-to-date definition of ‘small computer’ could be stated, but it is not
really necessary. Users of this book are likely to be those scientists, engineers, and
statisticians who must, for reasons of financial or administrative necessity or
convenience, carry out their computations in environments where the programs