Numerical Analysis/Iterative Refinement

From testwiki
Jump to navigation Jump to search

What is Iterative Refinement?

A detailed discussion of iterative refinement can be found on the Wikipedia page.

To give a brief description, it is a technique used to improve the approximate solution x^ to linear system Ax=b. This technique is generally only used on systems that are thought or determined to be ill-conditioned.

The process involves three primary steps:

Iterative Refinement Process

Once an approximation to the solution, x^1, has been made, with either rounded-Gaussian elimination or otherwise, complete the following steps:

  1. Compute residual: ri=bAx^i

  2. Solve Ayi=ri

  3. Update x^i+1=x^i+yi

Continue to update step one with the newly calculated x^i+1 until a desired tolerance has been reached.

Approximating the Condition Number

In theory, the condition number of a matrix depends on the norms of the matrix and its inverse. In practice, however, calculating the inverse is subject to round-off error and the accuracy of the calculations.

If these calculations involve arithmetic with t digits of accuracy, then the approximate condition number for the matrix - call it A - is the norm of A the norm of the approximation of the inverse of A.

Assuming that the approximate solution to the linear system is being determined with t-digit arithmetic and Gaussian elimination, we can show

r10tAx^,

where r is the residual vector for the approximation x^.

This approximation for the condition number can be obtained without having to invert matrix A.

When doing iterative refinement problems, we will have, or will calculate the values for A,y, and x^. The approximate solution, y^ satisfies

y^A1r=A1(bAx^)=A1bA1Ax^=xx^,

so y^ is an estimate of the error for approximate solution x^. Observe that

y^xx^=A1rA1rA1(10tAx^)=10tx^K(A).

This approximates the condition number associated with solving Ax=b and can be re-written and expressed as seen here:

K(A)y^x^10t.



Example

Consider the following ill-conditioned linear system

3.9x1+1.6x2=5.56.8x1+2.9x2=9.7

Part 1

Solve using Gaussian elimination and iterative refinement (and using two-digit rounding arithmetic). Continue using iterative refinement until x^4 is found. Compare with the true solution.

Part 2

Estimate the condition number K(A) in Part 1 using the method discussed above, and compare this with the condition number calculated using norms.

Quiz

<quiz display=simple>


Not only does iterative refinement improve ill-conditioned matrices, it is also very help in improving well-conditioned matrices. |type="()"} +TRUE -FALSE

{Which of the following matrices might benefit from using iterative refinement? |type="[]"} + [121.00012] + [1210,0012] - [1210,00120,002] - [120,00210,0012]


{ |type="{}"} If you calculate another step of iterative refinement on Example 1, what will be the new approximation, x^5=[x1x2]  ?  x1= { 0.96 }  x2= { 1.1 }


{ |type="{}"} A linear system is given by

[3.33301592010.3332.222016.7109.61201.56115.17911.6852] [x1x2x3] = [1591328.5448.4254], with x^1 = [1.20010.999910.92538], and y1 = [0.200088.9987×1050.074607].


Based on this info, what is the condition number using the approximation and the typical norms-multiplication method? Using Approximation  K(A)= { 16672 } Using Norms  K(A)= { 15999 }

</quiz>

References

Burden and Faires. Numerical Analysis, 3rd Edition. Template:ISBN

Template:CourseCat