Numerical analysis is the area of mathematics and computer science that creates, analyzes, and implements algorithms for solving numerically the problems of continuous mathematics. Such problems originate generally from real-world applications of algebra, geometry, and calculus, and they involve variables which vary continuously. These problems occur throughout the natural sciences, social sciences, medicine, engineering, and business. Beginning in the 1940's, the growth in power and availability of digital computers has led to an increasing use of realistic mathematical models in science, medicine, engineering, and business; and numerical analysis of increasing sophistication has been needed to solve these more accurate and complex mathematical models of the world. The formal academic area of numerical analysis varies from highly theoretical mathematical studies to computer science issues involving the effects of computer hardware and software on the implementation of specific algorithms.
Contents |
A rough categorization of the principal areas of numerical analysis is given below, keeping in mind that there is often a great deal of overlap between the listed areas. In addition, the numerical solution of many mathematical problems involves some combination of some of these areas, possibly all of them. There are also a few problems which do not fit neatly into any of the following categories.
Use computable functions \(p(x)\) to approximate the values of functions \(f(x)\) that are not easily computable or use approximations to simplify dealing with such functions. The most popular types of computable functions \(p(x)\) are polynomials, rational functions, and piecewise versions of them, for example spline functions. Trigonometric polynomials are also a very useful choice.
These equations occur widely as mathematical models for the physical world, and their numerical solution is important throughout the sciences and engineering.
Most numerical analysts specialize in small sub-areas of the areas listed above, but they share some common concerns and perspectives. These include the following.
Numerical analysts and applied mathematicians have a variety of tools which they use in developing numerical methods for solving mathematical problems. An important perspective, one mentioned earlier, which cuts across all types of mathematical problems is that of replacing the given problem with a 'nearby problem' which can be solved more easily. There are other perspectives which vary with the type of mathematical problem being solved.
Linear systems arise in many of the problems of numerical analysis, a reflection of the approximation of mathematical problems using linearization. This leads to diversity in the characteristics of linear systems, and for this reason there are numerous approaches to solving linear systems. As an example, numerical methods for solving partial differential equations often lead to very large 'sparse' linear systems in which most coefficients are zero. Solving such sparse systems requires methods that are quite different from those used to solve more moderate sized 'dense' linear systems in which most coefficients are non-zero.
There are 'direct methods' and 'iterative methods' for solving all types of linear systems, and the method of choice depends on the characteristics of both the linear system and on the computer hardware being used. For example, some sparse systems can be solved by direct methods, whereas others are better solved using iteration. With iteration methods, the linear system is sometimes transformed to an equivalent form that is more amenable to being solved by iteration; this is often called 'pre-conditioning' of the linear system.
With the matrix eigenvalue problem \(Ax=\lambda x\ ,\) it is standard to transform the matrix \(A\) to a simpler form, one for which the eigenvalue problem can be solved more easily and/or cheaply. A favorite choice are 'orthogonal transformations' because they are a simple and stable way to convert the given matrix \(A\ .\) Orthogonal transformations are also very useful in transforming other problems in numerical linear algebra. Of particular importance in this regard is the least squares solution of over-determined linear systems.
The linear programming problem was solved principally by the 'simplex method' until new approaches were developed in the 1980s, and it remains an important method of solution. The simplex method is a direct method that uses tools from the numerical solution of linear systems.
With a single equation \(f(x)=0\ ,\) and having an initial estimate \(x_{0}\) of the root \(\alpha\ ,\) approximate \(f(x)\) by its tangent line at the point \(\left(x_{0},f(x_{0})\right) \ .\) Find the root of this tangent line as an approximation to the root \(\alpha\) of the original equation \(f(x)=0\ .\) This leads to 'Newton's iteration method', \[ x_{n+1}=x_{n}-\frac{f(x_{n})}{f^{\prime}(x_{n})},\quad\quad n=0,1,\dots \] Other linear and higher degree approximations can be used, and these lead to alternative iteration methods. An important derivative-free approximation of Newton’s method is the 'secant method'.
For a system of \(m\) nonlinear equations for a solution vector \(x\) in \(R^m\ ,\) we approximate \(f(x)\) by its linear Taylor approximation about the initial estimate \(x_{0}\ .\) This leads to Newton's method for nonlinear systems, \[ x_{n+1}=x_{n}-[f^{\prime}(x_{n})]^{-1}f(x_{n}),\quad\quad n=0,1,\dots \] in which \(f^{\prime}(x)\) denotes the Jacobian matrix, of order \(m\times m\) for \(f(x)\ .\)
In practice, the Jacobian matrix for \(f(x)\) is often too complicated to compute directly; instead the partial derivatives in the Jacobian matrix are approximated using 'finite differences'. This leads to a 'finite difference Newton method'. As an alternative strategy and in analogy with the development of the secant method for the single variable problem, there is a similar rootfinding iteration method for solving nonlinear systems. It is called 'Broyden’s method' and it uses finite difference approximations of the derivatives in the Jacobian matrix, avoiding the evaluation of the partial derivatives of \(f(x)\ .\)
With such equations, there are usually at least two general steps involved in obtaining a nearby problem from which a numerical approximation can be computed; this is often referred to as 'discretization' of the original problem. The given equation will have a domain on which the unknown function is defined, perhaps an interval in one dimension and maybe a rectangle, ellipse, or other simply connected bounded region in two dimensions. Many numerical methods begin by introducing a mesh or grid on this domain, and the solution is to be approximated using this grid. Following this, there are several common approaches.
One approach approximates the equation with a simpler equation defined on the mesh. For example, consider approximating the boundary value problem \[ u^{\prime\prime}(s)=f\left( s,u(s)\right) ,\quad0\leq s\leq1 \] \[ u(0)=u(1)=0. \] Introduce a set of mesh points \(s_{j}=jh\ ,\) \(j=0,1,\dots,n\ ,\) with \(h=1/n\) for some given \(n\geq2\ .\) Approximate the boundary value problem by \[ \frac{1}{h^{2}}\left[ \tilde{u}_{n}(s_{j+1})-2\tilde{u}_{n}(s_{j})+\tilde {u}_{n}(s_{j-1})\right] =f\left( s_{j},\tilde{u}_{n}\left( s_{j}\right) \right) ,\quad j=1,\dots,n-1 \] \[ \tilde{u}_{n}(0)=\tilde{u}_{n}(1)=0 \] The second derivative in the original problem has been replaced by a numerical approximation to the second derivative. The new problem is a finite system of nonlinear equations, presumably amenable to solution by known techniques. The solution to this new problem is \(\tilde{u}_{n}\ ,\) and it is defined on only the mesh points \(\left\{ s_{j}\right\} \ .\)
A second approach to discretizing differential and integral equations is as follows. Choose a finite-dimensional family of functions, denoted here by \(\mathcal{F}\ ,\) with which to approximate the unknown solution function \(u\ .\) Write the given differential or integral equation as \(L\left( u\right) =0\ ,\) with \(L(v)\) a function for any function \(v\ ,\) perhaps over a restricted class of functions \(v\ .\) The numerical method consists of selecting a function \(\tilde{u}\in\mathcal{F}\) such that \(L(\tilde{u})\) is a small function in some sense. The various ways of doing this lead to 'Galerkin methods', 'collocation methods', and 'least square methods'.
Yet another approach is to reformulate the equation \(L\left( u\right) =0\) as an optimization problem. Such reformulations are a part of the classical area of mathematics known as the 'calculus of variations', a subject that reflects the importance in physics of minimization principles. The well-known 'finite element method' for solving elliptic partial differential equations is obtained in this way, although it often coincides with a Galerkin method.
The approximating functions in \(\mathcal{F}\) are often chosen as piecewise polynomial functions which are polynomial over the elements of the mesh chosen earlier. Such methods are sometimes called 'local methods'. When the approximating functions \(p\in\mathcal{F}\) are defined without reference to a grid, then the methods are sometimes called 'global methods' or 'spectral methods'. Examples of such \(\mathcal{F}\) are sets of polynomials or trigonometric functions of some finite degree or less.
With all three approaches to solving a differential or integral equations, the intent is that the resulting solution \(\tilde{u}\) be close to the desired solution \(u\ .\) The business of theoretical numerical analysis is to analyze such an algorithm and investigate the size of \(u-\tilde{u}\ .\)
For an historical account of early numerical analysis, see
For a current view of numerical analysis as taught at the undergraduate level, see
For a current view of numerical analysis as taught at the advanced undergraduate or beginning graduate level, see
For one perspective on a theoretical framework using functional analysis for studying many problems in numerical analysis, see
As references for numerical linear algebra, see
For an introduction to practical numerical analysis for solving ordinary differential equations, see
For information on computing aspects of numerical analysis, see
Internal references