GeLaBuSi[ed]=GeLaBuSi99[ed]; ta[ed]=ta99[ed]; } } else { for(ed=0;ed GeLaBuSi[ed]=GeLaBuSi95[ed]; ta[ed]=ta95[ed]; } } //第二部分 printf(\第二部分************\\n\ printf(\计算平均值&标准偏差估计值************\\n\ //计算平均值&标准偏差估计值 int k=0; //计算平均值 double average=0.0; for(k=0;k average+=datas[k]; } average/=dataNumber; int l=0; //计算残差 for(l=0;l CanyuWucha[l]=datas[l]-average; CanyuWucha2[l]=datas[l]-average; CanyuWuchaABS[l]=fabs(datas[l]-average); } int m=0; //计算标准偏差估计值 doubleStanErrorEsti=0.0,ZhongJianLiang=0.0; for(m=0;m StanErrorEsti=sqrt(ZhongJianLiang/(dataNumber-1)); printf(\数据的平均值是:%lf\\n\ //输出三个计算出的值 printf(\数据的残余误差是:\\n\int n=0; for(n=0;n printf(\ printf(\ } printf(\数据的标准偏差估计值是:%lf\\n\ //第三部分 printf(\第三部分************\\n\ printf(\检测并去除异常数据************\\n\ //检测并去除异常数据 int p=0,q=0,s=0; double temp1=0.0,temp2=0.0; //给残余误差的绝对值按从大到小排序 for(p=0;p for(q=0;q if(CanyuWuchaABS[q] temp1=CanyuWuchaABS[q]; temp2=datas[q]; CanyuWuchaABS[q]=CanyuWuchaABS[q+1]; datas[q]=datas[q+1]; CanyuWuchaABS[q+1]=temp1; datas[q+1]=temp2; } else continue; } } printf(\ printf(\选择所要使用的检验方法(1:莱特检验法;2:肖维纳检验法;3:格拉布斯检验法):\ int r=0,t=0,u=0; scanf(\ //选取以下三种检验法中的一种 if(r==1) //莱特检验法 { for(t=0;t if(u==0) break; //没有坏值则跳出 else { //有坏值则踢出坏值继续 //重新计算标准偏差估计值 average=0; //重新计算平均值 for(k=t+1;k average/=(dataNumber-t-1); for(l=t+1;l CanyuWucha[l]=datas[l]-average; } StanErrorEsti=0,ZhongJianLiang=0; //重新计算标准偏差估计值 for(m=t+1;m StanErrorEsti=sqrt(ZhongJianLiang/(dataNumber-1-t-1)); } temp1=0,temp2=0;//重新给残余误差的绝对值按从大到小排序 for(p=t+1;p if(CanyuWuchaABS[q] temp1=CanyuWuchaABS[q]; temp2=datas[q]; CanyuWuchaABS[q]=CanyuWuchaABS[q+1]; datas[q]=datas[q+1]; CanyuWuchaABS[q+1]=temp1; datas[q+1]=temp2; } else continue; } } } dataNumber=dataNumber-t; } else if(r==2) //肖维纳检验法 { for(t=0;t if(u==0) break; //没有坏值则跳出循环 else { //有坏值则踢出坏值继续循环 //重新计算标准偏差估计值 average=0; //重新计算平均值 for(k=t+1;k average/=(dataNumber-t-1); for(l=t+1;l CanyuWucha[l]=datas[l]-average; } StanErrorEsti=0,ZhongJianLiang=0; //重新计算标准偏差估计值 for(m=t+1;m StanErrorEsti=sqrt(ZhongJianLiang/(dataNumber-1-t-1)); } temp1=0,temp2=0; //重新给残余误差的绝对值按从大到小排序 for(p=t+1;p if(CanyuWuchaABS[q] temp1=CanyuWuchaABS[q]; temp2=datas[q]; CanyuWuchaABS[q]=CanyuWuchaABS[q+1]; datas[q]=datas[q+1]; CanyuWuchaABS[q+1]=temp1; datas[q+1]=temp2; } else continue; } } } dataNumber=dataNumber-t; } else //格拉布斯检验法 { for(t=0;t { double g=0.0; intzxc; zxc=dataNumber-t; g=GeLaBuSi[zxc] ; //根据选择置信概率的不同用不同的系数“g” if(CanyuWuchaABS[t]>=(g*StanErrorEsti)) u=1; else u=0; if(u==0) break; //没有坏值则跳出循环 else { //有坏值则踢出坏值继续循环 //重新计算标准偏差估计值 average=0; //重新计算平均值 for(k=t+1;k average/=(dataNumber-t-1); for(l=t+1;l CanyuWucha[l]=datas[l]-average; } StanErrorEsti=0,ZhongJianLiang=0; //重新计算标准偏差估计值 for(m=t+1;m StanErrorEsti=sqrt(ZhongJianLiang/(dataNumber-1-t-1)); } temp1=0,temp2=0; //重新给残余误差的绝对值按从大到小排序 for(p=t+1;p if(CanyuWuchaABS[q] temp1=CanyuWuchaABS[q]; temp2=datas[q]; CanyuWuchaABS[q]=CanyuWuchaABS[q+1]; datas[q]=datas[q+1]; CanyuWuchaABS[q+1]=temp1; datas[q+1]=temp2; } else continue; }
北京交通大学电子测量课程设计(2)
2020-02-21 16:14
北京交通大学电子测量课程设计(2).doc
将本文的Word文档下载到电脑
下载失败或者文档不完整,请联系客服人员解决!