Sympy可以正确计算双面指数衰减的FT:

x, k, k0 = symbols('x k k0')
fourier_transform(exp(-k0 * abs(x)), x, k)


-> 2k0 /(4pi ^ 2k ^ 2 + k0 ^ 2)

需要手工计算并由http://www.thefouriertransform.com/pairs/decayingexponential.php确认

我试图通过定义分段函数对单面指数衰减执行相同的操作,其中对于x = 0,该函数返回exp(-abs(k0)x)

f = exp(-abs(k0)*x)
ssexp = Piecewise( (0,x<0), (f, x>=0))
fourier_transform(ssexp, x, k)


输出(我不知道如何插入格式化的方程式)仅返回:

Fx[{0 for x<0, e-x|k0| for x>=0](k)


输出的LaTeX代码是
$$
\ mathcal {F} {x} \ left [\ begin {cases} 0和\ text {for}:x $$

我一直在寻找在Python / Sympy中完成此类FT的示例,但没有发现任何东西。

高斯的分析FT也可以正常工作。也许Piecewise不是解决这个问题的正确工具,或者我犯了其他一些菜鸟错误。

建议表示赞赏。

俱乐部里的老家伙

最佳答案

使用Heaviside函数而不是逐段函数似乎是这里的方法:

>>> fourier_transform(f*Heaviside(x), x, k)
1/(2*I*pi*k + Abs(k0))


但在最新版本的SymPy中,您提供的表达式也适用于我:

>>> fourier_transform(ssexp, x, k)
1/(2*I*pi*k + Abs(k0))

10-04 20:44