python – 在scipy上寻求与optimize.fmin的融合

python – 在scipy上寻求与optimize.fmin的融合,第1张

概述我有一个我想用scipy.optimize.fmin最小化的函数.请注意,我在评估函数时强制打印. 我的问题是,当我开始最小化时,打印的值会减小,直到达到某个点(值46700222.800).在那里它通过非常小的咬合继续减少,例如,46700222.797,46700222.765,46700222.745,46700222.699,46700222.688,46700222.678 直觉上,我觉 我有一个我想用scipy.optimize.fmin最小化的函数.请注意,我在评估函数时强制打印.

我的问题是,当我开始最小化时,打印的值会减小,直到达到某个点(值46700222.800).在那里它通过非常小的咬合继续减少,例如,46700222.797,46700222.765,46700222.745,46700222.699,46700222.688,46700222.678
直觉上,我觉得我已经达到了最小值,因为每一步的长度都是负1.然后算法一直运行,直到我得到“已超过最大功能评估数”错误.

我的问题是:当函数求值达到一个不再真正进化的值时,如何强制我的算法接受参数的值(比方说,迭代后我的收益不会超过1).我读到可以使用选项ftol,但它对我的代码完全没有影响.事实上,我甚至不知道为ftol提供什么价值.我尝试了从0.00001到10000的所有内容,但仍然没有收敛.

解决方法 实际上没有必要看到你的代码来解释发生了什么.我会一点一点地回答你.

My problem is,when I start the minimization,the value printed decreases
untill it reaches a certain point (the value 46700222.800). There it
continues to decrease by very small bites,e.g.,
46700222.797,46700222.678

请注意,最后2个值之间的差异是-0.009999997913837433,即大约1e-2.在最小化算法的约定中,您所谓的值通常标记为x.如果在第n次迭代的同一时间遵守这两个条件,则算法停止:

> x上的收敛:x [n]与下一次迭代x [n 1]之差的绝对值小于xtol
> f(x)上的收敛:f [n]和f [n 1]之间的差的绝对值小于ftol.

此外,如果达到最大迭代次数,算法也会停止.

现在请注意,xtol默认值为1e-4,比您的案例中显示的值1e-2小约100倍.然后算法不会停止,因为xtol上的第一个条件没有得到遵守,直到达到最大迭代次数.

I read that the options ftol Could be used but it has absolutely no
effect on my code. In fact,I don’t even kNow what value to put for
ftol. I trIEd everything from 0.00001 to 10000 and there is still no
convergence.

这有助于你尊重ftol的第二个条件,但是从来没有达到第一个条件.

为了达到你的目标,也增加xtol.

在调试优化例程的收敛时,以下方法也将对您有所帮助.

>在要最小化的函数内部,在返回之前打印x的值和f(x)的值.然后运行优化例程.从这些打印中,您可以确定xtol和ftol的合理值.>考虑对问题进行无量纲化.如果ftol和xtol默认为1e-4,则有一个原因.他们希望你制定问题,使x和f(x)的顺序为O(1)或O(10),比如介于-100和100之间的数字.如果你执行无量纲化,你会处理一个更简单的问题,在你经常知道什么样的价值以及你所追求的容忍度的方式.>如果您只是粗略计算并且无法估计xtol和ftol的典型值,并且您知道(或者您希望)您的问题表现良好,即它会收敛,您可以尝试运行fmin阻止,仅传递给fmin maxiter = 20(比如说),并且捕获有关已超出最大功能评估数的错误.

总结

以上是内存溢出为你收集整理的python – 在scipy上寻求与optimize.fmin的融合全部内容,希望文章能够帮你解决python – 在scipy上寻求与optimize.fmin的融合所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1193283.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存