-1
我试图用scipy.optimize.brute
功能AttributeError的:“元组”对象有没有属性“拉威尔”
import numpy as np
import scipy.optimize as so
def root2d(x,a,b):
F1 = np.exp(-np.exp(-(x[0]+x[1]))) - x[1]*(b+x[0]**2)
F2 = x[0]*np.cos(x[1]) + x[1]*np.sin(x[0]) - a
return (F1,F2)
a = 0.5
b = 1
x0 = np.array([-0.1,0.1]) # initial guesses
rranges = (slice(-4,4,0.2),slice(-4,4,0.2))
print(so.brute(root2d,rranges,args=(a,b),finish=so.fmin))
,我感到我不明白的错误,解决两个同时非线性方程组:AttributeError: 'tuple' object has no attribute 'ravel'
。这是什么意思,如何修复我的代码(如果可能的话)?
编辑:完整的错误消息
Traceback (most recent call last):
File "<ipython-input-2-29b9507fcb99>", line 1, in <module>
runfile('.../test')
File "C:\WinPython\WinPython-64bit-3.5.2.3\python-3.5.2.amd64\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
execfile(filename, namespace)
File "C:\WinPython\WinPython-64bit-3.5.2.3\python-3.5.2.amd64\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "../test.py", line 111, in <module>
print(so.brute(root2d,rranges,args=(a,b),finish=so.fmin))
File "C:\WinPython\WinPython-64bit-3.5.2.3\python-3.5.2.amd64\lib\site-packages\scipy\optimize\optimize.py", line 2711, in brute
indx = argmin(Jout.ravel(), axis=-1)
AttributeError: 'tuple' object has no attribute 'ravel'
显示完整的回溯。 Python解释器为您提供尽可能多的信息来帮助您解决问题 - 您为什么不把它包含在这里供其他人使用? –
由于您正在返回2个变量,所以您需要像访问列表索引时一样访问它们。 – Aditya
最小化函数只能有一个输出。您需要结合F1和F2或分别进行优化。 – kazemakase