When I use BiCGStab to solve a linear matrix system, I use the relative residual to exit the iteration and output the results. For calculating the relative residual I divide the norm of vector $r$ through the norm of vector $b$. Where $r$ is according to the definition of BiCGStab algorithm and $b$ is the right hand side of the matrix equation.
But even if I set the relative residual for convergency to 1e-8 the difference between calculated and exact results are quite big. When setting relative residual for convergency to 1e-14, I get good results.
The matrix systems I am solving have about 100k unknowns. A lot of entries in the result vector match the exact result. Only a few are off. But these few are enough to propagate the error.
Question: Is the relative residual really a good measure for convergency? Is this a normal behavior of the algorithm?

  • 6
    $\begingroup$ It appears that your system of equations is ill-conditioned, which is a common problem. You need to find a different system of equations to solve. $\endgroup$ – Brian Borchers Sep 15 at 2:26
  • $\begingroup$ Yes, the system of equations is ill-conditioned. I already use preconditioner like incomplete LU but still can observe the above mentioned problem. $\endgroup$ – vydesaster Sep 15 at 17:54
  • 2
    $\begingroup$ Is 1e-8 and 1e-14 a relative or an absolute tolerance? You need to choose a tolerance that is small relative to the norm of the right hand side. $\endgroup$ – Wolfgang Bangerth Sep 15 at 20:59
  • 1
    $\begingroup$ Also note that preconditioning changes the residual measure: BICGStab stops on $\|P(Ax-b)\|$ small, not $\|Ax-b\|$. The two may differ a lot, when $A$ is ill-conditioned. $\endgroup$ – Federico Poloni Sep 16 at 8:37
  • $\begingroup$ 1e-8 and 1e-14 are relative tolerance. Is it possible to get the unpreconditioned residual without too much computation? But this is an interesting hint. Never thought about it, but you are right. $\endgroup$ – vydesaster Sep 16 at 11:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.