避免错误为零

时间:2017-06-14 17:18:35

标签: python zero divide-by-zero

我正在编写一个代码来查找参数k和l的不同值的多项式的根。除了参数等于零时,此代码工作正常。

我的方法是将零点偏移到一个小数字(如下所示),但这有缺点。

as.logical(survResp)

当参数为零时,避免计算的不同方法的优缺点是什么? k = 0或l = 0时的答案并不重要。我想最好的方法是在k或l为0时不运行计算。

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:0)

你可以这样做:

xlist = np.linspace(-n_steps*step_size,near_0,n_steps+1)
xlist=np.append(xlist,np.linspace(step_size,n_steps*step_size,n_steps))
ylist = np.linspace(-n_steps*step_size,near_0,n_steps+1)
ylist=np.append(ylist,np.linspace(step_size,n_steps*step_size,n_steps))

for k_i,k in enumerate(xlist):
    for l_i,l in enumerate(ylist):
        if k == 0 or l == 0:  # Just continue!
            continue

        p=[1,-1j*w*k,l**2/(k**2+l**2)*(1-1/R),-l**2/(k**2+l**2)*w*1j*k]
        roots=np.roots(p)