% clier.m
% fd, iacs, mai, juillet 2004, 2, 9 janvier  2005, 25 fevrier 2025
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xlabel ('clier. xIntegration de dx/dt + y = 0,  dy/dt - x = 0 par le schema d Euler implicite') 
% title ('Cnam Paris. Travaux pratiques Iacs.') ;
n=128 ; 
% n=32 ; 
dt=2*pi/n
t=zeros(n+1,1);
x=zeros(n+1,1);
y=zeros(n+1,1);
xex=zeros(n+1,1); yex=zeros(n+1,1);
xex(1:1)=1; yex(1:1)=0;
x(1:1)=xex(1:1); y(1:1)=yex(1:1);
t(1:1)=0;
%          affichage du point initial
% gset yrange[-1.2:1.2] ; gset xrange[-1.2: 1.2] ; 
axis ([ -1.2 ,  1.2 ,  -1.2 , 1.2 ]) ; 
vec1=x(1:1) ;  vec2=y(1:1) ; 
hold off ; plot ( vec1, vec2, '*;trajectoire;') ; 
%          boucle en temps
for i=1:n;
t(i+1)=t(i)+dt;
x(i+1)= (x(i) - dt * y(i)) / (1+(dt*dt));
y(i+1)= (dt*x(i) + y(i)) / (1+(dt*dt));
xex(i+1)=cos(t(i+1)) ; yex(i+1)=sin(t(i+1)) ; 
%%% affichage du point courant
%%% vec1=x(i+1) ;  vec2=y(i+1) ; 
%%% hold on ; plot ( vec1, vec2, '*r;;') ;
end ;


tempsfinal = t(n+1:n+1)

plot(xex(:,1),yex(:,1), 'b;cercle exact;',   x(:,1),y(:,1),'*;trajectoire numerique;') 
axis ([ -1.2  1.2 -1.2  1.2 ]) 
title('Euler implicite : ordre 1')
print -dpdf 13-clier.pdf
print -djpg 13-clier.jpg

