【发布时间】:2014-02-12 21:27:57
【问题描述】:
我正在尝试使用 fmin 来最小化我的功能:
def minim(self,x_r,x_i):
self.a=complex(3,4)*(3*np.exp(1j*self.L_ch))
x = x_r + x_i
self.T=np.array([[0.0,2.0*self.a],[(0.00645+(x_r)^2), 4.3*x_i^2]])
return self.T
part_real=0.532
part_imag=1.2
R_0 = fmin(A.minim,part_real,part_imag)
但我收到了这个错误:
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/scipy/optimize/optimize.py", line 268, in function_wrapper
return function(x, *args)
TypeError: minim() argument after * must be a sequence, not float
我尝试使用其他东西,例如最小化,但出现了同样的错误。谢谢。
【问题讨论】:
-
你能发一个sscce 来准确地复制你的问题吗?
-
从这里看来,您似乎没有正确使用 fmin。你最初的猜测是 x0 = x_r + x_i*1j 吗?如果是这样,那么您需要将其输入为该格式,您不能以您的方式给出您的 x0。如果它们是参数,那么您需要将它们作为元组传递给函数,例如args = (part_real,part_imag)。您应该首先阅读 fmin 的手册以确保您正确使用它:docs.scipy.org/doc/scipy/reference/generated/…