1; % Le premier programme permet de définir sur [0,2pi] la fonction f dont on souhaite calculer la serie de Fourier. % Pour le programme Fourier, on essaiera pour f(x) les fonctions suivantes : % y=x ; % y=abs(x-pi); % y=x.*(x-2*pi); % Pour le programme Corde, on essaiera pour f(x) % y=sin(x) % y=sin(2*x) % y=(x-pi).*x/3 % y=(x/pi).^4. function y=f(x) y=5*((x>0)-(x>pi); endfunction % Le programme Fourier a pour but de tracer la serie de Fourier de f. % On ne calcule en fait qu'une somme partielle. La variable M represente le nombre de coefficients an et bn que l'on calcule. % Ces coefficients sont donnes par des integrales. On les calcule numeriquement en les approchant par des sommes de Riemann. La variable N permet de preciser le pas 2pi/N employe pour l'approximation. function SerieFourier(N,M) % Calcul de a0 : on l'approche par 1/N somme(f(2k pi/N)). v=2*pi*(0:(N-1))/N; a0=sum(f(v))/N; % Calcul des coefficients an et bn. a=[]; b=[]; for n=1:M an=0; bn=0; for k=0:(N-1) an=an+f(2*pi*k/N)*cos(n*2*pi*k/N); bn=bn+f(2*pi*k/N)*sin(n*2*pi*k/N); end a=[a,2*an/N]; b=[b,2*bn/N]; end % Calcul de la serie de Fourier de f pour x entre -7 et 14. x=-7:0.01:13; S=a0; for n=1:M S=S+a(n)*cos(n*x)+b(n)*sin(n*x); end % Representation simultanee de la fonction f (en bleu) et de la serie de Fourier (en rouge). clf(); v=0:0.01:2*pi; w=f(v); axis equal; hold on; plot(v,w); plot(v+2*pi,w); plot(x,S,'r'); endfunction