zbg100 发表于 2016-6-17 10:39 
改了以后,,,感觉没差别,,,
result=spo.minimize(Eu,[5,5],method='SLSQP',bounds=bnds,constraints=cons)
这个语句中,你只是创建了lambda函数对象,没有给lambda函数传递参数。试着改成:
ld = lambda s,b:100-10*s-10*b
cons=({'type':'ineq','fun': ld(s,b)}) #cons是由字典组成的元组
result=spo.minimize(Eu,[5,5],method='SLSQP',bounds=bnds,constraints=cons)
另,s,b在函数中定义,那在函数外就没有定义了。