Numerical analysis

From Wikipedia, the free encyclopedia

Numerical analysis is the study of methods for the problems of continuous mathematics (as distinguished from discrete mathematics).

For thousands of years, man has used mathematics for construction, warfare, engineering, accounting and many other puposes. The earliest mathematical writing is perhaps the famous Babylonian tablet Plimpton 322, dating from approximately 1800 BC. On it one can read a list of pythagorean triples: triples of numbers, like (3,4,5), which are the lengths of the sides of a right-angle triangle. The Babylonian tablet YBC 7289 gives an approximation of \sqrt{2} , [1] which is the length of the diagonal of a square whose side measures one unit of length. Being able to compute the sides of a triangle (and hence, being able to compute square roots) is extremely important, for instance, in carpentry and construction. If the roof of a house makes a right angle isosceles triangle whose side is 3 meters long, then the central support beam must be \sqrt{18}\approx4.2426 meters longer than the side beams.

Numerical analysis continues this long tradition of practical mathematical calculations. Much like the Babylonian approximation to \sqrt{2}, modern numerical analysis does not seek exact answers, because exact answers are impossible to obtain in practice. Instead, much of numerical analysis is concerned with obtaining approximate solutions while maintaining reasonable bounds on errors.

Numerical analysis naturally finds applications in all fields of engineering and the physical sciences, but in the 21st century, the life sciences and even the arts have adopted elements of scientific computations. Ordinary differential equations appear in the movement of heavenly bodies (planets, stars and galaxies); optimization occurs in portfolio management; numerical linear algebra is essential to quantitative psychology; stochastic differential equations and Markov chains are essential in simulating living cells for medicine and biology.

Before the advent of modern computers numerical methods often depended on hand interpolation in large printed tables. Nowadays (after mid 20th century) these tables have fallen into disuse, because computers can calculate the required functions. The interpolation algorithms nevertheless may be used as part of the software for solving differential equations and the like.

Contents

[edit] General introduction

We will now outline several important themes of numerical analysis. The overall goal is the design and analysis of techniques to give approximate solutions to hard problems. To fix ideas, the reader might consider the following problems and methods:

  • If a company wants to put a toothpaste commercial on television, it might produce five commercials and then choose the best one by testing each one on a focus group. This would be an example of a Monte Carlo optimization method.
  • To send a rocket to the moon, rocket scientists will need a rocket simulator. This simulator will essentially be an integrator for an ordinary differential equation.
  • Car companies can improve the crash safety of their vehicles by using computer simulations of car crashes. These simulations are essentially solving partial differential equations numerically.
  • Hedge funds (secretive financial companies) use tools from all fields of numerical analysis to calculate the value of stocks and derivatives more precisely than other market participants.
  • Airlines use sophisticated optimization algorithms to decide ticket prices, airplane and crew assignments and fuel needs. This field is also called operations research.
  • Insurance companies use numerical programs for actuarial analysis.

[edit] History

The field of numerical analysis predates the invention of modern computers by many centuries. Linear interpolation was already in use more than 2000 years ago. Many great mathematicians of the past were preoccupied by numerical analysis, as is obvious from the names of important algorithms like Newton's method, Lagrange interpolation polynomial, Gaussian elimination, or Euler's method.

To facilitate computations by hand, large books were produced with formulas and tables of data such as interpolation points and function coefficients. Using these tables, often calculated out to 16 decimal places or more for some functions, one could look up values to plug into the formulas given and achieve very good numerical estimates of some functions. The canonical work in the field is the NIST publication edited by Abramowitz and Stegun, a 1000-plus page book of a very large number of commonly used formulas and functions and their values at many points. The function values are no longer very useful when a computer is available, but the large listing of formulas can still be very handy.

The mechanical calculator was also developed as a tool for hand computation. These calculators evolved into electronic computers in the 1940s, and it was then found that these computers were also useful for administrative purposes. But the invention of the computer also influenced the field of numerical analysis, since now longer and more complicated calculations could be done.

