实验二 实验报告 随机误差的概率分布与数据处理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
K=(N+1)/2
else
K=(N)/2
end
A1=0;
delta=0;%delta=A1-A2
for i=1:K;%计算前半部分残差和
A1=A1+v0(i);
end
A2=0;
for j=K+1:N;%计算后半部分残差和
A2=A2+v0(j);
end
A1;
A2;
fprintf('Delta校核结果\n');
end
end
%去除含有粗大误差的数据后重新计算
l20=sort(l);
j=1;%以下开始去除粗大误差
for i=2:N
l2(j)=l20(i);
j=j+1;
end
v2=l2-mean(l2);
N2=length(l2);
Average_gbls=mean(l2);
Standard_gbls=0;
for i=1:N2
fprintf('算术平均值的极限误差为(-%d,+%d\n)',S_lim,S_lim);
运行结果:
end
end
运行结果:
5.利用Matlab语句(或C语言),计算算术平均值的标准差和极限误差
%计算算术平均值的标准差和极限误差
M1=mean(l);%算术平均值
M2=std(l);%标准差
N=length(l);
sigema_std=M2/sqrt(N)
S_lim=2.14*sigema_std
fprintf('算术平均值的标准差为 %d\n',sigema_std);
v0=l-mean(l)%残差列
M1=mean(l)%算术平均值
M2=std(l)%标准差
计算结果
数据分布
2.利用Matlab语句(或C语言),用残余误差校核法判断测量列是否存在线性和周期性系统误差
%残余误差校核法 校核线性系统误差
N=length(l)%原数组长度
if(mod(N,2))%求数组半长
end
sigema1=sqrt(sigema1/(N-1))
for i=1:N %别捷尔斯公式
sigema2=sigema2+abs(v0(i));
end
sigema2=1.253*sigema2/sqrt(N*(N-1))
u=sigema2/sigema1-1
if(abs(u)>=(2/sqrt(N-1)))
if(g1>=2.41)
fprintf('第一项测量值含有粗大误差\n');
fprintf('现在去除该项,重新计算\n');
else
if(gn>=2.41)
fprintf('最后一项测量值含有粗大误差\n');
fprintf('现在去除该项,重新计算\n');
else
fprintf('测量值不含有粗大误差\n');
fprintf('测量列中存在粗大误差,第8项数据存在粗大误差\n');
else
fprintf('测量列中不存在粗大误差\n');
end
运行结果
%格布罗斯法则判断是否存在粗大误差
l1=sort(l);
N=length(l);
Average_gbls=mean(l);
Standard_gbls=0;
for i=1:N
Standard_gbls=Standard_gbls+v0(i)^2;
end
Standard_gbls=sqrt(Standard_gbls/(N-1));%未去除粗大误差数据的标准差
%检查g1
g1=(Average_gbls-l1(1))/Standard_gbls;%g(1)
%检查gn
gn=(l1(N)-Average_gbls)/Standard_gbls;%g(n)
end
运行结果
可见delta近似于0,由马利克夫准则可知,此案例中应用的残余误差校核法无法确定是否存在系统误差。
3.用不同公式计算标准差后通过比较判断测量数据有无系统误差
%不同公式计算标准差比较法
sigema1=0;
sigema2=0;
u=0;
for i=1:N %贝塞尔公式
sigema1=sigema1+v0(i)^2;
if(i==8)
i=i+1;
continue
else
l1(j)=l(i);
j=j+1;
end
end
N1=length(l1);
v1=l-mean(l1);%去除粗大误差数据后的残差列
Averagae_lmnfsj=mean(l1);%去除粗大误差数据后的算术平均值
Standard_lmnfsj=0;
实验报告:实验二随机误差的概率分布与数据处理
1.利用Matlab语句(或C语言),计算算术平均值和标准差(用贝塞尔公式)
clc; clear;
l=[20.42 20.43 20.40 20.Байду номын сангаас3 20.42 20.43 20.39 20.30 20.40 20.43 20.42 20.41 20.39 20.39 20.40];%例2-22数据
if(g1>=2.37)
fprintf('第一项测量值含有粗大误差\n');
fprintf('现在去除该项,重新计算\n');
else
if(gn>=2.37)
fprintf('最后一项测量值含有粗大误差\n');
fprintf('现在去除该项,重新计算\n');
else
fprintf('测量值不含有粗大误差\n');
for i=1:N1
Standard_lmnfsj=Standard_lmnfsj+v1(i)^2;
end
Standard_lmnfsj=sqrt(Standard_lmnfsj/(N1-1));%去除粗大误差数据后的标准差
if((abs(l(8)-Averagae_lmnfsj)-2.24*Standard_lmnfsj)>0)
fprintf('怀疑测量列中存在系统误差\n');
else
fprintf('不确定测量列中是否存在系统误差\n');
end
运行结果
4.利用Matlab语句(或C语言),用罗曼诺夫斯基准则和格罗布斯准则判别有无粗大误差
%罗曼诺夫斯基法则判断是否存在粗大误差
j=1;%以下开始去除粗大误差
for i=1:N
delta=A1-A2%校核结果
%阿贝-赫梅特准则 校核周期性系统误差
u=0
for i=1:N-1;
u=u+v0(i)*v0(i+1);
end
u=abs(u)
if((u-sqrt(N-1)*M30)>0)
fprintf('存在周期性系统误差\n');
else
fprintf('未发现周期性系统误差\n');
Standard_gbls=Standard_gbls+v0(i)^2;
end
Standard_gbls=sqrt(Standard_gbls/(N2-1));%去除粗大误差数据的标准差
%检查g1
g1=(Average_gbls-l2(1))/Standard_gbls;%g(1)
%检查gn
gn=(l2(N2)-Average_gbls)/Standard_gbls;%g(n)
相关文档
最新文档