为了账号安全,请及时绑定邮箱和手机立即绑定

使用 scipy.optimize.minimize() 在区间内找到根 - 如何正确设置边界?

使用 scipy.optimize.minimize() 在区间内找到根 - 如何正确设置边界?

慕神8447489 2021-10-12 10:24:39
我试图在一个时间间隔内使用最小化()找到一个函数的根。[在这个例子中,这意味着我想在区间 $z\in[eps,a]$ 中找到满足 $1000*scipy.sin(z)-z=0$ 的 $z$ 值]如果我从文档中正确理解,那意味着我必须使用 bounds 选项。但是,我得到ValueError: length of x0 != length of bounds error。这是我的代码:import scipy import scipy.optimizedef f(z):    return 1000*scipy.sin(z)-zscipy.optimize.minimize(f, 2*eps, bounds=(eps,a))这是完整的错误消息。
查看完整描述

1 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

像这样:


import scipy 

import scipy.optimize


def f(z):

    return 1000*scipy.sin(z)-z

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


查看完整回答
反对 回复 2021-10-12
  • 1 回答
  • 0 关注
  • 740 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信