如何解决Python Jupyter笔记本scipy
很长一段时间以来,我都能添加数据并拟合,然后用数据绘制曲线。但是最近我得到了:
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
<ipython-input-6-6f645a2744bc> in <module>
1 poland = prepare_data(europe_data,'Poland')
----> 2 plot_all(poland,max_y=400000)
3 poland
~/Pulpit/library.py in plot_all(country,max_x,max_y)
43 def plot_all(country,max_x = 1000,max_y = 500000):
44
---> 45 parameters_logistic = scipy.optimize.curve_fit(func_logistic,country['n'],country['all'])[0]
46 parameters_expo = scipy.optimize.curve_fit(func_expo,country['all'])[0]
47
/usr/local/lib64/python3.6/site-packages/scipy/optimize/minpack.py in curve_fit(f,xdata,ydata,p0,sigma,absolute_sigma,check_finite,bounds,method,jac,**kwargs)
787 cost = np.sum(infodict['fvec'] ** 2)
788 if ier not in [1,2,3,4]:
--> 789 raise RuntimeError("Optimal parameters not found: " + errmsg)
790 else:
791 # Rename maxfev (leastsq) to max_nfev (least_squares),if specified.
RuntimeError: Optimal parameters not found: Number of calls to function has reached maxfev = 800.
以下是所有的Python Jupyter Notebook文件:https://files.fm/u/zj7cc6ne#sign_up
如何解决这个问题?
解决方法
scipy.optimize.curve_fit带有关键字参数p0。
初始猜测参数(长度N)。如果没有,则初始 值将全部为1(如果该函数的参数数量可以 可以使用内省来确定,否则会引发ValueError。
如果默认值1与结果相差太远,则算法可能无法收敛。尝试输入一些对您的问题有意义的值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。