【发布时间】:2020-02-03 12:43:01
【问题描述】:
使用 numpy,我们的优化求解器具有一个函数,该函数通过计算约束的松弛度(以矩阵和向量的形式)来检查解决方案的可行性。
我们使用以下代码测试可行性:
return np.all(slacks_x >= 0) and np.all(slacks_u >= 0)
这有一个错误,因为有时松弛可以采用像 -1.5 e-12 这样的值,即接近零但由于浮点错误而为负值。在这种情况下,它会错误地返回 False。
numpy 中是否有一个函数可以检查>=0 的公差?当前的解决方法是检查>= -0.1。
【问题讨论】:
-
使用
np.allclose()? -
听起来你自己已经想出了这个功能?这只是“0.1 的容差”。
-
@Divakar 不等于
==0?
标签: python numpy optimization constraints precision