python-scipy中的line_search的示例

我正在搜索使用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.]))
上一篇:刷题[FireshellCTF2020]ScreenShooter


下一篇:python-通过某些点的值获取功能