【发布时间】:2017-06-14 17:18:34
【问题描述】:
我正在编写一个代码来为参数 k 和 l 的不同值找到多项式的根。除了参数为零时,此代码工作正常。
我的做法是把零偏移到一个小数字(如下图),但这有缺点。
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):
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)
当参数为零时,避免计算的不同方式的优缺点是什么? k=0 或 l=0 的答案并不重要。我想最好的方法是在 k 或 l 为 0 时不运行计算。
感谢您提供的任何帮助。
【问题讨论】:
-
希尔伯特在坟墓里翻了个身
-
try-except with
ZeroDivisionError似乎是合理的,不是吗? -
希尔伯特会建议什么@touchmyboomboom
标签: python zero divide-by-zero