我正在尝试在 Matlab 中使用 FFT 计算函数的导数。我编写了以下函数来计算它:
function dfdx = derivative(x,psi_0,n)
Nx = max(size(psi_0));
k = 2*pi/(range(x))*[0:Nx/2-1 0 -Nx/2+1:-1];
dfdx = ifft(((1i*k).^n).*fft(psi_0));
end
对于更高的导数(假设是次导数)它不起作用。更准确地说,次导数的情节没有意义。
知道是什么原因造成的,以及如何纠正?