用python将曲线绘制到一组点
我有 及 我附上了一张图,上面显示的是: 我需要用函数f(x)=a*exp(-x/b)+c来拟合曲线用python将曲线绘制到一组点,python,scipy,curve-fitting,Python,Scipy,Curve Fitting,我有 及 我附上了一张图,上面显示的是: 我需要用函数f(x)=a*exp(-x/b)+c来拟合曲线 但是,我无法使scipy曲线拟合工作。如何进行此操作?您必须定义要拟合的函数,然后将其传递给curve\u fit。函数必须首先取自变量,然后取所有剩余参数 定义函数(x,a,b,c): 返回a*np.exp(-x/b)+c #获取参数和协方差 参数,cov=scipy.optimize.curve_fit(f=f,扩展数据=x_数据,ydata=y_数据) #为每个参数声明专用字母 a、 b
但是,我无法使scipy
曲线拟合工作。如何进行此操作?您必须定义要拟合的函数,然后将其传递给curve\u fit
。函数必须首先取自变量,然后取所有剩余参数
定义函数(x,a,b,c):
返回a*np.exp(-x/b)+c
#获取参数和协方差
参数,cov=scipy.optimize.curve_fit(f=f,扩展数据=x_数据,ydata=y_数据)
#为每个参数声明专用字母
a、 b,c=参数
#密谋
plt.绘图(x_数据,y_数据)
plt.plot(x_数据,[func(x,a=a,b=b,c=c)表示x_数据中的x])
plt.show()
您的意思是必须将f(x)拟合到数据中吗?您可以使用scipy
curve\u fit
来实现这一点。如果它不能正常工作,请说明你做了什么,问题是什么。然而,在我看来,你描述的函数并不是这个数据的最佳模型。也许你的意思是a*x*exp(-x/b)+c
?
x_data = [3, 6, 9, 12, 16, 21, 28, 50]
y_data = [0, 333.33333333, 333.33333333, 333.33333333, 250, 200, 142.85714286, 45.45454545]