寻找凹函数可接受极限的优化算法

Optimization algorithm to find acceptable limits of a concave function

我有一个黑盒函数 f(x) 符合以下条件:

在 Python 内,我希望得到一个算法,它可以用最少的步骤为我提供位置 x0x1,其中 f大于或等于 a.

可以假定存在 x 的值,其中 f(x)a 更 greater/equal。

查看此图片以可视化问题:

所以我的问题是:

寻找函数与 x 轴相交的点是 zero-finding 或 x 轴截距查找。您可以定义一个新函数 g(x) = f(x) - a 然后找到 g(x) 函数的 'zeros'。

找到截距的最简单方法是找到 g(xa) < 0 和 g(xb) > 0 的 xa 和 xb。然后在它们之间选择一个 xc 并继续使用 xc 和 xa 或 xb 之一(与 xc 的符号相反)。再次重复这些步骤,直到 x 之间的间隔小到可以考虑 'found'.