Condition number

In the field of numerical analysis, the condition number of a function measures how much the output value of the function can change for a small change in the input argument. This is used to measure how sensitive a function is to changes or errors in the input, and how much error in the output results from an error in the input. Very frequently, one is solving the inverse problem: given formula_1 one is solving for "x," and thus the condition number of the (local) inverse must be used. In linear regression the condition number of the moment matrix can be used as a diagnostic for multicollinearity.
The condition number is an application of the derivative, and is formally defined as the value of the asymptotic worst-case relative change in output for a relative change in input. The "function" is the solution of a problem and the "arguments" are the data in the problem. The condition number is frequently applied to questions in linear algebra, in which case the derivative is straightforward but the error could be in many different directions, and is thus computed from the geometry of the matrix. More generally, condition numbers can be defined for non-linear functions in several variables.
A problem with a low condition number is said to be well-conditioned, while a problem with a high condition number is said to be ill-conditioned. In non-mathematical terms, an ill-conditioned problem is one where, for a small change in the inputs (the independent variables or the right-hand-side of an equation) there is a large change in the answer or dependent variable. This means that the correct solution/answer to the equation becomes hard to find. The condition number is a property of the problem. Paired with the problem are any number of algorithms that can be used to solve the problem, that is, to calculate the solution. Some algorithms have a property called backward stability. In general, a backward stable algorithm can be expected to accurately solve well-conditioned problems. Numerical analysis textbooks give formulas for the condition numbers of problems and identify known backward stable algorithms.
As a rule of thumb, if the condition number formula_2, then you may lose up to formula_3 digits of accuracy on top of what would be lost to the numerical method due to loss of precision from arithmetic methods. However, the condition number does not give the exact value of the maximum inaccuracy that may occur in the algorithm. It generally just bounds it with an estimate (whose computed value depends on the choice of the norm to measure the inaccuracy).
General definition in the context of error analysis.
Given a problem formula_4 and an algorithm formula_5 with an input "x", the "absolute" error is formula_6 and the "relative" error is formula_7.
In this context, the "absolute" condition number of a problem "f" is
and the "relative" condition number is
Matrices.
For example, the condition number associated with the linear equation
"Ax" = "b" gives a bound on how inaccurate the solution "x" will be after approximation. Note that this is before the effects of round-off error are taken into account; conditioning is a property of the matrix, not the algorithm or floating-point accuracy of the computer used to solve the corresponding system. In particular, one should think of the condition number as being (very roughly) the rate at which the solution "x" will change with respect to a change in "b". Thus, if the condition number is large, even a small error in "b" may cause a large error in "x". On the other hand, if the condition number is small, then the error in "x" will not be much bigger than the error in "b".
The condition number is defined more precisely to be the maximum ratio of the relative error in "x" to the relative error in "b".
Let "e" be the error in "b". Assuming that "A" is a nonsingular matrix, the error in the solution "A"−1"b" is "A"−1"e". The ratio of the relative error in the solution to the relative error in "b" is
The maximum value (for nonzero "b" and "e") is then seen to be the product of the two operator norms as follows:
The same definition is used for any consistent norm, i.e. one that satisfies
When the condition number is exactly one (which can only happen if "A" is a scalar multiple of a linear isometry), then a solution algorithm can find (in principle, meaning if the algorithm introduces no errors of its own) an approximation of the solution whose precision is no worse than that of the data.
However, it does not mean that the algorithm will converge rapidly to this solution, just that it will not diverge arbitrarily because of inaccuracy on the source data (backward error), provided that the forward error introduced by the algorithm does not diverge as well because of accumulating intermediate rounding errors.
The condition number may also be infinite, but this implies that the problem is ill-posed (does not possess a unique, well-defined solution for each choice of data; that is, the matrix is not invertible), and no algorithm can be expected to reliably find a solution.
The definition of the condition number depends on the choice of norm, as can be illustrated by two examples.
If formula_13 is the norm defined in the square-summable sequence space ℓ2 (which matches the usual distance in a standard Euclidean space and is usually noted as formula_14), then
where formula_16 and formula_17 are maximal and minimal singular values of formula_18 respectively. Hence:
The condition number with respect to "L"2 arises so often in numerical linear algebra that it is given a name, the condition number of a matrix.
If formula_13 is the norm defined in the sequence space ℓ∞ of all bounded sequences (which matches the maximum of distances measured on projections into the base subspaces and is usually denoted by formula_27), and formula_18 is lower triangular non-singular (i.e., formula_29), then
The condition number computed with this norm is generally larger than the condition number computed with square-summable sequences, but it can be evaluated more easily (and this is often the only practicably computable condition number, when the problem to solve involves a "non-linear algebra", for example when approximating irrational and transcendental functions or numbers with numerical methods).
If the condition number is not too much larger than one, the matrix is well-conditioned, which means that its inverse can be computed with good accuracy. If the condition number is very large, then the matrix is said to be ill-conditioned. Practically, such a matrix is almost singular, and the computation of its inverse, or solution of a linear system of equations is prone to large numerical errors. A matrix that is not invertible has condition number equal to infinity.
Nonlinear.
Condition numbers can also be defined for nonlinear functions, and can be computed using calculus. The condition number varies with the point; in some cases one can use the maximum (or supremum) condition number over the domain of the function or domain of the question as an overall condition number, while in other cases the condition number at a particular point is of more interest.
One variable.
The condition number of a differentiable function formula_4 in one variable as a function is formula_32. Evaluated at a point formula_33, this is
Most elegantly, this can be understood as (the absolute value of) the ratio of the logarithmic derivative of formula_4, which is formula_36, and the logarithmic derivative of formula_33, which is formula_38, yielding a ratio of formula_39. This is because the logarithmic derivative is the infinitesimal rate of relative change in a function: it is the derivative formula_40 scaled by the value of formula_4. Note that if a function has a zero at a point, its condition number at the point is infinite, as infinitesimal changes in the input can change the output from zero to positive or negative, yielding a ratio with zero in the denominator, hence infinite relative change.
More directly, given a small change formula_42 in formula_33, the relative change in formula_33 is formula_45, while the relative change in formula_46 is formula_47. Taking the ratio yields
The last term is the difference quotient (the slope of the secant line), and taking the limit yields the derivative.
Condition numbers of common elementary functions are particularly important in computing significant figures and can be computed immediately from the derivative; see significance arithmetic of transcendental functions. A few important ones are given below:
Several variables.
Condition numbers can be defined for any function formula_4 mapping its data from some domain (e.g. an formula_50-tuple of real numbers formula_33) into some codomain (e.g. an formula_52-tuple of real numbers formula_46), where both the domain and codomain are Banach spaces. They express how sensitive that function is to small changes (or small errors) in its arguments. This is crucial in assessing the sensitivity and potential accuracy difficulties of numerous computational problems, for example, polynomial root finding or computing eigenvalues.
The condition number of formula_4 at a point formula_33 (specifically, its relative condition number) is then defined to be the maximum ratio of the fractional change in formula_46 to any fractional change in formula_33, in the limit where the change formula_58 in formula_33 becomes infinitesimally small:
where formula_13 is a norm on the domain/codomain of formula_4.
If formula_4 is differentiable, this is equivalent to:
where denotes the Jacobian matrix of partial derivatives of formula_4 at formula_33, and formula_67 is the induced norm on the matrix.