curve_fit函数不能完全适合原始数据

时间:2018-11-23 20:01:19

标签: python matplotlib

嗨,我有一组数据,并用curve_fit函数拟合了数据  但是该行描述的原始数据集不够好。  curve_fit函数与原始数据不接近。

x数组具有以下数据:

[0. 0.025 0.10333333 0.1175 0.164 0.22 0.27571429 0.27625 0.33333333 0.379 0.40545455 0.43416667 0.47769231 0.52571429 0.528 0.538125 0.56470588 0.5577777 0.59263158 0.6065 0.61190476 0.62545455 ...] 

y数组如下:

[1. 1.95 2.83 3.73 4.57 5.32 5.97 6.81 7.35 7.86 8.5 9.09 9.4 9.83 10.41 11. 11.34 11.8  ...]

我的curve_fit func

def func(x, a, b, c,):
   return a*np.exp(-b*x)+c

popt, pcov = curve_fit(func,x,y, maxfev=10000)

plt.plot(x, y, ls="none", marker='.', color='grey')
plt.plot(x,func(x, *popt),'-')

plt.title("my curve")
plt.legend()
plt.show()

以下是我的情节: enter image description here

1 个答案:

答案 0 :(得分:3)

据我所知,您正在尝试对数据拟合指数曲线。您的大部分数据都集中在右上角,因此算法会尝试使其最适合该部分。