scl*_*ons 3 python floating-point numpy
给定一个浮点数x,我想找到小于的最大浮点数x。如何在Python中执行此操作?
我尝试从x(x - numpy.finfo(float).eps)中减去机器epsilon ,但是x对于足够大的浮点数,其计算结果为,我需要返回的值严格小于x。
有一个关于如何做到这一点在C#中的一些信息在这里,但我不知道该怎么做在Python同样按位转换。有人知道该怎么做,或者有另一种方法来获得相同的价值吗?
(更大的图片问题-我试图x在边界内以数值形式找到一个奇点为的方程的根0 < root < x。求解器(Scipy的toms748实现)在边界上求值,并且它无法处理nan或inf值,所以我不能精确地x给定边界。我不知道根距边界可能有多近,所以我想尽可能地给定边界,x而不会实际产生无穷大的值并使求解器崩溃)
您正在描述的基本用法numpy.nextafter。
>>> import numpy as np
>>> np.nextafter(1.5, 0.0) # biggest float smaller than 1.5
1.4999999999999998
>>> np.nextafter(1.5, 2.0) # smallest float bigger than 1.5
1.5000000000000002
Run Code Online (Sandbox Code Playgroud)