Numerical Analysis
Numerical Analysis
KENDALL E. ATKINSON
broad in their interests, and many of them were interested in and contributed to
numerical analysis. For a general history of numerical analysis up to 1900, see [17].
1.2. An early mathematical model. One of the most important and inuential of the early mathematical models in science was that given by Newton to describe
the eect of gravity. According to this model, the force of gravity on a body of mass
m due to the Earth has magnitude
Gmme
r2
where me is the mass of the Earth, r is the distance between the centers of the two
bodies, and G is the universal gravitational constant. The force on m is directed
towards the center of gravity of the Earth. Newtons model of gravitation has led
to many problems that require solution by approximate means, usually involving the
numerical solution of ordinary dierential equations.
Following the development by Newton of his basic laws of physics, these were applied by many mathematicians and physicists to give mathematical models for solid
and uid mechanics. Civil and Mechanical Engineering use these models as the basis
for most modern work on solid structures and the motion of uids, and numerical
analysis has become a basic part of the work of researchers in these areas of engineering. For example, building modern structures makes major use of nite element
methods for solving the partial dierential equations associated with models of stress;
and computational uid mechanics is now a fundamental tool in designing new airplanes. In the 19th century, phenomena involving heat, electricity, and magnetism
were successfully modelled; and in the 20th century, relativistic mechanics, quantum
mechanics, and other theoretical constructs were created to extend and improve the
applicability of earlier ideas. For a general discussion of modelling, see [26].
F =
2. An Overview of Numerical Analysis. The following is a rough categorization of the mathematical theory underlying numerical analysis, keeping in mind
that there is often a great deal of overlap between the listed areas. For a compendium
on the current state on research in numerical analysis, see [14].
2.1. Numerical linear and nonlinear algebra. This refers to problems involving the solution of systems of linear and nonlinear equations, possibly with a very
large number of variables. Many problems in applied mathematics involve solving
systems of linear equations, with the linear system occurring naturally in some cases
and as a part of the solution process in other cases. Linear systems are usually written
using matrix-vector notation, Ax = b, with A the matrix of coecients for the system, x the column vector of the unknown variables x1 , . . . , xn , and b a given column
vector. Solving linear systems with up to a n = 1000 variables is now considered relatively straightforward in most cases. For small to moderate sized linear systems (say
n 1000), the favorite numerical method is Gaussian elimination and its variants;
this is simply a precisely stated algorithmic variant of the method of elimination of
variables that students rst encounter in elementary algebra. For larger linear systems, there are a variety of approaches depending on the structure of the coecient
matrix A. Direct methods lead to a theoretically exact solution x in a nite number
of steps, with Gaussian elimination the best known example. In practice, there are
errors in the computed value of x due to rounding errors in the computation, arising
from the nite length of numbers in standard computer arithmetic. Iterative methods
are approximate methods which create a sequence of approximating solutions of increasing accuracy. Linear systems are categorized according to many properties (e.g.
2
A may be symmetric about its main diagonal), and specialized methods have been
developed for problems with these special properties; see [1], [18].
Nonlinear problems are often treated numerically by reducing them to a sequence
of linear problems. As a simple but important example, consider the problem of
solving a nonlinear equation f (x) = 0. Approximate the graph of y = f (x) by the
tangent line at a point x(0) near the desired root, and use the root of the tangent
line to approximate the root of the original nonlinear function f (x). This leads to
Newtons method for rootnding:
f x(k)
(k+1)
(k)
x
= x (k) ,
k = 0, 1, 2, . . .
f x
This generalizes to handling systems of nonlinear equations. Let f (x) = 0 denote
a system of n nonlinear equations in n unknowns x1 , . . . , xn . Newtons method for
solving this system is given by
f
k = 0, 1, . . .
In this, f (x) is the Jacobian matrix of f (x), and the second equation is a linear system
of order n. There are numerous other approaches to solving nonlinear systems, most
based on using some type of approximation using linear functions; see [24].
An important related class of problems occur under the heading of optimization.
Given a real-valued function f (x) with x a vector of unknowns, we wish to nd a
value of x which minimizes f (x). In some cases x is allowed to vary freely, and in
other cases there are constraints on the values of x which can be considered; see [27].
Such problems occur frequently in business applications.
2.2. Approximation Theory. This category covers the approximation of functions and methods based on using such approximations. When evaluating a function
f (x) with x a real or complex number, keep in mind that a computer or calculator
can only do a nite number of operations. Moreover, these operations are the basic
arithmetic operations of addition, subtraction, multiplication, and division, together
with comparison operations such as determining whether x > y is true or false. With
the four basic arithmetic operations, we can evaluate polynomials
p(x) = a0 + a1 x + + an xn
(*)
and rational functions, which are polynomials divided by polynomials. Including the
comparison operations, we can evaluate dierent polynomials or rational functionson
dierent sets of real numbers x. The evaluation of all other functions, e.g. f (x) = x
or 2x , must be reduced to the evaluation of a polynomial or rational function that
approximates the given function with sucient accuracy. All function evaluations on
calculators and computers are accomplished in this manner. This topic is known as
approximation theory, and it is a well-developed area of mathematics; for an introduction, see [3, Chap. 3,4].
One method of approximation is called interpolation. Consider being given a
set of points (xi , yi ) , i = 0, 1, . . . , n, and then nding a polynomial (*) which satises p(xi ) = yi , i = 0, 1, . . . , n. The polynomial p(x) is said to interpolate the given
data points. Interpolation can be performed with functions other than polynomials (although these are the most popular category of interpolating functions), with
3
important cases being rational functions, trigonometric polynomials, and spline functions. Interpolation has a number of applications. If a function is known only at a
discrete set of data points x0 , . . . , xn , with yi = f (xi ), then interpolation can be used
to extend the denition to nearby points x. If n is at all large, then spline functions
are preferable to polynomials for this purpose. Spline functions are smooth piecewise polynomial functions with minimal oscillation, and they are used commonly in
computer graphics, statistics, and other applications; see [12].
Most numerical methods for the approximation of integrals and derivatives of a
given function f (x) are based on interpolation. Begin by constructing an interpolating function p(x) that approximates f (x), often a polynomial, and then integrate
or dierentiate p(x) to approximate the corresponding integral or derivative of f (x).
For an introduction to this area, see [3, Chap. 5]; and for a more complete view of
numerical integration, see [25].
2.3. Solving dierential and integral equations. Most mathematical models used in the natural sciences and engineering are based on ordinary dierential
equations, partial dierential equations, and integral equations. The numerical methods for these equations are primarily of two types. The rst type approximates the
unknown function in the equation by a simpler function, often a polynomial or piecewise polynomial function, choosing it to satisfy the original equation approximately.
Among the best known of such methods is the nite element method for solving partial dierential equations; see [8]. The second type of numerical method approximates
the derivatives or integrals in the equation of interest, generally solving approximately
for the solution function at a discrete set of points. Most initial value problems for
ordinary dierential equations and partial dierential equations are solved in this
way, and the numerical procedures are often called nite dierence methods, primarily for historical reasons. Most numerical methods for solving dierential and integral
equations involve both approximation theory and the solution of quite large linear
and nonlinear systems. For an introduction to the numerical analysis of dierential
equations, see [2], [7], [22], [30], [31]; for integral equations, see [4], [9].
2.4. Eects of computer hardware. Virtually all numerical computation is
carried out on digital computers, and their structure and properties aect the structure of numerical algorithms, especially when solving large linear systems. First and
foremost, the computer arithmetic must be understood. Historically, computer arithmetic varied greatly between dierent computer manufacturers, and this was a source
of many problems when attempting to write software which could be easily ported
between dierent computers. This has been lessoned signicantly with the development of the IEEE (Institute for Electrical and Electronic Engineering) standard for
computer oating-point arithmetic. All small computers have adopted this standard,
and most larger computer manufacturers have done so as well. For a discussion of the
standard and of computer oating-point arithmetic in general, see [28].
For large scale problems, especially in numerical linear algebra, it is important to
know how the elements of an array A or a vector x are stored in memory. Knowing
this can lead to much faster transfer of numbers from the memory into the arithmetic
registers of the computer, thus leading to faster programs. A somewhat related topic is
that of pipelining. This is a widely used technique whereby the execution of computer
operations are overlapped, leading to faster execution. Machines with the same basic
clock speed can have very dierent program execution times due to dierences in
pipelining and dierences in the way memory is accessed.
4
Most present-day computers are sequential in their operation, but parallel computers are being used ever more widely. Some parallel computers have independent
processors that all access the same computer memory (shared memory parallel computers), whereas other parallel computers have separate memory for each processor
(distributed memory parallel computers). Another form of parallelism is the use of
pipelining of vector arithmetic operations. Some parallel machines are a combination
of some or all of these patterns of memory storage and pipelining. With all parallel
machines, the form of a numerical algorithm must be changed in order to make best
use of the parallelism. For examples of this in numerical linear algebra, see [13].
3. Common Perspectives in Numerical Analysis. Numerical analysis is
concerned with all aspects of the numerical solution of a problem, from the theoretical development and understanding of numerical methods to their practical implementation as reliable and ecient computer programs. Most numerical analysts
specialize in small sub-areas, but they share some common concerns, perspectives,
and mathematical methods of analysis. These include the following.
1. When presented with a problem that cannot be solved directly, then replace
it with a nearby problem which can be solved more easily. Examples are
the use of interpolation in developing numerical integration methods and
rootnding methods; see [3, Chaps 2,5].
2. There is widespread use of the language and results of linear algebra, real
analysis, and functional analysis (with its simplifying notation of norms, vector spaces, and operators). See [5].
3. There is a fundamental concern with error, its size, and its analytic form.
When approximating a problem, as above in item 1, it is prudent to understand the nature of the error in the computed solution. Moreover, understanding the form of the error allows creation of extrapolation processes to
improve the convergence behavior of the numerical method.
4. Stability is a concept referring to the sensitivity of the solution of a problem
to small changes in the data or the parameters of the problem. Consider the
following well-known example. The polynomial
p(x) = (x 1) (x 2) (x 3) (x 4) (x 5) (x 6) (x 7)
= x7 28x6 + 322x5 1960x4 + 6769x3 12132x2 + 13068x 5040
has roots which are very sensitive to small changes in the coecients. If the
coecient of x6 is changed to 28.002, then the original roots 5 and 6 are
perturbed to the complex numbers 5.459 0.540i, a very signicant change
in values. Such a polynomial p(x) is called unstable or ill-conditioned with
respect to the rootnding problem. In developing numerical methods for
solving problems, they should be no more sensitive to changes in the data
than the original problem to be solved. Moreover, one tries to formulate the
original problem to be stable or well-conditioned. Excellent discussions of this
topic are given in [21], with particular emphasis on numerical linear algebra.
5. Numerical analysts are very interested in the eects of using nite precision
computer arithmetic. This is especially important in numerical linear algebra, as large problems contain many rounding errors; see [21].
6. Numerical analysts are generally interested in measuring the eciency of
algorithms. What is the cost of a particular algorithm. For example, the
use of Gaussian elimination to solve a linear system Ax = b containing n
5
URL
www.netlib.org
gams.nist.gov
Location
Oak Ridge National Laboratory
National Institute of Standards and Technology