Python Scipy.optimize.minimize在传递带有args的单个参数时给出的错误
给定以下值Python Scipy.optimize.minimize在传递带有args的单个参数时给出的错误,python,scipy,minimize,Python,Scipy,Minimize,给定以下值 a = 100.0 b = 50.0 c = 200.0 以下代码有效(它没有做任何有趣的事情) 但是下面的代码会产生错误>。但唯一的区别似乎是我只传递了一个论点,而不是两个 def excessRevenue2(taxH,blah1): return taxH**2 + blah1 print optimize.minimize( excessRevenue2,c,args=(a) ).x 现在Python认为args参数是一个浮点,而不是元组,所以只需添加一个逗号 p
a = 100.0
b = 50.0
c = 200.0
以下代码有效(它没有做任何有趣的事情)
但是下面的代码会产生错误>。但唯一的区别似乎是我只传递了一个论点,而不是两个
def excessRevenue2(taxH,blah1):
return taxH**2 + blah1
print optimize.minimize( excessRevenue2,c,args=(a) ).x
现在Python认为
args
参数是一个浮点,而不是元组,所以只需添加一个逗号
print optimize.minimize( excessRevenue2,c,args=(a,)).x
因此,现在该函数将按预期工作,即:
from scipy import optimize
a = 100.0
b = 50.0
c = 199.9
def excessRevenue1(taxH,blah1,blah2):
return taxH**2 + blah1 + blah2
def excessRevenue2(taxH,blah1):
return taxH**2 + blah1
print optimize.minimize( excessRevenue2,c,args=(a,)).x
print optimize.minimize(excessRevenue1,c,args=(a,b)).x
将返回:
>>> print optimize.minimize( excessRevenue2,c,args=(a,)).x
[ -1.65480420e-07]
>>> print optimize.minimize(excessRevenue1,c,args=(a,b)).x
[ -1.65480420e-07]
>>> print optimize.minimize( excessRevenue2,c,args=(a,)).x
[ -1.65480420e-07]
>>> print optimize.minimize(excessRevenue1,c,args=(a,b)).x
[ -1.65480420e-07]