使用发布的代码尝试对数据集进行对数拟合。我不断收到Optimal parameters not found: Number of calls to function has reached maxfev = 800
。你能帮助我吗
1.解决错误
2.如果我使用的方程对于当前数据集来说是一个很好的方程
3.建议其他方法吗?
Dataset
Years Values
0 2000 23.0
1 2001 27.5
2 2002 46.0
3 2003 56.0
4 2004 64.8
5 2005 71.2
6 2006 80.2
7 2007 98.0
8 2008 113.0
9 2009 155.8
10 2010 414.0
11 2011 2297.8
12 2012 3628.4
13 2013 16187.8
14 2014 25197.8
15 2015 42987.8
16 2016 77555.5
17 2017 130631.9
X = np.array(df.Years, dtype = float)
y = np.array(df.Values, dtype = float)
def func(x, a, b, c):
return a * np.exp(b * x) + c
popt, pcov = curve_fit(func, X, y)
plt.plot(X, y, 'ro', label="Original data")
plt.plot(X, func(X, *popt), label="Fitted Curve")
plt.legend(loc='upper left')
plt.show()