粗大误差处理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档