我试图理解什么是机器epsilon。根据维基百科,可以计算如下:
def machineEpsilon(func=float):
machine_epsilon = func(1)
while func(1)+func(machine_epsilon) != func(1):
machine_epsilon_last = machine_epsilon
machine_epsilon = func(machine_epsilon) / func(2)
return machine_epsilon_last
但是,它只适用于双精度数字。我对修改它以支持单精度数字感兴趣。我读到numpy可以使用,特别是numpy.float32
类。有人能帮忙修改这个函数吗?
另一个容易得到epsilon的方法是:
正如大卫所指出的,它已经起作用了!
获得给定浮点类型的机器epsilon的一个更简单的方法是使用^{} :
相关问题 更多 >
编程相关推荐