% vdpco1.m
% integration de     dx/dt =  y + x - x**3 , dy/dt =  -x
%     par un schema d Euler expli et un schema d Euler impli
% la solution exacte est l attracteur de Van der Pol
% fd, iacs, 18 septembre 2004, 2, 16 janvier 2005, 25 fevrier 2025 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xlabel ('vdpee. Cycle limite non lineaire avec deux schemas d Euler.') ;
% title ('Cnam Paris. Travaux pratiques Iacs.') ;
%%%% title ('Oscillateur de Van der Pol') ;
n=10;  dt=1/n
xe=zeros(2,1);
xe(1,1)=0.1  ;  xe(2,1)=0 ; xi=xe ; 

niter = 6*n 
traje=zeros(niter+1,2) ; traje(1,:) = xe ; 
traji=zeros(niter+1,2) ; traji(1,:) = xi ;  

hold off 
plot ( xe(1,1) ,  xe(2,1) , '*k;depart;')  ; hold on 


			   
for i=1:niter ;
xne  = xe + dt * f(xe) ;   xni  = er(xi,dt) ;

traje(i+1,:) = xne ; traji(i+1,:) = xni  ; 
xe=xne ; xi=xni  ;   end ;


%% plot ( xe(1,1) , xe(2,1), '*r;arrivee expli;')  ;
%% plot ( xi(1,1) , xi(2,1), '*b;arrivee impli;') ; hold off ;


plot ( traje(:,1) , traje(:,2), '*b;Euler explicite;') ; hold on 
plot ( traji(:,1) , traji(:,2), 'or;Euler implicite;') ; hold on 

axis ([ -.8   .7   -.5   1.3 ]) 


title ('Oscillateur de Van der Pol : ecart entre Euler explicite et Euler implicite') ;
%%% print -dpdf 06-vdpco1.pdf
%%% print -djpg 06-vdpco1.jpg
print('06-vdpco1.jpg', '-djpg', '-S891,630');



