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