168
10
•
Différences finies en dimension 1
7. Comme le schéma de Numerove st construit àp artir d’une approximation de la somme
de dérivées secondes faisant intervenir une erreur avec la dérivée 6ième, dès qu’on prend un
polynôme de degré5comme solution du problème exact, cette dernière coïncidera avec la solution
du problème approché. Exemple : c ( x ) = x , u ( x ) = 1 − 2 x
4
, f ( x ) = x +24 x
2
− 2 x
5
.
✞
☎
>> numerov4
err =
1.1102e-016
✝
✆
L’erreur est nulle aux erreurs machine près.
8. numerov5.m
✞
☎
alpha=1;beta=-1;
tN=[2,3,5,10,15,20,35,50,100]
for i=1:length(tN)
N=tN(i)
h=1/(N+1);h2=h*h;
X=(0:h:1)’;
C=c(X);
F=f(X);
A1=2*diag(ones(N,1),0)- diag(ones(N-1,1),1)- diag(ones(N-1,1),-1);
A2=10*diag(C(2:N+1),0)+ diag(C(3:N+1),1)+ diag(C(2:N),-1);
A=A1+h2/12*A2;
b=h2/12*(F(1:N)+10*F(2:N+1)+F(3:N+2));
b(1)=b(1)+(1-h2/12*C(1))*alpha;
b(N)=b(N)+(1-h2/12*C(N+2))*beta;
V=[alpha;A\b;beta];
U=u(X);
taberr(i)=norm(U-V,inf);
end;
taberr
plot( log(tN+1), log(taberr))
a=polyfit( log(tN+1), log(taberr),1)
title([’pentedeeladroitedeeregression:’...
, num2str(a(1))],’FontSize’,16)
xlabel(’log(N+1)’,’FontSize’,16)
ylabel(’log(Erreur)’,’FontSize’,16)
✝
✆
9.
10. numerov7.m
✞
☎
N=6
alpha=1;
beta=2^((1- sqrt(5))/2);
h=1/(N+1);h2=h*h;
T=1;nt=10;
tau=T/nt;
X=(0:h:1)’;
C=c1(X)
A1=2*diag(ones(N,1),0)- diag(ones(N-1,1),1)- diag(ones(N-1,1),-1);
A2=10*diag(C(2:N+1),0)+ diag(C(3:N+1),1)+ diag(C(2:N),-1);
B=h2/tau*1/12*(10*diag(ones(N,1),0)+ diag(ones(N-1,1),1)...
10
•
Différences finies en dimension 1
7. Comme le schéma de Numerove st construit àp artir d’une approximation de la somme
de dérivées secondes faisant intervenir une erreur avec la dérivée 6ième, dès qu’on prend un
polynôme de degré5comme solution du problème exact, cette dernière coïncidera avec la solution
du problème approché. Exemple : c ( x ) = x , u ( x ) = 1 − 2 x
4
, f ( x ) = x +24 x
2
− 2 x
5
.
✞
☎
>> numerov4
err =
1.1102e-016
✝
✆
L’erreur est nulle aux erreurs machine près.
8. numerov5.m
✞
☎
alpha=1;beta=-1;
tN=[2,3,5,10,15,20,35,50,100]
for i=1:length(tN)
N=tN(i)
h=1/(N+1);h2=h*h;
X=(0:h:1)’;
C=c(X);
F=f(X);
A1=2*diag(ones(N,1),0)- diag(ones(N-1,1),1)- diag(ones(N-1,1),-1);
A2=10*diag(C(2:N+1),0)+ diag(C(3:N+1),1)+ diag(C(2:N),-1);
A=A1+h2/12*A2;
b=h2/12*(F(1:N)+10*F(2:N+1)+F(3:N+2));
b(1)=b(1)+(1-h2/12*C(1))*alpha;
b(N)=b(N)+(1-h2/12*C(N+2))*beta;
V=[alpha;A\b;beta];
U=u(X);
taberr(i)=norm(U-V,inf);
end;
taberr
plot( log(tN+1), log(taberr))
a=polyfit( log(tN+1), log(taberr),1)
title([’pentedeeladroitedeeregression:’...
, num2str(a(1))],’FontSize’,16)
xlabel(’log(N+1)’,’FontSize’,16)
ylabel(’log(Erreur)’,’FontSize’,16)
✝
✆
9.
10. numerov7.m
✞
☎
N=6
alpha=1;
beta=2^((1- sqrt(5))/2);
h=1/(N+1);h2=h*h;
T=1;nt=10;
tau=T/nt;
X=(0:h:1)’;
C=c1(X)
A1=2*diag(ones(N,1),0)- diag(ones(N-1,1),1)- diag(ones(N-1,1),-1);
A2=10*diag(C(2:N+1),0)+ diag(C(3:N+1),1)+ diag(C(2:N),-1);
B=h2/tau*1/12*(10*diag(ones(N,1),0)+ diag(ones(N-1,1),1)...
