% interpol03.m
% interpolation de Lagrange 
% fd, agreg, 08 octobre 2006, 04 octobre 2008 , 04 mars 2025 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   clear , format long
   
printf("interpol03 : interpolation affine par morceaux faute de mieux\n");

%  n  nombre de donnees brutes ; c est un nombre d intervalles...
nex = 100 ; deltax =  3*pi ; dxex = deltax  / nex  ;
xex =zeros(nex+1 , 1) ; yex =zeros(nex+1 , 1) ; 
for j=1:nex+1 ; xx =  (j-1)*dxex ;   
xex (j:j , 1) = xx ; 
yex (j:j , 1) = sin(xx) ; end 
hold off ;
plot(xex,yex,"k;fonction sinus;") ;  
axis ( [ -.1 , deltax+.1 , -1.1 , 1.1  ]) ;

for k = 1:16 ; 
n=k; 
x =zeros(n+1 , 1) ; 
u0=zeros(n+1 , 1) ; 
dx =  deltax  / n ;
for j=1:n+1 ; xx = (j-1)*dx ;  
x (j:j , 1) = xx ;
u0(j:j , 1) =  sin(xx) ; end 
hold on ; if (n==1) ;  
plot(x,u0(:,1),"*-b;interpolation affine par morceaux;") ;  pause (1) ; 
delete (findobj ("tag", "legend"));
else ;   
delete (findobj ("tag", "legend"));
plot(x,u0(:,1),"*m;;",x,u0(:,1),"b;;") , pause (.3) 
end

 end ; 


title ('interpolation du sinus affine par morceaux') ;
print('03-interpolation-sinus', '-djpg','-S891,630');
hold off 
