北京交通大学电子测量课程设计
更新时间:2023-12-16 17:50:01 阅读量: 教育文库 文档下载
北京交通大学电子测量课
要求的一个小课设。题目是输入一堆数, 求出来标准偏差估计值和剔除坏值。
那c编的小程序。
输入数据
附件:
#include \#include \#include \int main() {
//第一部分
printf(\程序开始************\\n\ double
datas[100],datas2[100],CanyuWucha[100],CanyuWuchaABS[100],CanyuWucha2[100]; doubleGeLaBuSi[100],ta[100]; double
GeLaBuSi99[100]={0,0,0,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.71,2.75,2.79,2.82,2.85,2.88,2.91,2.94,2.96,2.99,3.01}; double
GeLaBuSi95[100]={0,0,0,1.15,1.46,1.67,1.82,1.94,2.03,2.11,2.18,2.23,2.29,2.33,2.37,2.41,2.44,2.47,2.50,2.53,2.56,2.58,2.60,2.62,2.64,2.66}; double ta95[100]={0,0,12.71,4.30,3.18,2.78,2.57,2.45,2.37,2.31,2.26,2.23}; double ta99[100]={0,0,63.66,9.93,5.84,4.60,4.03,3.71,3.50,3.36,3.25,3.17}; double
XWN[100]={0,0,0,0,0,1.65,1.73,1.79,1.86,1.92,1.96,2.00,2.04,2.07,2.10,2.13,2.16,2.18,2.20,2.22,2.24,2.26,2.28,2.30,2.32,2.33,2.34,2.35,2.37,2.38,2.39,2.45,2.50,2.58,2.64,2.74,2.81,3.02}; printf(\第一部分************\\n\ //程序开始
printf(\您好!请输入你要处理的数据个数:\ //输入数据个数 intdataNumber=0,dataNumber2=0; scanf(\ dataNumber2=dataNumber;
printf(\请依次输入需要的数据:\\n\ //输入具体数据 int j; for(j=0;j printf(\ scanf(\ } printf(\接收数据成功!\\n\ //111111111111111111111111111111111111111111111 printf(\选择所需要的置信概率(1:0.99;2:0.95):\interer=0,ed=0; scanf(\if(erer==1) { for(ed=0;ed 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; } } } } dataNumber=dataNumber-t; //检查完坏值了 printf(\printf(\printf(\ printf(\已经没有坏值了,剩余数据的个数为:%d\\n\ printf(\ printf(\剩余值的平均值是:%lf\\n\ //输出剩余值的平均值 printf(\ printf(\剩余值的标准偏差估计值是:%lf\\n\输出剩余值的标准偏差估计值 //第四部分 printf(\ printf(\第四部分************\\n\ printf(\判断变值系统误差************\\n\ //判断变值系统误差 //累进性系统误差,马利科夫判据 int v=0,w=0,x=0,y=0; for(v=0;v for(v=0;v if(CanyuWucha2[v]!=0) datas2[v-y]=CanyuWucha2[v]; //data2里是去除坏值后原始排序的残余误差 else y=y+1; } for(v=0;v CanyuWucha2[v]=datas2[v]+average; } printf(\去除坏值之后的残余误差为(原始排序):\\n\ //输出踢出坏值之后的残余误差 n=0; for(n=0;n printf(\ printf(\ } doubleQianBan=0.0,HouBan=0.0,pp=0.0; if(dataNumber%2==0) { for(n=0;n<(dataNumber/2-1);n++) { QianBan+=datas2[n]; } for(n=(dataNumber/2);n HouBan+=datas2[n]; } if(fabs(QianBan-HouBan)>=CanyuWuchaABS[t]) { pp=1; printf(\ printf(\存在累进性系统误差,不建议使用本组测量数据!\\n\ } else { pp=0; printf(\ printf(\不存在累进性系统误差!\\n\ } } else { QianBan=0,HouBan=0; for(n=0;n<((dataNumber-1)/2-1);n++) { QianBan+=datas2[n]; } for(n=((dataNumber-1)/2);n HouBan+=datas2[n]; } if(fabs(QianBan-HouBan)>=CanyuWuchaABS[t]) { pp=1; } printf(\ } printf(\存在累进性系统误差,不建议使用本组测量数据!\\n\else { pp=0; printf(\ printf(\不存在累进性系统误差!\\n\ } //周期性系统误差,阿卑-赫梅特判据 doubleChengJi=0.0,qq=0.0; for(n=0;n<(dataNumber-1);n++) { ChengJi+=(datas2[n]*datas2[n+1]); } if(fabs(ChengJi)>=((sqrt(dataNumber-1)*StanErrorEsti))) { qq=1; printf(\ printf(\存在周期性系统误差,不建议使用本组测量数据!\\n\ } else { qq=0; printf(\ printf(\不存在周期性系统误差!\\n\ } //第五部分 printf(\ printf(\第五部分************\\n\ printf(\给出置信区间************\\n\ //给出置信区间 double StanErrorEsti2=0.0,aa=0.0,bb=0.0,cc=0.0,dd=0.0; cc=sqrt(dataNumber); StanErrorEsti2=StanErrorEsti/cc; dd=ta[dataNumber]*StanErrorEsti2; aa=average-dd; bb=average+dd; printf(\置信区间是(%lf,%lf)\\n\return 0; }
正在阅读:
北京交通大学电子测量课程设计12-16
创业公司股权激励合同协议范本模板干股期权03-21
八年级地理上册-第一章-第三节-中国的人口教案-(新版)湘教版04-20
一道绚丽的阳光作文700字06-27
购房宝典:精明购房必备指南03-13
神经肌肉电生理检查一般常规11-06
塔河油田超深井钻井提速技术07-20
2逻辑思维分析法-鲁晶详解08-06
用医学新理念开启康寿之旅——访全国政协委员、北京市朝阳糖尿病04-23
日投2400张黄牛皮纳帕鞋面革工厂设计12-17
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 交通大学
- 北京
- 测量
- 课程
- 设计
- 电子