1)先画出“气体浓度ppm与液体浓度%”之间的散点图,如下:
Data=[
0.10 672
0.15 700
0.20 722
0.25 729
0.30 737
0.35 737
0.40 740
0.45 748
0.50 750
0.55 755
0.60 765
0.65 770
0.70 780
0.75 790];
>> xData=Data(:,1);
yData=Data(:,2);
plot(xData,yData,'bo');
title('original data')
得到如下散点图:
2)判断曲线类型,由上面的散点图可知,气体浓度ppm随着酒精溶液的百分比增大,而增大。曲线走势是一个S型,
可以把它看成是一个3次函数,即a*x^3+b*x^2+c*x+d
3)曲线拟合
在matlab的命令行输入:
>> A=[0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75] %自变量x的值
B=[672 700 722 729 737 740 745 748 750 755 765 770 780 790] %因变量y的值
x=0.1:0.05:0.75 %变量x的取值范围
[P,S]=polyfit(A,B,3) %产生一个3次多项式P
poly2str(P,'x') %打印多项式P
-----------------------------------------------------------------------------------------
函数y--x,即f(x)=y,如下:
即y=f(x)=1180*x^3 - 1634*x^2 + 806*x + 611
4)验证
新建一个.m文件,命名为jiujing.m,如下:
function jiuppm=jiujing(x);
if x>=0 && x<0.03
jiuppm=20+1000*x;
elseif x>=0.03 && x<0.1
jiuppm=400+1000*x;
elseif x>=0.1 && x<=1
jiuppm=1180*x.^3-1634*x.^2+806*x+611;
end
------------------------------------------------------------------
在matlab的命令行窗口输入:>> jiujing(0.1)
结果为:,与实际值672相差不大,所以该函数拟合成功。