-
大小: 11KB文件类型: .m金币: 1下载: 0 次发布日期: 2021-05-09
- 语言: Matlab
- 标签:
资源简介
(1)求算术平均值;
(2)求残余误差(绝对误差);
(3)求标准差;
(4)判断粗大误差,如果发现粗大误差,剔除粗大误差后再进行计算;
(5)判断数据是否具有线性误差或者周期性误差。
代码片段和文件信息
clear
clc
%以下为罗曼诺夫斯基准则中的判别表
cd_va=[4.97 3.56 3.30 2.78 2.62 2.51 2.43 2.37 2.33 2.29 2.26 2.24 2.22 2.20 2.18 2.17 2.26 2.15 2.14 2.13 2.12 2.11 2.10 2.10 2.09 2.09 2.08];
%以下为t分布表,a=0.01
t=[4.03 3.71 3.50 3.36 3.25 3.17 3.11 3.05 3.01 2.98 2.95 2.92 2.90 2.88 2.86];
%以下为检验周期性系统误差需要的表 p=0.95
zhouqi=[0.39 0.41 0.445 0.468 0.492 0.512 0.531 0.548 0.564 0.578 0.591 0.603 0.614 0.624];
%以下数据为罗曼诺夫斯基判别粗大误差所用数据 取a=0.01
luo=[11.46 6.53 5.04 4.36 3.96 3.71 3.53 3.41 3.31 3.23 3.17 3.12 3.08 3.04 3.01 3.00 2.95 2.93];
%=0; %显著度
while 1
x=input(‘请输入测量列:‘)
l=length(x);
mean_x=0; %平均值
for i=1:l
mean_x=mean_x+x(1i)/l;
end
v=0;
for i=1:l
v(1i)=x(1i)-mean_x; %v为残差
end
y=0; %中间变量
for i=1:l
y=y+v(1i)*v(1i)/(l-1);
end
q=sqrt(y); % q为标准差
qx=q/sqrt(l); %算术平均的标准差
%------------------------------------------------------
%以下用罗曼夫斯基准则判别粗大误差
%------------------------------------------------------
for i=1:l %对残差求绝对值
s(1i)=abs(v(1i));
end
max_=max(s); %求残差绝对值中的最大值
n=1; %改粗大误差值对应的列号
for i=1:l
if s(1i)==max_
break;
else
n=n+1;
end
end
qq=1; %剔除算法
pp=1;
for i=1:l
if i==n
pp=pp+1;
else
x1(1qq)=x(1pp); %剩余测量列
qq=qq+1;
pp=pp+1;
end
end
%计算剩余测量列的平均值、标准差、等
len=length(x1);
mean_x1=0; %平均值
for i=1:len
mean_x1=mean_x1+x1(1i)/len;
end
v1=0;
for i=1:len
v1(1i)=x1(1i)-mean_x1; %v1为残差
end
y1=0; %中间变量
for i=1:len
y1=y1+v1(1i)*v1(1i)/(len-1);
end
q1=sqrt(y1); % q1为标准差
qx1=q1/sqrt(len); %算术平均的标准差
kl=q1*luo(1(l-3));
kl=kl*q1;
tl=x(1n)-x1;
tl=abs(tl);
if tl>kl
lyt_f=0;
else
lyt_f=1;
end
for i=1:len %对残差求绝对值
s1(1i)=abs(v1(1i));
end
max_2=max(s1); %求残差绝对值中的最大值
n2=1;
for i=1:len
if s1(1i)==max_2
break;
else
n2=n2+1;
end
end
% 第二次剔除可疑值
qq1=1;
pp1=1;
for i=1:len
if i==n2
pp1=pp1+1;
else
h1(1qq1)=x1(1pp1);
qq1=qq1+1;
pp1=pp1+1;
end
end
len2=length(x1);
mean_x2=0; %平均值
for i=1:len2
- 上一篇:B样条曲线逼近
- 下一篇:Matlab增量式PID算法仿真
评论
共有 条评论