使用scipy.optimize.minimize()查找间隔中的根-如何正确设置边界?

时间:2019-01-16 01:45:42

标签: python python-3.x scipy

我试图在一个时间间隔内使用minimal()找到一个函数的根。 [在此示例中,这意味着我想找到在间隔$ z \ in [eps,a] $中满足$ 1000 * 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))

这是完整的错误消息。 error

1 个答案:

答案 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)])