[edit] Direct and iterative methods

Direct vs iterative methods

Consider the problem of solving

3x3 + 4 = 28

for the unknown quantity x.

Direct Method
3x3 + 4 = 28.
Subtract 4 3x3 = 24.
Divide by 3 x3 = 8.
Take cube roots x = 2.

For the iterative method, apply the bisection method to f(x) = 3x3 + 24. The initial values are a = 0,b = 3,f(a) = 4,f(b) = 85.

Iterative Method
a b mid f(mid)
0 3 1.5 14.125
1.5 3 2.25 38.17...
1.5 2.25 1.875 23.77...
1.875 2.25 2.0625 30.32...

We conclude from this table that the solution is between 1.875 and 2.0625. The algorithm might return any number in that range with an error less than 0.2.


Direct methods compute the solution to a problem in a finite number of steps. These methods would give the precise answer if they were performed in infinite precision arithmetic. Examples include Gaussian elimination, the QR factorization method for solving systems of linear equations, and the simplex method of linear programming. In practice, finite precision is used and the result is an approximation of the true solution (assuming stability).

In contrast to direct methods, iterative methods are not expected to terminate in a number of steps. Starting from an initial guess, iterative methods form successive approximations that converge to the exact solution only in the limit. A convergence criterion is specified in order to decide when a sufficiently accurate solution has (hopefully) been found. Even in infinite precision arithmetic these methods would not reach the solution in finitely many steps (in general). Examples include Newton's method, the bisection method, and Jacobi iteration. In computational matrix algebra, iterative methods are generally needed for large problems.

Iterative methods are more common than direct methods in numerical analysis. Some methods are direct in principle but are usually used as though they were not, e.g. GMRES and the conjugate gradient method. For these methods the number of steps needed to obtain the exact solution is so large that an approximation is accepted in the same manner as for an iterative method.

[edit] Discretization

A discretization example

A race car drives along a track for two hours. What distance has it covered?

If we know that the race car was going at 150Km/h after one hour, we might guess that the total distance travelled is 300Km. If we know in addition that the car was travelling at 140Km/h at the 20 minutes mark, and at 180Km/h at the 1:40 mark, then we can divide the two hours into three blocks of 40 minutes. In the first block of 40 minutes, the car travelled roughly 93.3Km, in the interval between 0:40 and 1:20 the car travelled roughly 100Km, and in the interval from 1:20 to 2:00, the car travelled roughly 120Km, for a total of 313.3Km.

Essentially, we have taken the continuously varying speed v(t) and approximated it using a speed \hat v(t) which is constant on each of the three intervals of 40 minutes.

How far is Schumacher driving?
Enlarge
How far is Schumacher driving?

Furthermore, continuous problems must sometimes be replaced by a discrete problem whose solution is known to approximate that of the continuous problem; this process is called discretization. For example, the solution of a differential equation is a function. This function must be represented by a finite amount of data, for instance by its value at a finite number of points at its domain, even though this domain is a continuum.

[edit] The generation and propagation of errors

The study of errors forms an important part of numerical analysis. There are several ways in which error can be introduced in the solution of the problem.


[edit] Round-off

Round-off errors arise because it is impossible to represent all real numbers exactly on a finite-state machine (which is what all practical digital computers are).

On a pocket calculator, if one enters 0.0000000000001 (or the maximum number of zeros possible), then a +, and then 100000000000000 (again, the maximum number of zeros possible), one will obtain the number 100000000000000 again, and not 100000000000000.0000000000001. The calculator's answer is incorrect because of roundoff in the calculation.

[edit] Truncation and discretization error

Truncation errors are committed when an iterative method is terminated and the approximate solution differs from the exact solution. Similarly, discretization induces a discretization error because the solution of the discrete problem does not coincide with the solution of the continuous problem. For instance, in the iteration above to compute the solution of 3x3 + 4 = 28, after 10 or so iterations, we conclude that the root is roughly 1.99 (for example). We therefore have a truncation error of 0.01.

