% test delle funzioni ftrans/iftrans

% effe e' la funzione, effehat la trasformata.
effe=@(x) exp(-x.^2);  effehat=@(omega) sqrt(pi)*exp(-omega.^2/4);
%effe=@(x) exp(-abs(x));  effehat=@(omega) 2./(1+omega.^2);

% [r,s] e' l'intervallo in cui calcolare la trasformata, N il numero dei punti
%r = -500;  s = 500;  N = 2048;
r = -200;  s = 400;  N = 2048;
x0 = 5;
omega0 = (r+s)/2;
Omega = s-r;
A = 2*pi*N/Omega;
q = A/2+x0;  p = -q;

[fh omega] = ftrans(effe,N,p,q,omega0);
[f x] = iftrans(effehat,N,r,s,x0);

subplot(2,2,1)
semilogy(omega,abs(real(fh)-real(effehat(omega))))
xlim(omega([1 end]))
xlabel(sprintf('errore=%e',norm(real(fh)-real(effehat(omega)),inf)))
title('errore effe hat')
ylabel('parte reale')
subplot(2,2,3)
semilogy(omega,abs(imag(fh)-imag(effehat(omega))))
xlim(omega([1 end]))
xlabel(sprintf('errore=%e',norm(imag(fh)-imag(effehat(omega)),inf)))
ylabel('parte immaginaria')

subplot(2,2,2)
semilogy(x,abs(real(f)-real(effe(x))))
xlim(x([1 end]))
xlabel(sprintf('errore=%e',norm(real(f)-real(effe(x)),inf)))
title('errore effe')
subplot(2,2,4)
semilogy(x,abs(imag(f)-imag(effe(x))))
xlim(x([1 end]))
xlabel(sprintf('errore=%e',norm(imag(f)-imag(effe(x)),inf)))

