%   ondes03.m
%   fd, 13 decembre 2010, 06 mars 2025  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   clear ; format long

fprintf('ondes03 \n') ; 
fprintf('equation des ondes avec les series de Fourier \n') 
fprintf('serie de Fourier tronquee pour x(1-x)  \n')

n = 100 ; dx = 1/n 
ksmax = 2        %%% nombre de modes supplementaires 
hold off 
	    
xx = zeros(1,n+1) ; y1 = xx ;  y3 =  zeros(1,n+1) ; 
xa    = 0 ; 
for j = 1:n+1 ; xx(j) = xa ;  y3(j) = 0 ; 
y1(j) = xa * (1-xa) ; xa = xa + dx ;  end 
plot ( xx,y1,'k;x(1-x);')  
axis ([ -.02 , 1.02 , -.01 , .265 ]) ;
title ('quelques modes de Fourier pour x(1-x)') ;
print('03a-fonction-donnee', '-djpg','-S891,630'); 
pause (1) 
hold on 

fprintf('premier mode   \n')


k=0 ; 
for j = 1:n+1 ;
xa = (j-1)*dx ;
y3(j) = 8 * sin((2*k+1)*pi*xa) / (((2*k+1)*pi)**3) ; end ;

yyy0 = y3 ;
plot ( xx,y3,'r;mode 1;') 
print('03b-premier-mode', '-djpg','-S891,630'); 

  pause (1) 

fprintf('deux autres modes   \n')

  yyy1 = y3 ; yyy2 = y3 ; 
xa = 0 ; 
for k = 1:ksmax  ;     k
for j = 1:n+1 ; xa = xx(j) ; 
y3(j) = y3(j) + 8 * sin((2*k+1)*pi*xa) / (((2*k+1)*pi)**3) ; end ;
if (k==1) ; plot (xx,y3,'b;mode 2;') ;
print('03c-second-mode', '-djpg','-S891,630');
pause (1) ; 
for j = 1:n+1 ; yyy1(j) = sin((2*k+1)*pi*xa) / (((2*k+1)*pi)**3) ; end ; end
if (k==2) ; plot (xx,y3,'m;mode 3;') ;
print('03d-troisieme-mode', '-djpg','-S891,630');  pause (1) ; 
for j = 1:n+1 ; yyy2(j) = sin((2*k+1)*pi*xa) / (((2*k+1)*pi)**3) ; end ; end
end

fprintf('evolution dynamique   \n')

hold off 
sigma = 2
dt    = sigma * dx ;

yyevol = y3 ;

niter = 120
t     = 0   ; 
plot ( xx,y3,'k;;' , xx,y1,'r;;')
axis ([ -.02 , 1.02 , -.265 , .265 ]) ;
pause (.5) ; 
for jtime = 1 : niter  
for j = 1:n+1 ; yyevol (j) = cos(pi*t) * yyy0(j) ; end
for j = 1:n+1 ; yyevol (j) = yyevol (j) + cos(3*pi*t) * yyy1(j) ; end
for j = 1:n+1 ; yyevol (j) = yyevol (j) + cos(5*pi*t) * yyy2(j) ; end
t     = t + dt ; 
plot ( xx,y3,'k;inf;' ,   xx,yyevol,'b;t;' )
axis ([ -.02 , 1.02 , -.265 , .265 ]) ;
delete (findobj ("tag", "legend")) 
title ('evolution avec une condition initiale polynomiale') ;
if jtime==45 ; 
print('03e-evolution-condition-initiale-polynome' , '-djpg','-S891,630'); 
end ; 

pause (.001) ; end 
  


hold off 
 





 

