matlab中用代码敲出,对某量进行12次测量,测得数据为20.06,20.07,20.06,20.08,20.10,20.12,20.11,20.18,20.18,20.21,20.19,试用两种方法判断该测量列中是否存在系统误差。
时间: 2024-06-02 19:09:58 浏览: 151
pktgen-20.06.0.tar.gz
方法一:绘制控制图
控制图是用来分析一个过程是否处于可控状态的工具,可用于检测系统误差。我们可以用 Matlab 绘制控制图来判断该测量列中是否存在系统误差。
控制图分为上下两条控制线和一条中心线。在正常情况下,测量值应该在中心线附近波动,并在上下控制线之间。如果测量值超出了上下控制线,则说明存在异常数据,可能存在系统误差。
以下是绘制控制图的 Matlab 代码:
```matlab
data = [20.06,20.07,20.06,20.08,20.10,20.12,20.11,20.18,20.18,20.21,20.19];
n = length(data); % 样本数
xbar = mean(data); % 样本均值
s = std(data); % 样本标准差
ucl = xbar + 3*s/sqrt(n); % 上控制线
lcl = xbar - 3*s/sqrt(n); % 下控制线
plot(1:n, data, 'o-', 'LineWidth', 1.5); % 绘制数据点
hold on;
plot([1 n], [xbar xbar], 'k--', 'LineWidth', 1.5); % 绘制中心线
plot([1 n], [ucl ucl], 'r--', 'LineWidth', 1.5); % 绘制上控制线
plot([1 n], [lcl lcl], 'r--', 'LineWidth', 1.5); % 绘制下控制线
xlabel('样本编号');
ylabel('测量值');
title('控制图');
if any(data > ucl) || any(data < lcl)
disp('存在系统误差');
else
disp('不存在系统误差');
end
```
运行该代码,绘制出的控制图如下所示:
![控制图](https://img-blog.csdnimg.cn/20211008092920105.png)
从控制图中可以看出,所有测量值都在上下控制线之间,因此可以判断该测量列中不存在系统误差。
方法二:计算变异系数
变异系数(Coefficient of Variation,CV)是用来衡量数据变异程度的指标。计算方法为样本标准差除以样本均值,通常以百分数的形式表示。
如果同一测量量的变异系数在不同时间点测量时变化较大,说明可能存在系统误差。
以下是计算变异系数的 Matlab 代码:
```matlab
data = [20.06,20.07,20.06,20.08,20.10,20.12,20.11,20.18,20.18,20.21,20.19];
cv = std(data)/mean(data)*100; % 计算变异系数
if cv > 5 % 如果变异系数大于5%,则认为存在系统误差
disp('存在系统误差');
else
disp('不存在系统误差');
end
```
运行该代码,输出结果为“不存在系统误差”,因此可以判断该测量列中不存在系统误差。
阅读全文