最近我用 FFT 模拟洛伦兹函数
洛伦兹函数是2a/(x**2+a**2)
import numpy as np
from scipy import fft
import matplotlib.pyplot as plt
a =1
N = 500
x =np.linspace(-30,30,N)
lorentz = (2*a) * (1/(a**2 + x**2))
fourier = (fft.fft(lorentz))
fig, (ax1) = plt.subplots(nrows=1, ncols=1)
ax1.loglog(abs(fourier[0:int(N/2)]),basey=np.e)
ax1.grid(True)
plt.show()
根据轮廓积分,它应该是exp(-|k|*a)
log当我按比例绘制时,它应该是线性的。但它有一些振荡。
当我将我的观点扩展到 x = np.linspace(-100,100,N) 时
,振荡似乎推迟了。
我无法弄清楚振荡的原因。


