开发者社区> 问答> 正文

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

我试图在一个区间内使用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

展开
收起
一码平川MACHEL 2019-01-16 16:56:25 4943 0
1 条回答
写回答
取消 提交回答
  • 像这样:

    import scipy
    import scipy.optimize

    def f(z):

    return 1000*scipy.sin(z)-z

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

    2019-07-17 23:25:40
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载