Once an error is generated, it will generally propagate through the calculation. For instance, we have already noted that the operation + on a calculator (or a computer) is inexact. It follows that a calculation of the type a+b+c+d+e is even more inexact.

[edit] Numerical stability and well posedness

Numerical stability and well posedness

Ill posed problem: Take the function f(x) = 1 / (x − 1). The data is x and the output is f(x). Note that f(1.1) = 10 and f(1.001) = 1000. So a change in x of less than 0.1 turns into a change in f(x) of nearly 1000. Evaluating f(x) near x = 1 is an ill-posed (or ill-conditioned) problem.

Well-posed problem: By contrast, the function f(x)=\sqrt{x} is continuous so the problem of computing \sqrt{x} is well-posed.

Numerically unstable method: Still, some algorithms which are meant to compute \sqrt{x} are fallible. Consider the following iteration[2] Start with x1 an approximation of \sqrt{2} (for instance, take x1 = 1.4) and then use the iteration x_{k+1}=(x_k^2-2)^2+x_k. Then the iterates are

 x1 = 1.4
 x2 = 1.4016
 x3 = 1.4028614885...
 x4 = 1.403884186...
 x1000000 = 1.414213437...

On the other hand, if we start from x1 = 1.42, we obtain the iterates

 x2 = 1.42026896
 x3 = 1.42056...
 x20 = 1.445069...
 x27 = 9.34181...
 x28 = 7280.2284...

and the iteration diverges. Because this algorithm fails for certain initial guesses near \sqrt{2}, we say that it is numerically unstable.

Numerically stable method: The Newton method for \sqrt{a} is x1 = 1 and x_{k+1}={x_k + a/x_k \over 2} and is extremely stable. The first few iterations for a = 2 are

x1 = 1
x2 = 1.5
x3 = 1.416...
x4 = 1.414215...
x5 = 1.41421356237469...
x6 = 1.41421356237309...,

which is essentially exact to the last displayed digit. The method will work well even if we change a, x1 and/or introduce small errors at every step of the computation. [3]

This leads to the notion of numerical stability: an algorithm is numerically stable if an error, once it is generated, does not grow too much during the calculation. This is only possible if the problem is well-conditioned, meaning that the solution changes by only a small amount if the problem data are changed by a small amount. Indeed, if a problem is ill-conditioned, then any error in the data will grow a lot.

However, an algorithm that solves a well-conditioned problem may or may not be numerically stable. An art of numerical analysis is to find a stable algorithm for solving a well-posed mathematical problem.

[edit] Areas of study

The field of numerical analysis is divided in different disciplines according to the problem that is to be solved.

[edit] Computing values of functions

One of the simplest problems is the evaluation of a function at a given point. The most straightforward approach, of just plugging in the number in the formula is sometimes not very efficient. For polynomials, a better approach is using the Horner scheme, since it reduces the necessary number of multiplications and additions. Generally, it is important to estimate and control round-off errors arising from the use of floating point arithmetic.

[edit] Interpolation, extrapolation and regression

Examples of Interpolation, extrapolation and regression

Interpolation: If the temperature at noon was 20 degrees centigrade and at 2pm we observe that the temperature is 14 degrees centigrade, we might guess that at 1pm the temperature was in fact the average of 14 and 20, which is 17 degrees centigrade. This would correspond to a linear interpolation of the temperature between the times of noon and 2pm.

Extrapolation: If the gross domestic product of a country has been growing an average of 5% per year and was 100 billion dollars last year, we might extrapolate that it will be 105 billion dollars this year.

Regression: Given two points on a piece of paper, there is a line that goes through both points. Given twenty points on a piece of paper, what is the line that goes through them? In most cases, there is no straight line going through the twenty points. In linear regression, given n points, we compute a line that passes as close as possible to those n points.

A line through 20 points?
A line through 20 points?

