国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于MATLAB的粗大誤差處理方法研究

2019-11-28 07:22:08陳瑋
商品與質(zhì)量 2019年29期
關(guān)鍵詞:數(shù)據(jù)處理殘差排序

陳瑋

北京理工大學(xué)珠海學(xué)院 廣東珠海 519088

在實驗過程中,會由于實驗方法、實驗人員等因素造成數(shù)據(jù)異常。該異??赡苁怯纱执笳`差造成的。粗大誤差是指在測量過程中,偶爾產(chǎn)生的某些不應(yīng)有的反常因素造成的測量數(shù)值超出正常測量誤差范圍的小概率誤差[1]。含有但不屬于異常值的粗大誤差的數(shù)據(jù)會干擾對實驗結(jié)果的分析,甚至歪曲實驗結(jié)果。若不剔除異常值,而把一些包含較大正常誤差但不屬于異常值的數(shù)據(jù)舍棄或保留一些包含較小粗大誤差的異常值,就會錯估了儀器的精確等級[1]。對于傳統(tǒng)的數(shù)據(jù)處理,當(dāng)數(shù)據(jù)量比較大時,計算容易出現(xiàn)錯誤,而且結(jié)果不直觀。而MATLAB軟件以其強(qiáng)大的數(shù)據(jù)處理,簡潔的程序編程,很適合作為數(shù)據(jù)處理的輔助工具。將二者結(jié)合起來,傳統(tǒng)的數(shù)據(jù)處理只需很短的時間就可以判斷出是否含有粗大誤差。

1 基本原理及算法

萊以特準(zhǔn)則適用測量次數(shù)較多的測量列,狄克松準(zhǔn)則適用測量次數(shù)較少而要求較高的測量列。其中萊以特準(zhǔn)則判別粗大誤差比較簡單,但當(dāng)測量次數(shù)較多時,計算過程比較繁瑣;而狄克松準(zhǔn)則是對測量列中的最小值和最大值同時進(jìn)行判斷,因此一次就可以迅速判別是否含有粗大誤差。

1.1 程序流程圖

圖1 測量數(shù)據(jù)處理流程圖

1.1.1 找出含有粗大誤差的數(shù)值

首先假設(shè)粗大誤差的序號為1,然后比較每個測量值的殘差絕對值是否和最大的殘差絕對值相等,若相等,則第一個數(shù)據(jù)含有粗差,否則n加1,一共執(zhí)行l(wèi)次。其程序如下:

n=1

%找出粗大誤差值對應(yīng)的序號

for i=1:l

if s(i)==max_

%比較殘差的絕對值和最大的殘差絕對值是否相等

break;

else

n=n+1;

end

1.1.2 剔除粗大誤差后的排序

qa是剔除一個粗差后剩余的數(shù)組x1的下標(biāo)數(shù)值,pb是還沒剔除粗差的數(shù)組x的下標(biāo)數(shù)值。程序如下:

qa=1;pb=1;

for i=1:l

if i==n

%若在賦值過程中遇到x中的粗差,則直接跳過

pb=pb+1;

else

x1(qa)=x(pb);

%剩余測量列的數(shù)據(jù)

qa=qa+1; pb=pb+1;

end

……

1.2 粗大誤差的發(fā)現(xiàn)和剔除

1.2.1 萊以特準(zhǔn)則

如果在測量列中有|vi|>3σ則可認(rèn)為該數(shù)據(jù)含有粗大誤差,應(yīng)該進(jìn)行剔除[1]。如圖1(2)所示,其主要程序為:

s=abs(v); %對殘差求絕對值

max_=max(s);

%求殘差絕對值中的最大值

if max_>3*q

%萊以特準(zhǔn)則

while (max_>3*q)

sprintf('第 %d 次剔除誤差: ',j)

n=1 ;

%找出粗大誤差值對應(yīng)的列號

for i=1:l

if s(i)==max_

break;

else

n=n+1;

end

……

第一次粗差發(fā)現(xiàn)和剔除后,對剩余測量列要重新進(jìn)行標(biāo)準(zhǔn)差的計算來完成新一輪粗差的判別,依次循環(huán),直到|vi|>3σ測量列再無粗差為止。

1.2.2 狄克松準(zhǔn)則

狄克松準(zhǔn)則先要對測量列的數(shù)值按照大小順序排序,小數(shù)值在前,大數(shù)值在后;然后根據(jù)統(tǒng)計量rij和臨界值r0的關(guān)系,同時完成重新排序后的測量列兩端數(shù)值粗差的發(fā)現(xiàn)與剔除;剔除粗差后,根據(jù)測量次數(shù)的多少,重新選擇統(tǒng)計量rij,再次和臨界值r0進(jìn)行比較。

表1 狄克松準(zhǔn)則的統(tǒng)計量

通過選擇α顯著度,可以得到各統(tǒng)計量的臨界值r0(n,α),當(dāng)測量的統(tǒng)計值rij大于臨界值,就可以相信X(1)或X(n)含有粗大誤差的[1]。

如圖1(3)所示,其主要程序為:

xn=sort(x);

%對測量數(shù)據(jù)進(jìn)行排序

l=length(xn);

r1=(xn(l)-xn(l-2))/(xn(l)-xn(3));

%計算最大值

r2=(xn(1)-xn(3))/(xn(1)-xn(l-2));

%計算最小值

r0=dks(l-2);

dks_f1=1;

% 最大值無誤差;

dks_f2=1;

% 最小值無誤差;

if r1>r0

dks_f1=0;

表2 MA T L A B運行結(jié)果

% 最大值有誤差;

elseif r2>r0

dks_f2=0;

% 最小值有誤差;

else

disp('該測量列不存在粗大誤差')

end

……

2 運行結(jié)果

以《誤差理論與數(shù)據(jù)處理》的數(shù)據(jù)為例:

對某量進(jìn)行15次測量,測得數(shù)據(jù)為28.53 28.52 28.50 29.52 28.53 28.53 28.50 28.49 28.49 28.51 28.53 28.52 28.49 28.40 28.50,如果這些測得值已消除系統(tǒng)誤差,判別是否含有粗大誤差?[1]

測量列中數(shù)據(jù)存在一個粗大誤差的條件下,萊以特準(zhǔn)則是最為簡單方便的。而當(dāng)測量列中數(shù)據(jù)存在多個粗大誤差的條件下,由于萊以特準(zhǔn)則每次只能發(fā)現(xiàn)一個粗差,剔除完還要按照原有流程再發(fā)現(xiàn),再剔除,導(dǎo)致計算過程繁瑣;而狄克松準(zhǔn)則雖然多了個排序,但由于是對數(shù)據(jù)中的最值同時進(jìn)行判斷,其處理過程還是比萊以特準(zhǔn)則快得多。

3 結(jié)語

本文根據(jù)粗大誤差的特點,以萊以特和狄克松準(zhǔn)則為例,用MATLAB軟件設(shè)計了處理粗大誤差的算法。該算法簡單易行,結(jié)果顯示明確,能形象直觀的給出處理的結(jié)果。

猜你喜歡
數(shù)據(jù)處理殘差排序
基于雙向GRU與殘差擬合的車輛跟馳建模
認(rèn)知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補(bǔ)與極大似然估計法*
排序不等式
ILWT-EEMD數(shù)據(jù)處理的ELM滾動軸承故障診斷
基于殘差學(xué)習(xí)的自適應(yīng)無人機(jī)目標(biāo)跟蹤算法
恐怖排序
基于遞歸殘差網(wǎng)絡(luò)的圖像超分辨率重建
節(jié)日排序
刻舟求劍
兒童繪本(2018年5期)2018-04-12 16:45:32
基于希爾伯特- 黃變換的去噪法在外測數(shù)據(jù)處理中的應(yīng)用
秀山| 烟台市| 景泰县| 芜湖县| 阳曲县| 柳州市| 阿城市| 保靖县| 旬阳县| 宿迁市| 南昌县| 宜昌市| 花莲县| 通榆县| 萝北县| 霞浦县| 集安市| 仙游县| 绥中县| 大余县| 梅河口市| 望奎县| 肥乡县| 崇信县| 南川市| 枞阳县| 巨鹿县| 肥城市| 镇沅| 安阳县| 克拉玛依市| 巴中市| 屏东市| 南宫市| 太仆寺旗| 岳阳县| 岳普湖县| 新田县| 民县| 伊通| 沙雅县|