【Matlab代码】生成物浓度散点图

在化学反应中,已知生成物的浓度(%)与时间(分)有关。
在这里插入图片描述
实验5:分析生成浓度与时间之间的关系。

t=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16];
y=[4.00,6.40,8.00,8.80,9.22,9.50,9.70,9.86];
y=[y,10.00,10.20,10.32,10.42,10.50,10.55,10.58,10.60];
plot(t,y,'r+')%绘图:t-时间,y-浓度
xlabel('时间');ylabel('浓度');%坐标轴标签
legend('生成物浓度散点图')

在这里插入图片描述
结论:单调上升,开始上升较快随后逐渐变慢。
函数类型:多项式、指数安徽念书、对数函数等。
实验6:多项式拟合。

 p2=polyfit(t,y,2);%2阶拟合
p4=polyfit(t,y,4);%4阶拟合
p6=polyfit(t,y,6);%6阶拟合
R1=dot(y-polyval(p6,t),y-polyval(p6,t))%误差
plot(t,y,'r+',t,polyval(p2,t),t,polyval(p4,t),t,polyval(p6,t))
legend('测量数据','2阶拟合','4阶拟合','6阶拟合')

在这里插入图片描述

注意:
在这里插入图片描述
修改为:plot(t,y,‘r+’,t,polyval(p2,t),t,polyval(p4,t),t,polyval(p6,t))
实验7:做双曲函数拟合。

p1=polyfit(1./t,1./y,1);%双曲函数拟合
plot(t,y,'r+',t,1./polyval(p1,1./t))
R2=dot(y-1./polyval(p1,1./t),y-1./polyval(p1,1./t))
legend('测量数据','双曲型拟合')

在这里插入图片描述
实验8:做指数函数拟合。
在这里插入图片描述

p3=polyfit(1./t,log(y),1);
plot(t,y,'r+',t,exp(polyval(p3,1./t)))
R3=dot(y-exp(polyval(p3,1./t)),y-exp(polyval(p3,1./t)))
legend('测量数据','指数型拟合')

在这里插入图片描述
注:变量t和y,沿用代码中的定义。
实验9:做对数函数拟合。
在这里插入图片描述

p5=polyfit(log(t),y,1);
plot(t,y,'r+',t,polyval(p5,log(t)))
R4=dot(y-polyval(p5,log(t)),y-polyval(p5,log(t)))
legend('测量数据','对数型拟合')

在这里插入图片描述
实验10:做6阶多项式与指数函数拟合

p6=polyfit(t,y,6);
p3=polyfit(1./t,log(y),1);
plot(t,y,'r+',t,polyval(p6,t),t,exp(polyval(p3,1./t)))
legend('测量数据','6阶多项式拟合','指数型拟合')

在这里插入图片描述
结论:似乎6阶多项式效果更好些。
生成物的浓度应该不会无限增大,从表1-2来看,生成物浓度的上限大约为11,而所得的指数型拟合函数存在极限
在这里插入图片描述
极限值能够很好的反映生成物浓度的上限,故总的来说,所得指数型拟合函数更合适。
微信“图像处理与模式识别研究所”关注我呦

猜你喜欢

转载自blog.csdn.net/qq_41985559/article/details/108796329