我可以让scipy. optimiz.fmin处理一个变量的函数,但是我不知道如何处理两个变量的函数。下面是一个简单的例子,我尝试过最大化一个函数(但是失败了)。我做错了什么?
from scipy.optimize import fmin
test2 = lambda x,y: x-x**2 + y - y**2
guess = [ 0.5,0.5 ] #just some guess
print fmin( -test2, guess, args=(x,y) )
错误消息:
print fmin( -test2, guess, args=(x,y) )
TypeError: bad operand type for unary -: 'function'
更新:谢谢你的回答!最后得到了以下同样有效的结果:
谢谢,这起作用了。最后得到了下面的代码,它们也起作用了:
第一个
正如您可能已经猜到的,我仍在学习基础知识,并不总是发现错误消息那么明显。
1条答案
按热度按时间kuuvgm7e1#
错误消息非常明确:你不能对一个函数求反。把求反操作移到函数定义中。同时,你应该改变函数,使它只对一个参数,一个NumPy数组起作用:
然后将其最小化,不使用
args
: