我可以看到我的设计变量超出了它的极限。 (在这种情况下使用COBYLA)
我有一个带有单个设计变量的样本设置,其中最佳值约为0。
我设置'lower = 0'。
我希望这是一个非常严格的限制,因为负值会为我的求解器产生NaN。
优化器即 1,2,0,-0.125000000e-01,-1.56250000e-02,-1.95312500e-03,-2.44140625e-04 -3.05175781e-05,-3.81469727e-06,-5.00000000e-07
我猜这是依赖于优化器类型的吗?但有没有一种方法可以更严格地执行。
答案 0 :(得分:1)
不幸的是,COBYLA并不严格尊重变量边界(see scipy docs)您可以做的最好是将它们添加为线性约束,并尝试在最佳点强制执行它们。
但你可以试试SLSQP。它严格遵守界限。