问题描述
我遇到了一个我自己无法解决的问题...我正在尝试迭代解决一个只有一个未知参数的五个非线性方程组,但是仍然收到如下所示的错误消息。但是,当我求解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 (将#修改为@)