如何解决使用只有1个未知参数的optimize.least_square时,与残差数组的形状有关的问题
我遇到了一个我自己无法解决的问题...我正在尝试迭代解决一个只有一个未知参数的五个非线性方程组,但是仍然收到如下所示的错误消息。但是,当我求解3个未知参数时(使用相同代码,但用要估计的参数替换一些数字),不会出现此错误。我的代码如下:
def equations (L):
f1 = 5.519 - ((1.343876648526599/0.4)*(log(18/3.2441500954852724) - (-5*(148/L))))
f2 = 8.940 - ((1.343876648526599/0.4)*(log(56/3.2441500954852724) - (-5*(148/L))))
f3 = 11.658 - ((1.343876648526599/0.4)*(log(98/3.2441500954852724) - (-5*(148/L))))
f4 = 12.590 - ((1.343876648526599/0.4)*(log(123/3.2441500954852724) - (-5*(148/L))))
f5 = 12.983 - ((1.343876648526599/0.4)*(log(148/3.2441500954852724) - (-5*(148/L))))
return (f1,f2,f3,f4,f5)
x0 = 300
root = spo.least_squares(equations,x0,bounds = ((10),(500)),max_nfev = 100).x
错误消息:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-34-7315f1f7ce27> in <module>()
---> 27 root = spo.least_squares(equations,max_nfev = 100).x
/usr/local/lib/python3.6/dist-packages/scipy/optimize/_lsq/least_squares.py in least_squares(fun,jac,bounds,method,ftol,xtol,gtol,x_scale,loss,f_scale,diff_step,tr_solver,tr_options,jac_sparsity,max_nfev,verbose,args,kwargs)
809 if f0.ndim != 1:
810 raise ValueError("`fun` must return at most 1-d array_like. "
--> 811 "f0.shape: {0}".format(f0.shape))
812
813 if not np.all(np.isfinite(f0)):
ValueError: `fun` must return at most 1-d array_like. f0.shape: (5,1)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。