我正在搜索使用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'
解决方法:
您需要提交numpy数组而不是列表:
import numpy as np
sp.optimize.line_search(test_func,test_grad,np.array([1.8,1.7]),np.array([-1.,-1.]))