% vdpco2.m
% integration de     dx/dt =  y + x - x**3 , dy/dt =  -x
% par les schemas d Euler expli, Euler impli et Crank-Nicolson
% la solution exacte est l attracteur de Van der Pol
% fd, iacs, 18 septembre 2004, 2, 16 janvier 2005, 22 janvier 2006
   % fd, page des tp, 25 fevrier, 02 mars 2025 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xlabel ('Van Del Pol. Cycle limite non lineaire avec trois schemas.') ;
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 ; xcn=xe ;


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


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) ; xncn  = cn(xcn,dt) ;

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

plot ( traje(:,1) , traje(:,2), '*b;Euler explicite;') ; hold on 
plot ( traji(:,1) , traji(:,2), 'or;Euler implicite;') ; hold on 
plot ( trajn(:,1) , trajn(:,2), '+k;Crank Nicolson;') ; hold on 
	 
axis ([ -.8   .7   -.5   1.3 ]) 
  title ('Oscillateur de Van der Pol : ecart entre Euler explicite, Euler implicite et Crank-Nicolson') ;
hold off 

%%% print -dpdf 07-vdpco2.pdf
%%% print -djpg 07-vdpco2.jpg
print('07-vdpco2.jpg', '-djpg', '-S891,630');



