粗大误差处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
莱以特准则
load a.txt
while(1)
i=1:length(a);
n=length(a);
v(i)=a(i)-mean(a);
bzc=sqrt(sum(v(i).^2)/(length(a)-1)); d=3*bzc;
[maxv,I]=max(abs(v(i)));
if maxv>d
fprintf('cdw is %f\n',a(I));
a(I)=[];
else break;
end
end
cdw is 29.520000
cdw is 28.400000
罗曼诺夫斯基准则
load a.txt
n=input('please input n:\n');
xzd=input('please input xzd:\n'); switch xzd
case xzd==0.05
x=1;
otherwise
x=2;
end
b=a(n);
a(n)=[];
while(1) c=mean(a);
i=1:length(a);
n=length(a);
v(i)=a(i)-mean(a);
bzc=sqrt(sum(v(i).^2)/(length(a)-1));
k=[4.97 3.56 3.04 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.16 2.15 2.14 2.13 2.12 2.11 2.10
2.10 2.09 2.09 2.08;11.46 6.53 5.04 4.36
3.96 3.71 3.54 3.41 3.31 3.23 3.17 3.12 3.08 3.04 3.01 3.00 2.95 2.93 2.91 2.90 2.88 2.86 2.85 2.84 2.83 2.82 2.81];
g=k(x,n-2);
f=g*bzc;
e=abs(b-c);
if e>f
fprintf('cdw is %f\n',b);
else fprintf('wcdw\n');
end
break;
end
please input n:
4
please input xzd:
0.05
cdw is 29.520000
格罗布准则
load a.txt
xzd=input('please input xzd:\n');
switch xzd
case xzd==0.05
x=1;
otherwise
x=2;
end
while(1)
i=1:length(a);
n=length(a);
v(i)=a(i)-mean(a);
bzc=sqrt(sum(v(i).^2)/(length(a)-1));
a=sort(a);
c=min(a);
d=max(a);
g1=(mean(a)-c)/bzc;
gn=(d-mean(a))/bzc;
T=[1.15 1.46 1.67 1.82 1.94 2.03 2.11 2.18 2.23 2.28 2.33 2.37 2.41 2.44 2.48 2.50 2.53 2.56 2.58 2.60 2.62 2.64 2.66 2.74 2.81 2.87 2.96 3.17;1.16 1.49 1.75
1.94
2.10 2.22 2.32 2.41 2.48 2.55 2.61
2.66 2.70 2.75 2.78 2.82 2.85 2.88 2.91
2.94 2.96 2.99
3.01 3.10 3.18 3.24 3.34
3.59];
g=T(x,n-2);
if g1>g
fprintf('cdw is %f\n',c);
a(1)=[];
end
if gn>g
fprintf('cdw is %f\n',d);
a(n)=[];
else break;
end
end
please input xzd:
0.05
cdw is 29.520000
cdw is 28.400000
狄克松准则
load a.txt
xzd=input('please input xzd:\n');
switch xzd
case xzd==0.05
x=1;
otherwise
x=2;
end
while(1)
a=sort(a);
i=1:length(a);
n=length(a);
T=[0.988 0.889 0.780 0.698 0.637 0.683 0.635 0.597 0.679 0.642 0.651 0.641 0.616 0.595 0.577 0.561 0.547 0.535 0.524 0.514 0.505 0.497 0.489;0.341 0.765 0.642 0.560 0.507 0.554 0.512 0.477 0.576 0.546 0.521 0.546 0.525 0.507 0.490 0.475 0.462 0.450 0.440 0.430 0.421 0.413 0.406];
if n<=7
r101=(a(n)-a(n-1))/(a(n)-a(1));
r102=(a(1)-a(2))/(a(1)-a(n));
g=T(x,n-2);
if r101>g
fprintf('cdw is %f\n',a(n));
a(n)=[];
else fprintf('wcdw\n');
end if r102>g
fprintf('cdw is %f\n',a(1));
a(1)=[];
else break;
end
end
if (n<=8)&&(n<=10)
r111=(a(n)-a(n-1))/(a(n)-a(2));
r112=(a(1)-a(2))/(a(1)-a(n-1));
g=T(x,n-2);
if r111>g
fprintf('cdw is %f\n',a(n));
a(n)=[];
else fprintf('wcdw\n');
end
if r112>g
fprintf('cdw is %f\n',a(1));
a(1)=[];
else break;
end
end
if (n>=11)&&(n<=13)
r211=(a(n)-a(n-2))/(a(n)-a(2)); r212=(a(1)-a(3))/(a(1)-a(n-1));
g=T(x,n-2);
if r211>g
fprintf('cdw is %f\n',a(n));
a(n)=[];
else fprintf('wcdw\n');
end