-
大小: 11KB文件類型: .m金幣: 1下載: 0 次發(fā)布日期: 2021-05-09
- 語言: Matlab
- 標簽:
資源簡介
(1)求算術平均值;
(2)求殘余誤差(絕對誤差);
(3)求標準差;
(4)判斷粗大誤差,如果發(fā)現(xiàn)粗大誤差,剔除粗大誤差后再進行計算;
(5)判斷數(shù)據(jù)是否具有線性誤差或者周期性誤差。
代碼片段和文件信息
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];
%以下為檢驗周期性系統(tǒng)誤差需要的表?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];
%以下數(shù)據(jù)為羅曼諾夫斯基判別粗大誤差所用數(shù)據(jù)?????取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算法仿真
評論
共有 條評論