clear all
close all

L=4*pi; % Länge des Intervalls
N=128; % Anzahl von Stützstellen, N=2^p
x=(L/N)*(-N/2:N/2-1)'; % x-Array 
k=((2*pi/L)*[0:N/2 -N/2+1:-1]'); % k-Zahlen definieren
%
y=sin(x); % Die Funktion zum Ableiten
%
abl_y_k=i*k.*fft(y); % Die erste Ableitung im Fourier-Raum
abl_y_k2=-k.^2.*fft(y);% Die zweite Ableitung im Fourier-Raum
abl_y=ifft(abl_y_k); % die erste Ableitung im x-Raum, man kann natürlich Re davon nehmen, aber die Im-Anteile sind klein
abl_y2=ifft(abl_y_k2);% die zweite Ableitung im x-Raum,

figure(1)
plot(x,abl_y,'b') % das Ergebniss für die erste Ableitung
hold on
plot(x,cos(x),'r.') % Vergleich mit dem analytischen Ergebniss, y'=cos(x)
axis([-L/2 L/2 -1.1 1.1])
title('d(sin(x))/dt')
legend('FFT','cos(x)','Location','NorthEastOutside')
%
figure(2) % das Ergebniss für die zweite Ableitung
plot(x,abl_y2,'b')
hold on
plot(x,-sin(x),'r.') % Vergleich mit dem analytischen Ergebniss, y''=-sin(x)
axis([-L/2 L/2 -1.1 1.1])
title('d^2(sin(x))/dt^2')
legend('FFT','-sin(x)','Location','NorthEastOutside')