【发布时间】:2013-11-29 21:46:08
【问题描述】:
我试图解决一个小玩具问题
import numpy as np
import scipy.optimize as opt
def f(a):
return np.array([a+.2,a-.1])
opt.leastsq(f,2)
但是,它给了我一个错误
\site-packages\scipy\optimize\minpack.py in leastsq(func, x0, args, Dfun, full_output, col_deriv, ftol, xtol, gtol, maxfev, epsfcn, factor, diag)
362 maxfev = 200*(n + 1)
363 retval = _minpack._lmdif(func, x0, args, full_output, ftol, xtol,
--> 364 gtol, maxfev, epsfcn, factor, diag)
365 else:
366 if col_deriv:
error: Result from function call is not a proper array of floats.
但我的函数 f 确实给出了一个 ndarray。
【问题讨论】:
-
从文档来看,这似乎应该可行。可能是 SciPy 中的一个错误。
-
尝试在调用时让
f打印a和np.array([a+.2,a-.1]),然后退出。查看结果是否符合f的预期格式。
标签: python optimization scipy mathematical-optimization