我需要最小化一个2D
function f(x,y)
. 我已经使用1-D
最小化Brent's Method
(类似于寻找根的二分搜索。)我认为一个2D
版本将是一个非常简单、常见的问题,它会有很多好的算法和库,但我还没有找到。我正在考虑只使用Downhill Simplex from Numerical Recipes
,但我认为可能有一个更简单的 just2D
或一个方便的库。
对于感兴趣的,这里有一些更多的细节:
我实际上是在尝试找到一条最小化两个 1D 函数之间的点的线,即双切线。一维函数通常看起来像抛物线,它们在某个点交叉。交叉点给出了要最小化的点的 X,我想找到一条与抛物线相切的线,该抛物线在该 X 处最小化 Y。
所以,我真的是minimizing g( f1(x1), f2(x2) )
。
不幸的是,我没有更多关于 f1() 和 f2() 的信息。功能由用户选择,甚至由用户提供。如果用户提供数据,我将函数作为一组点。我可以进行插值以在线上的任何点获得一个非常好的数值导数,但仅此而已。之前的开发人员认为最小化是找到双切线的最通用方法。我仍在试图弄清楚他是否正确。