如何处理用z除的函数

2024-04-24 07:32:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用python/numpy的形式使用一些模型:

 f(x) = 1 / (exp(x) - 1)

其中x可以是-5到+5之间的任何值,比如说。在

x可以是零,在我的模拟过程中,这确实发生了,导致f(x)趋于无穷大,这将返回一个nan+1jnan。在

因为我想在以后使用这个计算的结果,例如FFT,这就产生了一个主要的问题,因为FFT例程不能处理输入中的nan。在

有什么建议的方法来处理这个问题吗? e、 g.逻辑上说:如果x==0:返回0 或 e、 g.如果x等于零,则将x移动0.00000001%,以避免此问题。在

谢谢


Tags: 方法模型fftnumpy过程逻辑nan例程
1条回答
网友
1楼 · 发布于 2024-04-24 07:32:54

您可以通过使用continue语句简单地避免此问题:

def f(x):
    return 1 / (exp(x) - 1)

f_values = {}
for i in range(-5,5):
    if i == 0: continue
    f_values[i] = f(i)

print f_values
>>> {1: 0.5819767068693265, 2: 0.15651764274966565, 3: 0.05239569649125595, 4: 0.01865736036377405, -2: -1.1565176427496657, -5: -1.0067836549063043, -4: -1.018657360363774, -3: -1.052395696491256, -1: -1.5819767068693265}


FFT(f_values)

在这里,每当x=0的值出现时,循环只会避开f(x)函数并迭代到下一个值。在

相关问题 更多 >