Iterative refinement
Template:Short description Template:Broader Script error: No such module "about". Script error: No such module "Unsubst". Iterative refinement is an iterative method proposed by James H. Wilkinson to improve the accuracy of numerical solutions to systems of linear equations.[1][2]
When solving a linear system due to the compounded accumulation of rounding errors, the computed solution may sometimes deviate from the exact solution Starting with iterative refinement computes a sequence which converges to when certain assumptions are met.
Description
For the Template:Mvarth iteration of iterative refinement consists of three steps: Template:Ordered list
The crucial reasoning for the refinement algorithm is that although the solution for cmScript error: No such module "Check for unknown parameters". in step (ii) may indeed be troubled by similar errors as the first solution, , the calculation of the residual rmScript error: No such module "Check for unknown parameters". in step (i), in comparison, is numerically nearly exact: You may not know the right answer very well, but you know quite accurately just how far the solution you have in hand is from producing the correct outcome (bScript error: No such module "Check for unknown parameters".). If the residual is small in some sense, then the correction must also be small, and should at the very least steer the current estimate of the answer, xmScript error: No such module "Check for unknown parameters"., closer to the desired one,
The iterations will stop on their own when the residual rmScript error: No such module "Check for unknown parameters". is zero, or close enough to zero that the corresponding correction cmScript error: No such module "Check for unknown parameters". is too small to change the solution xmScript error: No such module "Check for unknown parameters". which produced it; alternatively, the algorithm stops when rmScript error: No such module "Check for unknown parameters". is too small to convince the linear algebraist monitoring the progress that it is worth continuing with any further refinements.
Note that the matrix equation solved in step (ii) uses the same matrix for each iteration. If the matrix equation is solved using a direct method, such as Cholesky or LU decomposition, the numerically expensive factorization of is done once and is reused for the relatively inexpensive forward and back substitution to solve for cmScript error: No such module "Check for unknown parameters". at each iteration.[2]
Error analysis
As a rule of thumb, iterative refinement for Gaussian elimination produces a solution correct to working precision if double the working precision is used in the computation of rScript error: No such module "Check for unknown parameters"., e.g. by using quad or double extended precision IEEE 754 floating point, and if AScript error: No such module "Check for unknown parameters". is not too ill-conditioned (and the iteration and the rate of convergence are determined by the condition number of AScript error: No such module "Check for unknown parameters".).[3]
More formally, assuming that each step (ii) can be solved reasonably accurately, i.e., in mathematical terms, for every Template:Mvar, we have
where ‖Fm‖∞ < 1Script error: No such module "Check for unknown parameters"., the relative error in the Template:Mvar-th iterate of iterative refinement satisfies
where
- ‖·‖∞Script error: No such module "Check for unknown parameters". denotes the ∞Script error: No such module "Check for unknown parameters".-norm of a vector,
- κ(A)Script error: No such module "Check for unknown parameters". is the ∞Script error: No such module "Check for unknown parameters".-condition number of AScript error: No such module "Check for unknown parameters".,
- Template:Mvar is the order of AScript error: No such module "Check for unknown parameters".,
- Template:Mvar1 and Template:Mvar2 are unit round-offs of floating-point arithmetic operations,
- Template:Mvar, Template:Mvar1 and Template:Mvar2 are constants that depend on AScript error: No such module "Check for unknown parameters"., Template:Mvar1 and Template:Mvar2
if AScript error: No such module "Check for unknown parameters". is "not too badly conditioned", which in this context means
and implies that Template:Mvar1 and Template:Mvar2 are of order unity.
The distinction of Template:Mvar1 and Template:Mvar2 is intended to allow mixed-precision evaluation of rmScript error: No such module "Check for unknown parameters". where intermediate results are computed with unit round-off Template:Mvar2 before the final result is rounded (or truncated) with unit round-off Template:Mvar1. All other computations are assumed to be carried out with unit round-off Template:Mvar1.
References
<templatestyles src="Reflist/styles.css" />
Script error: No such module "Check for unknown parameters".