我在最小化python中复杂的非线性函数时遇到了麻烦。该函数实际上是用于拟合实验数据的拟合模型的卡方。为了获得全局最小值,我在 scipy 中使用了盆地跳跃函数。这个函数是最小化()函数的包装,它增加了一些扰动来寻找不同的局部最小值。现在我的问题是很难找到局部最小值。
有一堆求解器可以在最小化()中使用,因为我使用的是边界,所以我在“L-BFGS-B”、“SLSQP”和“TNC”之间进行了选择。他们都没有真正找到局部最小值。有没有一种基于流行的 Levenberg-Marquardt 算法的方法可以用来最小化?也许这没有意义,否则它已经实现了,但我不明白为什么。
我最初的想法实际上是使用我知道的最简单的函数(https://pypi.python.org/pypi/leastsqbound),它非常擅长提供准确的协方差矩阵,尽管有界限,并将其包含在一个看起来更大的算法中对于全局最小值(如盆地跳跃函数)。你知道这样的东西是否已经存在?
非常感谢您的建议!