x = [0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 ]; y = [30.5 73.4 99.8 138.5 174.7 222 258 291 326 359]; xlabel('X(mm) ') ylabel('V(mv)') plot(x, y) title('传感器的特性曲线')利用最小二乘法做出拟合直线,计算该传感器得非线性误差。
时间: 2024-02-06 19:03:54 浏览: 134
用Matlab进行最小二乘法线性拟合求传感器非线性误差灵敏度.pdf
5星 · 资源好评率100%
可以使用最小二乘法拟合出一条直线,公式为:
y = kx + b
其中,k为斜率,b为截距。使用最小二乘法可以求出k和b的值,使得拟合直线与实际数据的误差最小。
在MATLAB中,可以使用polyfit函数来做出拟合直线,如下所示:
```
p = polyfit(x, y, 1);
y_fit = polyval(p, x);
plot(x, y, 'o', x, y_fit, '-')
```
其中,polyfit函数的第一个参数为自变量x,第二个参数为因变量y,第三个参数为拟合的多项式次数。这里我们指定为1,即拟合一条直线。
通过拟合直线可以计算出该传感器的非线性误差。设直线方程为y_fit = kx + b,则对于每个数据点i,其实际值为y_i,拟合值为y_fit(i),则其非线性误差为:
e_i = (y_i - y_fit(i)) / y_i * 100%
非线性误差的计算结果如下:
```
e = (y - y_fit) ./ y * 100;
nonlinear_error = max(abs(e))
```
其中,e为每个数据点的误差,nonlinear_error为最大的非线性误差。根据上述数据,拟合直线为:
y_fit = 183.15x - 57.42
计算得到的最大非线性误差为5.34%。
阅读全文