




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上2-21 參考例2-2-6的解題過(guò)程,用C語(yǔ)言或MATLAB設(shè)計(jì)測(cè)量數(shù)據(jù)處理的通用程序,要求如下:(1) 提供測(cè)試數(shù)據(jù)輸入、粗大誤差判別準(zhǔn)則等的人機(jī)界面;(2) 編寫程序使用說(shuō)明;(3) 通過(guò)實(shí)例來(lái)驗(yàn)證程序的正確性。程序如下: #include<math.h> #include<stdio.h> #include<stdlib.h> #include<conio.h> #define MAX 50 typedef struct wuli float dMAX; char name50; int LEN; float cc
2、haMAX; /*殘差數(shù)組*/ float avg; /*data的平均值*/ double sx; /*標(biāo)準(zhǔn)偏差Sx*/ wulidata; wulidata *InputData(); void average(wulidata *wl); void YCZhi(wulidata *wl); void CanCha(wulidata *wl); void BZPianCha(wulidata *wl); void output(wulidata *wl); void range(wulidata *wl); /*-*/ void line() int i; printf("n&q
3、uot;); for(i=0;i<74;i+) printf("="); printf("n"); /*-*/ wulidata *InputData() int i=0,k; float da; char Z=0; wulidata *wl; wl=(wulidata *)malloc(sizeof(wulidata); printf("請(qǐng)為你要處理的數(shù)據(jù)組命名:"); scanf("%s",wl->name); printf("n下面請(qǐng)你輸入數(shù)據(jù)%s具體數(shù)值,數(shù)據(jù)不能超過(guò)50個(gè)n"
4、;,wl->name); printf("當(dāng)name='#'時(shí)輸入結(jié)束n"); do printf("%s%d=",wl->name,i+1); scanf("%f",&da); wl->di=da; i+;if(getchar()='#') break; while(wl->di-1!=0.0&&i<MAX); wl->LEN=i-1; do printf("你輸入的數(shù)據(jù)如下:n"); for(i=0;i<wl-&g
5、t;LEN;i+) printf("%s%d=%ft",wl->name,i+1,wl->di); printf("n你是否要作出修改(Y/N)?"); while( getchar()!='n'); Z=getchar(); if( Z='y'|Z='Y') printf("你須要修改哪一個(gè)元素,請(qǐng)輸入其標(biāo)號(hào)i=(1%d)n",wl->LEN); while( getchar()!='n'); scanf("%d",&k);
6、 printf("n%s%d=",wl->name,k); scanf("%f",&(wl->dk-1); else if(Z='n'|Z='N') printf("OK!下面開始計(jì)算。n"); while(Z!='N'&&Z!='n'); return(wl); /*-*/ void average(wulidata *wl) float ad,sum=0; int i; for(i=0;i<wl->LEN;i+) sum
7、=sum+(wl->di); ad=sum/(wl->LEN); wl->avg=ad; /*-*/ void CanCha(wulidata *wl) int i; for(i=0;i<wl->LEN;i+) wl->cchai=(wl->di)-(wl->avg); /*-*/ void YCZhi(wulidata *wl)/*檢查并剔除異常值*/ int i,j; float g,YCZhi; double temp,CCha; printf("下面開始檢查并提出異常值!n"); doprintf("當(dāng)前共有
8、%d個(gè)數(shù),數(shù)據(jù)如下:n",wl->LEN); for(i=0;i<wl->LEN;i+) printf("%s%d=%ft",wl->name,i+1,wl->di); j=-1;CCha=0.0;printf("n請(qǐng)輸入g的值ng=");scanf("%f",&g);for(i=0;i<wl->LEN;i+) temp=fabs(wl->di)-(wl->avg);if(temp>g*(wl->sx)&&(temp>CCha)Y
9、CZhi=wl->di;CCha=temp;j=i;if(j>=0)printf("找到異常值為%s%d=%f,將它剔除。n",wl->name,(j+1),wl->dj);for(i=j;i<wl->LEN-1;i+)wl->di=wl->di+1;wl->LEN-;elseprintf("本次未找到異常數(shù)據(jù),數(shù)據(jù)中異常數(shù)據(jù)已剔除完畢!n"); while(j>=0); printf("當(dāng)前共有%d個(gè)數(shù),數(shù)據(jù)如下:n",wl->LEN); for(i=0;i<w
10、l->LEN;i+) printf("%s%d=%ft",wl->name,i+1,wl->di); /*-*/ void BZPianCha(wulidata *wl)/*標(biāo)準(zhǔn)偏差*/ double sum; int i; sum=0.0; for(i=0;i<wl->LEN;i+) sum=sum+pow(wl->di,2); sum=sum-wl->LEN*pow(wl->avg,2); wl->sx=sqrt(sum/(wl->LEN-1); /*-*/ void leijinxwc(wulidata *w
11、l)/*判斷累進(jìn)性誤差*/ double M,sum1,sum2,temp; int i; sum1=sum2=0.0; temp=wl->ccha0; for (i=1;i<=wl->LEN;i+) if (temp<wl->cchai) temp=wl->cchai; if(wl->LEN%2=0) /*數(shù)據(jù)為偶數(shù)個(gè)時(shí)*/ for(i=0;i<(wl->LEN/2);i+) sum1=sum1+ wl->cchai; for (i=(wl->LEN/2);i<wl->LEN;i+) sum2=sum2+wl-&g
12、t;cchai; M=fabs(sum1-sum2); if(M>temp) printf("存在累進(jìn)性誤差n"); else printf("不存在累進(jìn)性誤差n"); else /*數(shù)據(jù)為奇數(shù)個(gè)時(shí)*/ for(i=0;i<(wl->LEN)-1)/2);i+) sum1=sum1+ wl->cchai; for (i=(wl->LEN)+1)/2;i<wl->LEN;i+) sum2=sum2+wl->cchai; M=fabs(sum1-sum2); if(M>temp) printf("
13、;存在累進(jìn)性誤差n"); else printf("不存在累進(jìn)性誤差n"); /*-*/ void zhouqixwc(wulidata *wl)/*判斷周期性誤差*/ double sum=0; int i; for(i=0;i<wl->LEN-1;i+) sum=sum+(wl->cchai)*(wl->cchai+1); if(fabs(sum)>(sqrt(wl->LEN-1)*pow(wl->sx,2) printf("存在周期性誤差n"); else printf("不存在周期性誤
14、差n"); /*-*/ void range(wulidata *wl)/*給出95%置信區(qū)間*/ double u1,u2,x,ta; printf("n請(qǐng)輸入ta的值nta=");scanf("%f",&ta);ta=2.262;x=(ta)*(wl->sx/sqrt(wl->LEN);u1=wl->avg-x;u2=wl->avg+x;printf("平均值為%.5fn平均值的標(biāo)準(zhǔn)偏差為%.5fn",wl->avg,wl->sx/sqrt(wl->LEN);printf
15、("計(jì)算得到所求數(shù)值的范圍應(yīng)取%.5f%.5f。n",u1,u2); void output(wulidata *wl) int i; printf("n"); line(); printf("你輸入的數(shù)據(jù)如下:n"); for(i=0;i<wl->LEN;i+) printf("%s%d=%ft",wl->name,i+1,wl->di); printf("n"); printf("nt數(shù)據(jù)%s的平均值(A)%s=%f",wl->name,wl->name,wl->avg); line(); printf("數(shù)據(jù)的殘差如下:n"); for(i=0;i<wl->LEN;i+) printf("%s%d=%s%d-(A)%s=%ftt",wl->name,i+1,wl->name,i+1,wl->name,wl->cchai); line(); printf("求得標(biāo)準(zhǔn)偏差Sxn"); printf("Sx=%f",wl->sx); printf(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《2025標(biāo)準(zhǔn)技術(shù)咨詢服務(wù)合同范本》
- 2024年P(guān)CB復(fù)配化學(xué)品項(xiàng)目資金籌措計(jì)劃書代可行性研究報(bào)告
- 2025辦公租賃合同范本
- 2025購(gòu)銷合同范本下載(含詳細(xì)條款)
- 2025建筑設(shè)備租賃合同
- 2025授權(quán)合同協(xié)議書范本
- 2025外墻涂料工程勞務(wù)承包合同-confidential
- 2025建筑工程施工合同范本GF
- 2025全球版權(quán)合同范本
- 《性健康教育咨詢技巧》課件
- 宗親聯(lián)誼修譜會(huì)活動(dòng)方案及流程
- 2025屆江蘇省南京市六區(qū)初三第二學(xué)期期中考試英語(yǔ)試題試卷含答案
- 加裝電梯投標(biāo)方案(技術(shù)方案)
- 影視后期調(diào)色-04達(dá)芬奇一級(jí)校色
- 2024版工程建設(shè)監(jiān)理合同(電力工程)
- 高空廣告字維修合同
- 《綠豆芽的生長(zhǎng)》課件
- 石油化工設(shè)備維護(hù)檢修規(guī)程設(shè)備完好標(biāo)準(zhǔn)SHS
- 知道智慧網(wǎng)課《科技倫理》章節(jié)測(cè)試答案
- 2024年云南省職業(yè)院校技能大賽(中職組)植物嫁接賽項(xiàng)考試題庫(kù)(含答案)
- 工程居間合同范本電子版
評(píng)論
0/150
提交評(píng)論