Interpolation solves the following problem: given the value of some unknown function at a number of points, what value does that function have at some other point between the given points? A very simple method is to use linear interpolation, which assumes that the unknown function is linear between every pair of successive points. This can be generalized to polynomial interpolation, which is sometimes more accurate but suffers from Runge's phenomenon. Other interpolation methods use localized functions like splines or wavelets.

Extrapolation is very similar to interpolation, except that now we want to find the value of the unknown function at a point which is outside the given points.


Regression is also similar, but it takes into account that the data is imprecise. Given some points, and a measurement of the value of some function at these points (with an error), we want to determine the unknown function. The least squares-method is one popular way to achieve this.

[edit] Solving equations and systems of equations

Another fundamental problem is computing the solution of some given equation. Two cases are commonly distinguished, depending on whether the equation is linear or not. For instance, the equation 2x + 5 = 3 is linear while 2x2 + 5 = 3 is not.

Much effort has been put in the development of methods for solving systems of linear equations. Standard direct methods i.e. methods that use some matrix decomposition are Gaussian elimination, LU decomposition, Cholesky decomposition for symmetric (or hermitian) and positive-definite matrix, and QR decomposition for non-square matrices. Iterative methods such as the Jacobi method, Gauss-Seidel method, successive over-relaxation and conjugate gradient method are usually preferred for large systems.

Root-finding algorithms are used to solve nonlinear equations (they are so named since a root of a function is an argument for which the function yields zero). If the function is differentiable and the derivative is known, then Newton's method is a popular choice. Linearization is another technique for solving nonlinear equations.

[edit] Solving eigenvalue or singular value problems

Several important problems can be phrased in terms of eigenvalue decompositions or singular value decompositions. For instance, the spectral image compression algorithm [4] is based on the singular value decomposition. The corresponding tool in statistics is called principal component analysis. One application is to automatically find the 100 top subjects of discussion on the web, and to then classify each web page according to which subject it belongs to.

[edit] Optimization

Optimization, differential equations
How much for a glass of lemonade?

Optimization: Say you sell lemonade at a lemonade stand, and notice that at 1$, you can sell 197 glasses of lemonade per day, and that for each increase of 0.01$, you will sell one less lemonade per day. The optimization problem is to find the price of lemonade at which your profit per day is largest possible, ignoring production costs. If you could charge 1.485$, you would maximize your profit, but due to the constraint of having to charge a whole cent amount, charging 1.49$ per glass will yield the maximum profit of 220.52$ per day.

A feather buffeted by 100 ventilators. The arrows point in the wind direction. True trajectory is in black, Euler's method in red.

Differential equation: If you set up 100 fans to blow air from one end of the room to the other and then you drop a feather into the wind, what happens? The feather will follow the air currents, which may be very complex. One approximation is to measure the speed at which the air is blowing near the feather every second, and advance the simulated feather as if it were moving in a straight line at that same speed for one second, before measuring the wind speed again. This is called the Euler method for solving an ordinary differential equation.

Optimization problems ask for the point at which a given function is maximized (or minimized). Often, the point also has to satisfy some constraints.

The field of optimization is further split in several subfields, depending on the form of the objective function and the constraint. For instance, linear programming deals with the case that both the objective function and the constraints are linear. A famous method in linear programming is the simplex method.

The method of Lagrange multipliers can be used to reduce optimization problems with constraints to unconstrained optimization problems.

[edit] Evaluating integrals

Main article: Numerical integration
Numerical integration

How much paint would you need to give the Statue of Liberty a fresh coat? She is 151 feet tall and her waist is 35' across,[5] so a first approximation is that it would require the same amount of paint you would need to paint a 151x35x35 room. Counting the four walls and the ceiling, that would make a surface area of 22,365 square feet. One gallon of paint covers about 350 square feet, so by this estimate, we might require 64 gallons of paint.

Lady Liberty is in fact copper plated, not painted.

However, it may be more precise to estimate each piece on its own. We can approximate the parts below the neck with a 95 feet tall cylinder whose radius is 17 feet. The head is roughly a sphere of radius 15 feet. The arm is another 42' long cylinder with a radius of 6', the tablet is a 24'x14'x2' box. Adding all the surface areas gives roughly 15385 square feet, which requires an approximate 44 gallons of paint.

