开发者社区> 问答> 正文

使用scipy.optimize.minimize()在区间中查找root - 如何正确设置边界?

一码平川MACHEL 2019-01-16 16:56:25 832

我试图在一个区间内使用minimize()找到一个函数的根。[在这个例子中,这意味着我想在[eps,a] $]中找到$ z 的值,其中$ $ scipy.sin(z)-z = 0 $在区间$ z 中

如果我从文档中正确理解,那意味着我必须使用bounds选项。但是,我得到ValueError:长度x0!=边界长度错误。

这是我的代码:

import scipy
import scipy.optimize
def f(z):

return 1000*scipy.sin(z)-z

scipy.optimize.minimize(f, 2*eps, bounds=(eps,a))
这是完整的错误消息。
VepdW

Python
分享到
取消 提交回答
全部回答(1)
  • 一码平川MACHEL
    2019-07-17 23:25:40

    像这样:

    import scipy
    import scipy.optimize

    def f(z):

    return 1000*scipy.sin(z)-z

    scipy.optimize.minimize(f, 2*eps, bounds=[(eps,a)])

    0 0

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题