# [petsc-users] Natural norm

Barry Smith bsmith at mcs.anl.gov
Mon Sep 22 11:37:30 CDT 2014

```On Sep 22, 2014, at 8:54 AM, Jed Brown <jed at jedbrown.org> wrote:

> Barry Smith <bsmith at mcs.anl.gov> writes:
>
>> On Sep 21, 2014, at 12:35 PM, De Groof, Vincent Frans Maria <Vincent.De-Groof at uibk.ac.at> wrote:
>>
>>> the natural norm for positive definite systems in Petsc uses the
>>> preconditioner B, and is defined by r' * B * r. Am I right assuming
>>> that this way we want to obtain an estimate for r' * K^-1 * r, which
>>> is impossible since we don't have K^-1? But we do know B which is
>>> approximately K^-1.
>>
>>   I think so. The way I look at it is r’ * B * r = e’ *A *B *A e and
>>   if B is inv(A) then it = e’*A*e which is the “energy” of the error
>>   as measured by A,
>

All true. Switching the CG “norm” does not effect the algorithm (in exact arithmetic) it only affects the norm that is printed and when the algorithm stops. The same minimization principles hold independent of the “norm” used.

Bary

> Hmm, unpreconditioned CG minimizes the A-norm (energy norm) of the error:
> i.e., |e|_A = e' * A * e.  This is in contrast to GMRES which simply
> minimizes the 2-norm of the residual: |r|_2 = r' * r = e' * A' * A * e =
> |e|_{A'*A}.  Note that CG's norm is stronger.
>
> When you add preconditioning, CG minimizes the B^{T/2} A B^{1/2} norm of
> the error as compared to GMRES, which minimizes the B' A' A B norm (or
> A' B' B A for left preconditioning).
>
> If the preconditioner B = A^{-1}, then all methods minimize both the
> error and residual (in exact arithmetic) because the preconditioned
> operator is the identity.

```