SciPy 最小化函数的圆形/径向边界

问题描述

我正在尝试使用优化子模块中的 SciPy 最小化函数来优化以 x-y 平面原点为半径 0.15 范围内的表面方程。

ans = minimize(minimum_objective_3d,(.10,.10),args=(args),bounds=[(-.150,.150),(-.150,.150)])

我知道我使用的 bounds 参数指定了操作的矩形边界。我的问题是......有没有办法将这些边界指定为以原点为中心的圆半径?

预先感谢您的帮助。

解决方法

我同意 Erwin 的模型转换。有许多求解器支持边界约束,而支持不等式约束的求解器很少。如果您仍想使用不等式约束,则 COBYLA 或 SLSQP SciPy 求解器支持它们。或者您可以查看 Mystic 优化库 (https://github.com/uqfoundation/mystic)。