122
8
•
Équations différentielles, méthodes àunpas
8.3E rreur dans la méthode de Runge-Kutta
f2.m
✞
☎
function z=f2(t,y);
z(1)=y(2);
z(2)=-y(1);
z=z’;
✝
✆
Ce qu’il faut retenir de cetexercice
Pardéfaut le tableau z est écrit horizontalement même si le tableau y est vertical.
RK4.m
✞
☎
function [t,U]=RK4(fichier,n,eta,interv)
h=(interv(2)-interv(1))/n;
t=interv(1):h:interv(2);
U(:,1)=eta;
for i=1:n
U1=U(:,i);
K1= feval(fichier,t(i),U1);
U2=U1+h/2*K1;
K2= feval(fichier,t(i)+h/2,U2);
U3=U1+h/2*K2;
K3= feval(fichier,t(i)+h/2,U3);
U4=U1+h*K3;
K4= feval(fichier,t(i)+h,U4);
U(:,i+1)=U1+h/6*(K1+2*K2+2*K3+K4);
end;
✝
✆
Ce qu’il faut retenir de cetexercice
On crée une fonction RK4 qui est une fonction «bibliothèque », réutilisable pour un autre
système différentiel du premierordre.
erreur1.m
✞
☎
interv=[0 1];
fichier=’f2’;
eta=[0;1];
n=3
[t,U]=RK4(fichier,n,eta,interv);
err= norm(U(1,:)- sin(t),inf)
✝
✆
Précédent

- 106/188

Suivant