用Matlab进行最小二乘法线性拟合求传感器非线性误差灵敏度.pdf
用 Matlab 进行最小二乘法线性拟合(求传感器非线性误差、灵敏度)1/2%后面的为注释,红色部分代码需要根据实际情况更改%最小二乘法线性拟合y=ax+b x=0.5,1,1.5,2,2.5,3,3.5,4,4.5,5;%自变量y=191,321,442,565,686,819,930,1032,1153,1252;%因变量xmean=mean(x);ymean=mean(y);sumx2=(x-xmean)*(x-xmean);sumxy=(y-ymean)*(x-xmean);a=sumxy/sumx2;%解出直线斜率a(即传感器灵敏度)b=ymean-a*xmean;%解出直线截距b z=(a*(x(1,10)+b-(y(1,10)/(y(1,10);%“10”是自变量的个数,z 为非线性误差(即线性度)a b z%作图,先把原始数据点用蓝色十字描出来figure plot(x,y,+);hold on%用红色绘制拟合出的直线px=linspace(0,6,50);%(linspace 语法(从横坐标负轴起点0 画到横坐标正轴终点6,50 等分精度)py=a*px+b;plot(px,py,r);运行结果:a=236.9818 b=87.4000 另一种简单一点的方法:用 Matlab 进行最小二乘法线性拟合(求传感器非线性误差、灵敏度)2/2%最小二乘法线性拟合y=ax+b x=0.5,1,1.5,2,2.5,3,3.5,4,4.5,5;%自变量y=191,321,442,565,686,819,930,1032,1153,1252;%因变量p=polyfit(x,y,1);p 运行结果:p=236.9818 87.4000