Ik maak hier ergens een fout:
Code: Selecteer alles
u = [ 0;zeros(n-2,1); 0]; % Let op: bij (preconditioned)CG moet deze nul zijn!
k = 0;
r = b;
while norm(r)>1e-12
z=inv(M)*r;
k = k+1
if k==1
p = z;
r_1 = b;
z_1 = z;
else
beta = (r_1'*z_1)/(r_2'*z_2);
p = z_1+ beta*p;
end
alpha = (r_1'*z_1)/(p'*A*p);
u = u + alpha*p;
r= r_1-alpha*A*p;
r_2 = r_1;
r_1 = r;
z_2 = z_1;
z_1 = z;
end