给出以下值
def excessRevenue1(taxH,blah1,blah2):
return taxH**2 + blah1 + blah2
print optimize.minimize( excessRevenue1,c,args=(a,b) ).x
以下代码有效(它没有做任何有趣的事情)
def excessRevenue2(taxH,blah1):
return taxH**2 + blah1
print optimize.minimize( excessRevenue2,c,args=(a) ).x
但以下代码产生错误<< TypeError:只能将元组(不是" float")连接到元组>>。但唯一的区别似乎是我只传递了一个参数而不是两个参数。
bsearch()
答案 0 :(得分:0)
现在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]