% preqrk.m
% fd, iacs, mai, 08 juillet 2004, 2, 9 janvier  2005, 25 fevrier 2025
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xlabel ('preqrk. Precision du schema  de Runge-Kutta d ordre 4') ;
% title ('Cnam Paris. Travaux pratiques Iacs.') ;
m=9
pas=zeros(m,1);
err=zeros(m,1);
%
  n=8;
  for j=1:m;
dt=1/n;
u=zeros(n+1,1);
p1=zeros(n+1,1); p2=zeros(n+1,1); p3=zeros(n+1,1); p4=zeros(n+1,1);
u(1:1)=1;
  for i=1:n;
p1(i) = - u(i);
p2(i) = - ( u(i) + 0.5 * dt * p1(i) ) ;
p3(i) = - ( u(i) + 0.5 * dt * p2(i) ) ;
p4(i) = - ( u(i) + dt * p3(i) ) ;
u(i+1)  = u(i) + dt * ( p1(i) + 2*p2(i) + 2*p3(i)+ p4(i)  ) / 6 ;
end ;
%
pas(j)=log(n)/log(2);
err(j)=log ( abs(u(n+1,1) - exp(-1)) ) / log(2) ;
n=2*n; end;

%  calcul du coefficient avec une droite de regression
alfa=codre(m,pas,err)

plot(pas,err(:,1),'*;logarithme des ereurs;') ; 
axis ([ 2.7 ,  11.3 ,  -55.1 , -18.9 ]) 
title('retour equilibre        schema de Runge-Kutta : ordre 4')
print -dpdf 11-preqrk.pdf
print -djpg 11-preqrk.jpg


