what is the "iterative refinement'
hi: slove Ax=B with iterative refinement! but what is the meaning of the iterative refinement! Regards
|
Re: what is the "iterative refinement'
initial guess x_0
do i = 1, maxIters solve A*dx = b-A*x_(i-1) x_i = x_(i-1)+dx if (norm(dx) < solutionTolerance) exit if (norm(b-A*x_i) < residualTolerance) exit end do The above pseudocode is for iterative refinement (using delta form, dx). It helps as compared with non-delta form ("solve Ax=b") only if the residual b-A*x_(i-1) is computed using higher-precision arithmetic. It can also help in cases of poorly conditioned coefficient matrices. |
Re: what is the "iterative refinement'
I should have said that x_0 = 0 is a suitable initial guess
|
Re: what is the "iterative refinement'
Thank you very much! why not solve the Ax=B directly! what is its advantage! Regards
|
Re: what is the "iterative refinement'
You may notice that in the iterative refinement scheme, with x_0 = 0, the first iteration of the loop amounts to
solve A*dx = b x_1 = dx So basically, the first iteration amounts to saying solve A*x = b. In exact arithmetic, this is the original task. However, in finite precision computer arithmetic, espectially with a poorly conditioned matrix A, this direct one-step solution is not accurate enough. The iterative refinement improves the accuracy of the answer, provided that the residual is computed accurately enough. Incidentally, in the delta form of the equation, the matrix A can be replaced by an approximation to it which is cheaper to solve. |
All times are GMT -4. The time now is 16:54. |