Contents

Demo Mehrgitterkonvergenz

%;
L=2;
nu_vor=1;
nu_nach=1;
zyk=1;

Start der Mehrgitteriteration

for l=9:2:11;
  fprintf('l= %2d, L= %2d, zyk= %1d, vor= %1d, nach= %1d\n',l,L,zyk,nu_vor,nu_nach);
  dim=2^l-1;
  e=ones(dim,1);
  A=(dim+1)^2*spdiags([-e 2*e -e],-1:1,dim,dim);
  x=sqrt(linspace(1,dim,dim))';
  b=A*x;

%zufälliger Startvektor
  rand('state',0);
  y=randn(dim,1);
  norm_e0=norm(y-x);

  error=[];
 for k=1:20;
    y=mg(l,L,y,b,nu_vor,nu_nach,zyk);
    rho=(norm(y-x)/norm_e0)^(1/k);
    error=[error norm(y-x)/norm(x)];

    if(l==9)
    semilogy((1:k),error,'-o','LineWidth',2,'MarkerSize',7);
    set(gca,'FontSize',17);
    title('Evolution des relativen L^2-Fehlers');
    xlabel('Iterationsschritt');legend('l=9')
    drawnow; pause(0.15);
    else
    semilogy((1:k),error,'r-^','LineWidth',2,'MarkerSize',7);
    xlabel('Iterationsschritt');legend('l=9','l=11');
    title('Evolution des relativen L^2-Fehlers');
    drawnow; pause(0.15);
    end

    fprintf('  k= %2d, rel. Fehler= %8.3e, rho= %8.3e\n',k,error(k),rho);
 end
 if (l==9)
     display('Bitte eine Taste drücken, um fortzufahren!');
     pause;
 end
 hold on;
end
axis tight;
hold off
l=  9, L=  2, zyk= 1, vor= 1, nach= 1
  k=  1, rel. Fehler= 1.260e-01, rho= 1.253e-01
  k=  2, rel. Fehler= 3.089e-02, rho= 1.752e-01
  k=  3, rel. Fehler= 8.185e-03, rho= 2.011e-01
  k=  4, rel. Fehler= 2.197e-03, rho= 2.162e-01
  k=  5, rel. Fehler= 5.929e-04, rho= 2.260e-01
  k=  6, rel. Fehler= 1.605e-04, rho= 2.329e-01
  k=  7, rel. Fehler= 4.355e-05, rho= 2.380e-01
  k=  8, rel. Fehler= 1.183e-05, rho= 2.420e-01
  k=  9, rel. Fehler= 3.219e-06, rho= 2.452e-01
  k= 10, rel. Fehler= 8.764e-07, rho= 2.478e-01
  k= 11, rel. Fehler= 2.388e-07, rho= 2.499e-01
  k= 12, rel. Fehler= 6.511e-08, rho= 2.517e-01
  k= 13, rel. Fehler= 1.776e-08, rho= 2.533e-01
  k= 14, rel. Fehler= 4.848e-09, rho= 2.546e-01
  k= 15, rel. Fehler= 1.324e-09, rho= 2.558e-01
  k= 16, rel. Fehler= 3.616e-10, rho= 2.569e-01
  k= 17, rel. Fehler= 9.880e-11, rho= 2.578e-01
  k= 18, rel. Fehler= 2.700e-11, rho= 2.587e-01
  k= 19, rel. Fehler= 7.382e-12, rho= 2.594e-01
  k= 20, rel. Fehler= 2.019e-12, rho= 2.601e-01
Bitte eine Taste drücken, um fortzufahren!
l= 11, L=  2, zyk= 1, vor= 1, nach= 1
  k=  1, rel. Fehler= 1.251e-01, rho= 1.252e-01
  k=  2, rel. Fehler= 3.074e-02, rho= 1.754e-01
  k=  3, rel. Fehler= 8.171e-03, rho= 2.015e-01
  k=  4, rel. Fehler= 2.201e-03, rho= 2.166e-01
  k=  5, rel. Fehler= 5.959e-04, rho= 2.265e-01
  k=  6, rel. Fehler= 1.619e-04, rho= 2.335e-01
  k=  7, rel. Fehler= 4.406e-05, rho= 2.387e-01
  k=  8, rel. Fehler= 1.201e-05, rho= 2.427e-01
  k=  9, rel. Fehler= 3.280e-06, rho= 2.459e-01
  k= 10, rel. Fehler= 8.966e-07, rho= 2.485e-01
  k= 11, rel. Fehler= 2.453e-07, rho= 2.507e-01
  k= 12, rel. Fehler= 6.717e-08, rho= 2.525e-01
  k= 13, rel. Fehler= 1.840e-08, rho= 2.541e-01
  k= 14, rel. Fehler= 5.046e-09, rho= 2.555e-01
  k= 15, rel. Fehler= 1.384e-09, rho= 2.567e-01
  k= 16, rel. Fehler= 3.799e-10, rho= 2.578e-01
  k= 17, rel. Fehler= 1.043e-10, rho= 2.587e-01
  k= 18, rel. Fehler= 2.865e-11, rho= 2.596e-01
  k= 19, rel. Fehler= 7.873e-12, rho= 2.604e-01
  k= 20, rel. Fehler= 2.165e-12, rho= 2.611e-01