【发布时间】:2016-01-26 10:09:13
【问题描述】:
我正在寻找使用scipy.optimize.line_search 的示例。我真的不明白这个函数如何与多变量函数一起工作。我写了一个简单的例子
import scipy as sp
import scipy.optimize
def test_func(x):
return (x[0])**2+(x[1])**2
def test_grad(x):
return [2*x[0],2*x[1]]
sp.optimize.line_search(test_func,test_grad,[1.8,1.7],[-1.0,-1.0])
我有
File "D:\Anaconda2\lib\site-packages\scipy\optimize\linesearch.py", line 259, in phi
return f(xk + alpha * pk, *args)
TypeError: can't multiply sequence by non-int of type 'float'
【问题讨论】:
-
[1.8,1.7],[-1.0,-1.0] 应该是 ndarray 类型;它有助于将它们转换为 numpy 数组吗?另外你为什么不使用真正的渐变功能?