在尝试解决优化问题时,我不断得到:
RuntimeWarning: divide by zero encountered in divide
尽管从分析角度来说,写1/x和x^(-1)是一回事,但是通过替换每个除法来重新编写函数,如图所示解决了我的问题。你知道吗
我很想知道是什么让计算机计算除法或指数有什么不同。你知道吗
编辑:
我正在解决一个涉及纳米尺度的物理问题。我得到的完全错误是:
RuntimeWarning: divide by zero encountered in divide
term = alpha / w
其中alpha是一个常数,w>;0是一个长度。我期望的w值是1e-9或更小,alpha是0.1。你知道吗
尽管如此,实际问题还是解决了。实际上,我很惊讶代码中如此简单的更改解决了所有问题,从而解决了问题。你知道吗
编辑2:
我通过写作解决了这个问题:
term = alpha * w**(-1)
我知道**在Python中等于指数运算。你知道吗
这就是你的问题:
在第一个示例中,您正在执行整数除法,该除法舍入为0。在第二个示例中,通过执行指数运算隐式地转换为float。第三个示例显示,通过将任一值转换为浮点值,可以使用除法得到正确的结果
在python中,^operator是XOR操作。 使用**运算符进行幂运算,这将为0**-1提供零除法误差
相关问题 更多 >
编程相关推荐