To further improve our estimate, we would measure the folds in her cloth, how non-spherical her head really is and so on. This process is called numerical integration.

Numerical integration, in some instances also known as numerical quadrature, asks for the value of a definite integral. Popular methods use one of the Newton-Cotes formulas (like the midpoint rule or Simpson's rule) or Gaussian quadrature. These methods rely on a "divide and conquer" strategy, whereby an integral on a relatively large set is broken down into integrals on smaller sets. In higher dimensions, where these methods become prohibitively expensive in terms of computational effort, one may use Monte Carlo or quasi-Monte Carlo methods, or, in modestly large dimensions, the method of sparse grids.

[edit] Differential equations

Main articles: Numerical ordinary differential equations, Numerical partial differential equations.

Numerical analysis is also concerned with computing (in an approximate way) the solution of differential equations, both ordinary differential equations and partial differential equations.

Partial differential equations are solved by first discretizing the equation, bringing it into a finite-dimensional subspace. This can be done by a finite element method, a finite difference method, or (particularly in engineering) a finite volume method. The theoretical justification of these methods often involves theorems from functional analysis. This reduces the problem to the solution of an algebraic equation.

[edit] Software

Since the late twentieth century, most algorithms are implemented and run on a computer. The Netlib repository contains various collections of software routines for numerical problems, mostly in Fortran and C. Commercial products implementing many different numerical algorithms include the IMSL and NAG libraries; a free alternative is the GNU Scientific Library.

MATLAB is a popular commercial programming language for numerical scientific calculations, but there are commercial alternatives such as S-PLUS and IDL, as well as free and open source alternatives such as FreeMat, GNU Octave (similar to Matlab), R (similar to S-PLUS) and certain variants of Python. Performance varies widely: while vector and matrix operations are usually fast, scalar loops vary in speed by more than an order of magnitude. [6]

Many computer algebra systems such as Mathematica or Maple (free software systems include SAGE, Maxima, Axiom, calc and Yacas), can also be used for numerical computations. However, their strength typically lies in symbolic computations. Also, any spreadsheet software can be used to solve simple problems relating to numerical analysis.

[edit] See also

[edit] Notes

  1. ^ The approximation of the square root of 2 is four sexagesimal figures, which is about six decimal figures.
    Photograph, illustration, and description of the root(2) tablet from the Yale Babylonian Collection
  2. ^ This is a fixed point iteration for the equation x = (x2 − 2)2 + x = f(x), whose solutions include \sqrt{2}. The iterates always move to the right since f(x)\geq x. Hence x_1=1.4<\sqrt{2} converges and x_1=1.42>\sqrt{2} diverges.
  3. ^ The decimal expansions are finite but long in these examples, so the least significant digits are replaced by ellipses.
  4. ^ [1]
  5. ^ Information about the Statue of Liberty
  6. ^ Speed comparison of various number crunching packages

[edit] References

  • Gilat, Amos (2004). MATLAB: An Introduction with Applications 2nd Edition. John Wiley & Sons. ISBN 0471694207.
  • Hildebrand, F. B. (1987 (repr. of 1974 ed.)). Introduction to Numerical Analysis, 2nd Ed.. Dover.
  • Leader, Jeffery J. (2004). Numerical Analysis and Scientific Computation. Addison Wesley.
  • Wolfram, Stephen (1999). The Mathematica Book, Fourth Ed.. Cambridge University Press.

[edit] External links

Wikibooks
Wikibooks has more on the topic of
  • Lloyd N. Trefethen, "Numerical analysis", May 2006, 20 pages, to appear in: Timothy Gowers and June Barrow-Green (editors), Princeton Companion of Mathematics, Princeton University Press.
  • Numerische Mathematik, volumes 1-66, Springer, 1959-1994 (searchable; pages are images). (English) (German)