Conditioning
We define a problem as a function
- Well-conditioned if all small perturbations in
lead to small changes in . - Ill-conditioned if small perturbations in
lead to large changes in .
Perturbations can be from disturbances, noise and/or numerical errors. But how do we define small/large?
1. The Condition Number
For data
More precisely, we are interested in small perturbations:
If
1.1 Relative Condition Number
We may care about the relative perturbation
If
2. Matrix Vector Multiplcation
Consider computing
Because it shops up often, we define the condition number of a square matrix
. - For some
, . - If
where , then . - If the norm
is an norm, then and .
2.1 Floating Point Arithmetic
We represent floating point numbers as
is the mantissa, a -digit fraction . is the precision (23 bits for single precision, 52 bits for double precision). is the exponent. bit to represent the sign . is the base (usually ). - Machine epsilon
.
Now, we can say that for any
where . where . where . where .
So, every operation of floating point arithmetic introduces an error of at most
where . . .
3. Stability
We have a non-linear problem function from normed vector space
An algorithm
In other words, an algorithm is backward stable if it produces an exact answer to nearly the right question. An algorithm can be forward stable but not backward stable. Stability usually implies backwards stability.
3.1 Conditioning and Stability
Suppose a backwards stable algorithm