126
8
•
Équations différentielles, méthodes àunpas
8.5 Méthode de tir
Comme précédemment, l’équation y
( t ) = 1 − 2 t cos( t ) − y ( t )+ty
( t )setransforme en système
Y
( t ) = f ( t , Y ( t )) où Y ( t ) =
y ( t )
y
( t )
et f ( t , U ) =
U 2
1 − 2 t cos t − U 1 + tU 2
.
f.m
✞
☎
function Z=f(t,Y);
Z(1)=Y(2);
Z(2)=1-2*t*cos(t)-Y(1)+t*Y(2);
Z=Z’;
✝
✆
eul.m
✞
☎
function [t,U]=eul(fichier,n,eta,interv)
h=(interv(2)-interv(1))/n;
t=interv(1):h:interv(2);
U(:,1)=eta;
for j=1:n
U(:,j+1)=U(:,j)+h*feval(fichier,t(j),U(:,j));
end;
✝
✆
tir2.m
✞
☎
tn=[5 10 20 50 100 200]
alpha=2*(1+sin(1));
a=0;b=1;
for i=1:length(tn)
n=tn(i);
[t,U1]=eul(’f’,n,[1;0],[0,1]);
[t,U2]=eul(’f’,n,[1;1],[0,1]);
lambda=(alpha-U2(1,n+1))/(U1(1,n+1)-U2(1,n+1));
U0=lambda*U1+(1-lambda)*U2;
yex=t+2*sin(t)+1;
taberr(i)=norm(U0(1,:)-yex,inf);
end
taberr
plot( log(tn),log(taberr))
xlabel(’log(n)’,’Fontsize’,14)
ylabel(’log(erreur)’,’Fontsize’,14)
disp(’coefficientsdeeladroitedeeregression’)
a=polyfit( log(tn),log(taberr),1)
title([’pentedeeladroite:’, num2str(a(1))],’Fontsize’,18)
✝
✆
Numériquement, on retrouvedonc une méthode d’ordre 1.
Pour la méthode de Runge-Kutta, on remplace simplement les appelsàeul pard es appels à
RK4 dont le corrigé aété donné précédemment. Numériquement, on retrouvealors une méthode
d’ordre4.
Précédent

- 110/188

Suivant