当我尝试使用以下代码使用scipy.minimize.brute()最小化函数时:
import scipy
scipy.optimize.brute(lambda x: x**2, ranges=(-2,3))
我收到以下错误:
TypeError: object of type 'int' has no len()
我想这与范围的规格有关,但我不明白为什么。文档说
范围元组的每个组件必须是“切片对象”或形式的范围元组(低,高)。
我的错误在哪里?
答案 0 :(得分:6)
正如文件所说:
范围元组的每个组件必须是“切片对象”或形式的范围元组(低,高)。
因此该函数需要一个元组元组,每个维度的形式(low, high)
之一。您只有一个维度,因此您的案例中的正确调用将是
scipy.optimize.brute(lambda x: x**2, ranges=((-2,3),) )