170
10
•
Différences finies en dimension 1
t=0:h:1;
F=h^2*f(r,t(2:N+1))’;
C=c(t(2:N+1))’;
A=2*diag(ones(N,1))-diag(ones(N-1,1),1)- diag(ones(N-1,1),-1);
B=diag(C)*(-diag(ones(N-1,1),-1)+ diag(ones(N-1,1),1));
M=A+r*h/2*B;
V=M\F;
Vh=[0;V;0]
Uex=u(r,t)’;
tt=0:1/200:1;
plot(t,Vh,tt,u(r,tt))
err= norm(Vh-Uex,inf)
title([’’rr==’,num2str(r),’,NN==’,int2str(N)],’FontSize’,16)
✝
✆
✞
☎
function y=c(x)
y=x;
function y=f(r,x)
y=r^2*exp(r*x).*(x-1)/(1- exp(r))+r*x;
function y=u(r,x);
y=x-(1- exp(r*x))/(1- exp(r));
✝
✆
8. CD7.m
✞
☎
tN=[5 10 20 35 50 75 100];
%tN=[40:3:60];
r=1;
for i=1:length(tN)
N=tN(i);
h=1/(N+1);
t=0:h:1;
F=h^2*f(r,t(2:N+1))’;
C=c(t)’;
A=2*diag(ones(N,1))-diag(ones(N-1,1),1)- diag(ones(N-1,1),-1);
B=diag(C(2:N+1))*(-diag(ones(N-1,1),-1)+ diag(ones(N-1,1),1));
M=A+r*h/2*B;
V=M\F;
V=[0;V;0];
Uex=u(r,t)’;
taberr(i)=norm(V-Uex,inf)
end;
a=polyfit( log(tN+1), log(taberr),1);
plot( log(tN+1), log(taberr));
title([’pentedeeladroitedeeregression:’...
, num2str(a(1))],’FontSize’,16)
xlabel(’log(N+1)’,’FontSize’,16)
ylabel(’log(Erreur)’,’FontSize’,16)
✝
✆
9. CD8.m .Onreprend CD6.m sauf
Précédent

- 149/188

Suivant