% programita para la serie de senos de f(x) % 0 \le x \le L L = 1; %f = inline('(1-x).*(x+1)','x'); %f = inline('1-abs(x)','x'); %f = inline('5*(1-x).*(x).^5','x'); %f = inline('cos(pi*x)','x'); %f = inline('sin(pi*x)'); f = inline('ones(size(x))'); margen = 0.1; x = [0:0.001:L]; ff = f(x); for N = [1 3 5 15 25] [b] = fouriercoeff_sine(f,L,N); n=[1:N]; npix = pi*(n'*x); fap = b * sin(npix); M = max([ff fap]); m = min([ff fap]); plot(x,ff,'r',x,fap,'m',[-L-margen L+margen],[0 0],'b',[0 0],[-m-margen M+margen],'b'); title(sprintf('N = %d error = %.8f',N,max(abs(ff-fap)))) axis([-L-margen L+margen m-margen M+margen]) pause end pause nada = -fliplr(ff); nada(end)=[]; fff = [nada ff]; x = [-3*L:0.001:3*L]; ff = f(x); for N = [1 3 5 15 25] [b] = fouriercoeff_sine(f,L,N); n=[1:N]; npix = pi*(n'*x); fap = b * sin(npix); % M = max(2*fap); % m = min([ff fap]); M = max(abs([M m])); m = -M; plot(x,ff,'r',x,fap,'m',[-3*L 3*L],[0 0],'b',[0 0],[m M],'b'); axis([-3*L-margen 3*L+margen m-margen M+margen]) title(sprintf('N = %d',N)) pause end pause fff(end) = []; fff = [fff fff fff 0]; plot(x,fff,'r',x,fap,'m',[-3*L 3*L],[0 0],'b',[0 0],[m M],'b'); axis([-3*L-margen 3*L+margen m-margen M+margen]) pause plot(x,fff,'r',[-3*L 3*L],[0 0],'b',[0 0],[m M],'b'); axis([-3*L-margen 3*L+margen m-margen M+margen])