粗大误差C言程序

合集下载

粗大误差

粗大误差

r22
xn xn 2 xn x3

r22
x3 x1 xn 2 x1
n 14 ~ 30
以上的r10,r10,r11,r11,r21,r21,r22,r22,分别简记为rij,rij,
判断准则
选定显著性水平,查表得D( , n),
选取计算出的rij 、rij 中的数值大者, 即:
若rij rij , 则选rij,
2. 合理选择判别准则
可根据测量准确度要求和测量次数选择判别准
则。准确度要求高的选择显著性水平=0.01, 要求低的选择显著性水平=0.05。测量次数 n30时,选择3s准则;测量次数n30时,选择 拉依达准则或狄克逊准则;当3n30时,格拉 布斯准则适宜于判别单个异常值,狄克逊准则 适宜于判别多个异常值。
v10 2.66 G(0.01,10)s 2.411.16 2.8
x10不含粗大误差,不是异常值,应保留 v10 2.66 G(0.05,10)s 2.1761.16 2.52 x10为异常值,应剔除
狄克逊(Dixon)准则
正态测量总体的一个样本 x1, x2 ,..., xn ,按从小到大
但不能在不知原因的情况下不加分析就轻易舍 弃测量列中最大或最小的数据,这样可能造成错 觉,会对余下数据的精度作出过高的估计。
因此就有一个确立判别异常值 (粗大误差)界 限的问题。
判别和剔除异常值 ,不可凭主观臆断, 轻易地剔除主观认定为反常的数据,从而人 为地使测得数据一致起来,是不对的;但不 敢舍弃任一个测得数据,一概当作是正常信 息,也是不对的。
对操作人员严格要求; 如检查精神状态与疲 劳程度如果不佳,应停 止其操作,不是靠增加 重复测量次数能解决 问题的.
第二节 统计判断准则

误差理论—计算随机误差的C程序编写及报告

误差理论—计算随机误差的C程序编写及报告

随机误差分析(实验1)学号:20091001118姓名:杜霜霜班级:076092--8 Ⅰ.实验要求根据第二章误差的基本性质与处理的内容,自行编写一项程序实现基本误差处理。

本次实验选择了等精度数据随机误差处理程序的编写,编译环境visual studio 2010。

Ⅱ.实验原理(一)随机误差产生的原因①测量装置②环境③测量人员(二)正态分布若测量列中布包含系统误差和粗大误差,则该测量咧中的随机误差一般具有以下几个特征:①对称性(正负误差出现次数相等)②单峰性(绝对值小的误差比绝对值大的误差出现的次数多)③有界性(随机误差的绝对值不会超过一定界限)④抵偿性(随机误差的算术平均值趋向于0)若随机误差呈正态分布(多数),则有:随机误差为δi = Li - L0分布密度函数为)2(2221)(σδπσδ-=ef数学期望为)(= =⎰∞∞-δδδdfE方差为⎰∞∞-=δδδσdf)(22平均误差为σθ54≈或然误差为σρ32≈(三)算术平均值由定义,易知:算术平均值1L nlx Ni i→=∑=残差 Vi = Li - x ¯(四)测量的标准差①贝塞尔公式法(n 适中)112-=∑=n v ni iσ②别捷尔斯法(n 适中))1(253.11-⨯=∑=n n vni iσ③极差法(n<10)m i n m a x x x n -=ωn n d ωσ=(n d 查表)④最大误差法(n<10)'maxniKv =σ ('nK 查表)(五)测量的极限误差测量列的算术平均值于被测量的真值之差称为算术平均值误差x δ ,即0L x x -=δ ,当多个测量列的算术平均值误差为正态分布时,根据概率论知识,同样可得测量列算术平均值的极限误差表达式为x x t σδ±=lim ,其中t 为置信系数,可根据正态分布表或t 分布表查询,x σ为算术平均值的标准差。

(六)测量的结果表示经过前五布步的分析计算 ,可将最终结果表示为:x x L lim δ±=Ⅲ.实验目的、过程及程序编写实验目的:根据学习到的解决等精度数据随机误差处理问题的方法,将数学语言转换为C 语言形式表达出来,利用计算机帮助我们解决这一类的问题,从而省掉解题中的繁琐步骤,且进一步锻炼我们的动手操作能力。

C语言实现测量数据误差处理

C语言实现测量数据误差处理

误差处理程序(C语言)电子信息工程学院通信100910211159高子豪实验目的实现对输入数据的误差处理:剔除粗大误差。

判断累进性系统误差和周期性系统误差。

计算平均值,方差,不确定度。

程序代码#include<stdio.h>#include<math.h>double SUM(double x[],int n);double AVRG(double x[],int n);double SD(double x[],int n);int PauTa(double x[],int n);int Chauvenet(double x[],int n);int Grubbs_1(double x[],int n);int Grubbs_2(double x[],int n);static int n;static double a[500];int main(){int i,choose,leap=1;double avg,sd,v[500],M=0,AH=0,vmax=0;doubleP,PX[]={12.706,4.303,3.182,2.776,2.571,2.447,2.365,2.306,2.262,2.228,2.131,2.086,2.060,2.042,2.021,2 .000,1.980,1.960};printf("请输入数据总个数:\n");scanf("%d",&n);printf("请输入数据:\n");for(i=0;i<n;i++)scanf("%lf",&a[i]);avg=AVRG(a,n);sd=SD(a,n);printf("\n输入数据的平均值为%lf,标准差为%lf\n",avg,sd);while(leap){printf("请选择粗大误差的检验法:\n1.莱特检验法\n2.肖维纳检验法\n3.格拉布斯检验法(置信概率99%%)\n4.格拉布斯检验法(置信概率95%%)\n5.停止检验\n");scanf("%d",&choose);if(choose==1&&n<10)printf("数据总量小于10,不能使用莱特检验法。

粗大误差C语言程序

粗大误差C语言程序

程序可以对采集的 数据进行预处理, 如滤波、平滑等
粗大误差检测算法 可以用于实时监测 数据采集过程
C语言程序可以与 其他数据处理软件 集成,提高数据处 理的效率
粗大误差检测:C语言程序可以快速准确地检测数据中的粗大误差,提高数据处理的质量。
数据清洗:通过C语言程序,可以对含有噪声或异常值的数据进行清洗,去除无效或错误信 息。
XX,a click to unlimited possibilities
汇报人:XX
CONTENTS
PART ONE
粗大误差:在数据测量或采集过程中,由于某些 特定原因(如设备故障、操作失误等)导致的明 显大于其他观测值的误差。
产生原因:粗大误差的产生通常与异常事件或错 误操作有关,例如传感器故障、测量设备失灵等。
粗大误差C语言程序在未来的应用场景将更加广泛,特别是在大数据和人工智能领域。 随着技术的不断发展,粗大误差C语言程序将更加高效、稳定和安全。 未来粗大误差C语言程序将与其他编程语言更好地融合,实现更加灵活和多样化的应用。 粗大误差C语言程序将不断优化和改进,以满足更多领域的需求,并推动相关领域的发展。
PART TWO
输入数据 计算处理 输出结果 程序结束
定义变量和常量
输入数据
计算处理
输出结果
编译过程:将源代码转换为可执行文件 运行过程:执行可执行文件,输出结果 调试过程:检查程序中的错误并进行修正 优化过程:提高程序的运行效率
PART THREE
粗大误差C语言程 序能够处理数据采 集中的异常值
数据来源:说明数据的来源 和获取方式
案例概述:介绍案例的背景、 目的和意义
粗大误差处理:对检测到的粗 大误差进行修正或处理的方法

系统误差粗大误差随机误差处理顺序

系统误差粗大误差随机误差处理顺序

系统误差粗大误差随机误差处理顺序下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!系统误差、粗大误差和随机误差的处理顺序在进行任何测量或实验过程中,测量结果都会受到各种误差的影响。

2.3 粗大误差

2.3 粗大误差

对某角度α进行两组测量,测量结果为:
α1:24°13´36″±6.0″
(k=2) α2:24°13 ´24″〒15.0″ (k=3) 计算角度α的测量结果(k=3)。 解:σ1=6.0/2=3.0 σ2=15/3=5.0 P1:P2=1/σ21:1/ σ22=25:9
p1 x1 p 2 x 2 25 12 9 0 xp 24 1324 241332 .8 p1 p 2 25 9 s x p s1 p1 25 3.0 2.6 p1 p 2 25 9 x p 3s x p 24 1333 7.8
3s x p 7.8 测量结果为

K (n, ) t (n 2) n n 1

还是用上例数据,首先怀疑第八个测量值含有粗大 误差,将其剔除得算术平均值和标准差为
n 1 x xi 20 .411 n 1 i 1 i 8 2 i n 1 i 1
s
v
n2
0.016
选择显著度α=0.05,n=15,查表得
查表
D(0.05,10) 0.530
r11 r11 , r11 D(0.05,10)
故数据中无异常值。
小结
(1)大样本情形(n>10),用3σ准则最简单方便; 小样本情形,用罗曼诺夫斯基准则、Grubbs准则效果 较好,Dixon准则适用于不用计算标准差,因此计算简 单,但是后面3种方法都需要查表。
v 0.016 0.026 -0.004 0.026 0.016 0.026 -0.014 -0.104 -0.004 0.026 0.016 0.006 -0.014 -0.014 -0.004
v2 0.000256 0.000676 0.000016 0.000676 0.000256 0.000676 0.000196 0.010816 0.000016 0.000676 0.000256 0.000036 0.000196 0.000196 0.000016

粗大误差

粗大误差

81 361 121 361 81 361 441 (已剔除) 121 361 81 1 441 441 121
t15 =
t
i 1
15
i
15
=20.404
vi =0.01496
i 1
15
2
v '
i i 1
14
2
=0.003374
t14 =
t
i 1
14
σ=
i
0.01496 =0.033 15 1
除以上准则外,还有狄克逊(Dixon)准则等其他准则,可参阅有关文献。 要指出,以上各准则都是人为主观拟定的,直到目前为止,还没有统一的规定。 此外,所有准则,又都是以数据按正态分布为前提的,当偏离正态分布时,判断 的可靠性将受影响,特别是测量次数很少时更不可靠。因此,对待粗大误差,除 从测量结果中及时发现和利用剔除准则鉴别外, 更重要的是要提高工作人员的技 术水平和工作责任心,不要在情绪不宁和过于疲劳的情况下,进行重要的测量工 作, 另外, 要保证测量条件的稳定, 防止因环境条件剧烈变化而产生的突变影响。
n Zc
40 2.49
50 2.58
3.格拉布斯(Grubbs )准则
格拉布斯准则的来源推导较繁,这里只介绍具体用法。 在测量数值(测量列)中某一数据的残差的绝对值|v|>Gσ时,则判断此值 中含有粗大误差,应予剔除,此即格拉布准则。G 值按重复测量次数 n 及置信概 率 P ɑ由表 4-2 查出。 表 4-2 格拉布斯准则中的 G 值 测 量 测 量 置信概率 P ɑ 置信概率 P ɑ 次数 次数 n n 0.99 0.95 0.99 0.95 3 4 5 6 7 13 14 15 1.16 1.49 1.75 1.94 2.10 2.61 2.66 2.70 1.15 1.46 1.67 1.82 1.94 2.33 2.37 2.41 8 9 10 11 12 16 18 20 2.22 2.32 2.41 2.48 2.55 2.74 2.82 2.88 2.03 2.11 2.18 2.23 2.28 2.44 2.50 2.56

用C语言实现测量数据的处理

用C语言实现测量数据的处理

用C 语言实现测量数据的处理电子信息工程学院 通信0301 烟翔 学号 03211026一,一般步骤(1),消除或减小恒定系差(2),求测量数据的数学期望()x M ,即算术平均值x :()n x x x M n i i∑===1, 其中n 为测量数据次数,i x 为第i 次测量的数据。

(3),求剩余误差i v : x x v i i -=(4),根据贝塞尔公式求标准偏差δ: ∑=-=n i i v n 1211δ (5),检查是否有粗大误差。

检查时用了肖维纳准则。

如果某次测量的结果i x 所对应的δh v i >,则认为是坏值,予以剔除。

(6),如有坏值,剔除后重新进行步骤(2)~(5)的计算,直至无坏值为止。

(7),判断有无变值系差。

判断是可用马利科夫准则或阿卑—赫梅特准则。

(8),求出算术平均值的标准偏差-x δ: n x δδ-必须注意,如前面计算中曾出现坏值,则这里的δ应为剔除后重新计算出的标准偏差。

(9),求算术平均值的不确定度二,程序及注释#include<stdio.h>#include<math.h>void main(){double a[200]; /*输入数据数组*/int i; /*输入数据个数*/int k,j,p,m,f,s,t,M=0; /*中间变量*/double c[200]; /* 偏差数组*/double max,maxc,sumd,v;/*中间变量*/int g[200]; /*坏值位置数组*/double sum, sumb; /*中间变量数据的和值*/ double b; /*平均值*/double E; /*标准偏差估计*/ double F; /*不确定度*/double w[200]; /*偏差的绝对值*/double d,h; /*中间变量*/printf("input numbers \n");scanf("%d",&i); /* 输入数据总的个数*/ printf("input numbers is \n");printf("%d\n",i); /*输出数据的总个数*/printf("input the data\n");for(sum=0,k=0;k<i;k++) /*输入每一个数据的值*/ {scanf("%lf",&a[k]);sum+=a[k];}b=sum/i; /*求平均值*/art:switch(i) /* 找肖维纳准则系数*/ {case 1:case 2:case 3:case 4:case 5: h=1.65; break;case 6: h=1.73; break;case 7: h=1.79; break;case 8: h=1.86; break;case 9: h=1.92; break;case 10: h=1.96; break;case 11: h=2.00; break;case 12: h=2.04; break;case 13: h=2.07; break;case 14: h=2.10; break;case 15: h=2.13; break;case 16: h=2.16; break;case 17: h=2.18; break;case 18: h=2.20; break;case 19: h=2.22; break;case 20: h=2.24; break;case 21: h=2.26; break;case 22: h=2.28; break;case 23: h=2.30; break;case 24: h=2.32; break;case 25: h=2.33; break;case 26: h=2.34; break;case 27: h=2.35; break;case 28: h=2.37; break;case 29: h=2.38; break;case 30: h=2.39; break;default:h=3;}for(j=0,sumb=0;j<i;j++){c[j]=a[j]-b;sumb=sumb+c[j]*c[j];}d=sqrt(sumb/(i-1)); /*求方差*/m=0;p=0;for(k=0;k<i;k++){if(c[k]>h*d||c[k]<(-h)*d){m=1;g[p]=k;p++;}} /*找所有坏值*/if(m==0) /*如果无坏值*/{goto put;} /*转到输出*/for(f=g[0],max=0,t=f;f<=g[p-1];f++){if(max<a[f]) {max=a[f];t=f;}}/*找出坏值中的最大的一个*/ for (k=t;k<i-1;k++){a[k]=a[k+1];} /*剔除坏值并将后面的数据往前移*/ printf("out the error\n");printf("%lf\n",a[t]); /*找到最大的坏值*/i=i-1; /* 数据总个数减1*/for(s=0,sum=0;s<i;s++){sum+=a[s];} /* 重新求和*/b=sum/i; M+=1; /*重新算方差*/goto art; /*回去再找坏值*/put:E=d/sqrt(i); /*求标准偏差估计*/F=3*E; /*求不确定度*/for(k=0;k<i;k++){ w[k]=a[k]-b;}for(k=0,maxc=0;k<i;k++){ if(w[k]<0) w[k]=-w[k];else w[k]=w[k];if(maxc<w[k])maxc=w[k]; }for(k=0,v=0;k<i/2;k++){v+=w[k]-w[k+i/2];}if(v<maxc&&v>-maxc)printf("no progression error\n");else printf("have progression error \n");/*判断有无累进性误差*/ for(k=0,sumd=0;k<i-1;k++){sumd+=c[k]*c[k+1];}if(sumd>d*d*sqrt(i-1))printf("have periodicity error\n");else printf("no periodicity error\n"); /*判断有无周期性误差*/ printf("now all bad data number\n");printf("%d\n",M); /* 输出坏值个数*/ printf("mean value is equal to\n");printf("%lf\n",b); /*输出平均值*/printf("stander error is equal to\n");printf("%lf\n",d); /*输出标准偏差*/printf("input data and truncated error\n");for(k=0;k<i;k++){printf("%lf %lf\n",a[k],c[k]);} /*输出数据及偏差*/ printf("arithmetical stander error\n");printf("%lf\n",E); /*输出偏差估计*/printf("not accurate grade \n");printf("+-%lf\n",F); /* 输出不确定度*/ printf("analylc result\n");printf("%lf +-%lf\n",b,F); /*输出最终结果*/}测试结果(P115 例28)。

误差理论-粗大误差处理

误差理论-粗大误差处理

粗大误差的处理粗大误差的数值比较大,它会对测量结果产生明显的歪曲,一旦发现含有粗大误差的测量值,应将其从测量结果中剔除。

设计思路:1.学习并掌握粗大误差处理的一般原理及处理过程;2.定义所需的变量及数组,然后提示输入测量次数n;3.输入测量数据次数n,然后提示输入测量数据;4.输入测量数据之后,提示选择判别粗大误差的准则方式Way;5.选择判别方式,则开始调用相应判别准则的处理函数,在需要查表的函数里,再调用相应的表函数查表;6.开始进行计算并判别是否含有粗大误差,如有应予剔除;7.最后显示处理结果。

参考文献:1)误差理论与数据处理/费业泰主编-5版--北京:机械工业出版社2004.62)C程序设计语言/(美)克尼汉(Kernighan,B.W.)(美)里奇(Ritchie,D.M.)著;徐宝文,李志泽。

2版--北京:机械工业出版社,2004.13)C程序设计/谭浩强著-3版--北京:清华出版社,2005源代码:/*----------粗大误差的处理----------*/#include"stdafx.h"#include"stdio.h"#include"math.h"#define NUM1 50#define NUM2 10void main(){float K(int n,int a);//罗曼诺夫斯基准则的检验系数K(n,a)表的声明float g0(int n,int a);//格罗布斯准则的临界值g0(n,a)表的声明float r0(int n,int a);//狄克松准则的临界值r0(n,a)表的声明void Way1(int n,float array1[],float array2[]);//3σ准则(莱以特准则的函数声明void Way2(int n,float array1[],float array2[]);//罗曼诺夫斯基准则的函数声明void Way3(int n,float array1[],float array2[]);//格罗布斯准则的函数声明void Way4(int n,float array1[],float array2[]);//狄克松准则的函数声明int n,i,t=1,Way;float array1[NUM1]={0},array2[NUM2]={0};printf("*--*--*--*--*--*粗大误差的处理*--*--*--*--*--*\n");printf(">>>请输入测量次数n:(n<50)\n>>");scanf("%d",&n);printf(">>>请输入%d 个测量数据:\n",n);for(i=0;i<n;i++){printf("%2d.",i+1);scanf("%f",&array1[i]);}printf(">>>通常用来判别粗大误差的准则有:\n");printf(">>>1:3σ准则(莱以特准则)\n");printf(">>>2:罗曼诺夫斯基准则\n");printf(">>>3:格罗布斯准则\n");printf(">>>4:狄克松准则\n");printf(">>>请输入所采用的准则方式Way:\n>>");scanf("%d",&Way);switch(Way){case 1:Way1(n,array1,array2);break;case 2:Way2(n,array1,array2);break;case 3:Way3(n,array1,array2);break;case 4:Way4(n,array1,array2);break;}printf(">>>含有粗大误差的测得值:\n");i=0;if(array2[i]){while(array2[i]){printf("%6.2f\n",array2[i]);i++;}}else{printf(">>无\n");}printf(">>不含有粗大误差的测得值:\n");i=0;while(array1[i]){printf("%6.2f\n",array1[i]);i++;}getchar();printf(">>>按Enter键结束:\n");if(getchar())t=0;while(t);}/*3σ准则(莱以特准则的函数*/void Way1(int n,float array1[],float array2[]) {int i,j=0,k,q=1;float x,σ,V1,V2;float v1[NUM1]={0};while(q){q=0;x=0;σ=0;V1=0;V2=0;for(i=0;i<n;i++)x+=array1[i]/n;//测量数据的算术平均值for(i=0;i<n;i++){v1[i]=array1[i]-x;//第i个测得值的残余误差V1+=v1[i];//测得值的残余误差的代数和V2+=pow(v1[i],2);//测得值的残余误差的平方和 }σ=sqrt(V2/(n-1));//由残余误差求得单次测量的标准差的估计值for(i=0;i<n;i++){if(fabs(v1[i])>3*σ){q=1;array2[j]=array1[i];j++;for(k=i;k<(n-1);k++){array1[k]=array1[k+1];v1[k]=v1[k+1];}array1[n-1]=0;n--;i--;}}}}/*罗曼诺夫斯基准则的函数*/void Way2(int n,float array1[],float array2[]){float K(int n,int a);int i,j,a,k,q=1,r=0;float x=0,σ,t,V1,V2=0;float v1[NUM1]={0};printf(">>请选择显著度a:\n");printf(">>1 a=0.01\n");printf(">>2 a=0.05\n");scanf("%d",&a);while(q){q=0;x=0;V2=0;for(i=0;i<n;i++)x+=array1[i]/n;//测量数据的算术平均值for(i=0;i<n;i++)v1[i]=array1[i]-x;//第i个测得值的残余误差for(i=0;i<n;i++){if(fabs(v1[0])<=fabs(v1[i])){j=i;t=v1[0];v1[0]=v1[i];v1[i]=t;}}x=0;for(i=0;i<n;i++){if(i!=j)x+=array1[i]/(n-1);//不含x(j)的测量数据的算术平均值 }for(i=0;i<n;i++)v1[i]=array1[i]-x;//第i个测得值的残余误差for(k=j;k<(n-1);k++)v1[k]=v1[k+1];v1[n-1]=0;for(i=0;i<(n-1);i++)V2+=pow(v1[i],2);//不含x(j)的测得值的残余误差的平方和σ=sqrt(V2/(n-1));//由残余误差求得单次测量的标准差的估计值if(fabs(array1[j]-x)>K(n,a)*σ){printf(">>第%d个测得值%6.2f含有粗大误差,将其剔除。

粗大误差的检验与坏值的剔除课件

粗大误差的检验与坏值的剔除课件

可能导致错误的决策或结论,影响实 际应用。
降低数据精度
影响测量结果的可靠性,使测量失去 意义。
01
粗大误差的检验方 法
3σ准则
总结词
3σ准则是一种基于统计原理的粗大误差检验方法,通过计算数据与平均值的偏 差来确定是否为异常值。
详细描述
3σ准则认为,在一个正常的数据分布中,大约有99.7%的数据会落在平均值的 ±3σ范围内。如果某个数据点落在这个范围之外,则被认为是异常值或粗大误 差。
格拉布斯准则
总结词
格拉布斯准则是一种基于概率的粗大误差检验方法,通过比较数据与理论分布来 确定是否为异常值。
详细描述
格拉布斯准则基于概率分布函数,通过计算每个数据点在理论分布中的概率来判 断是否为异常值。如果某个数据点的概率小于某个预设阈值(如5%),则被认 为是异常值或粗大误差。
狄克逊准则
总结词
总结词:实际应用
详细描述:通过分析实际数据,如测量数据、调查数据等,识别并剔除其中的粗 大误差。使用适合的统计方法,如Grubbs'检验、Dixon's Q检验等,对数据进行 检验,判断是否存在异常值或坏值。
案例二:模拟数据中的粗大误差检验与剔除
总结词:模拟实验
详细描述:通过模拟生成一组数据,模拟各种可能的异常值或坏值情况,然后使用统计方法进行检验和剔除。这种方法有助 于更好地理解粗大误差的性质和剔除方法,为实际应用提供参考。
粗大误差的检验与坏 值的剔除课件
THE FIRST LESSON OF THE SCHOOL YEAR
目录CONTENTS
• 粗大误差的概述 • 粗大误差的检验方法 • 坏值的剔除方法 • 案例分析 • 总结与展望
01

传感与检测C语言程序

传感与检测C语言程序
else j++;
p=p+1;
}
y=y/(n-1-j);
return y;
}
/*数据中坏值得个数计算*/
int bad(float *p,int n)
{int i,j=0;
for(i=0;i<n;i++)
if(*p==0)
++j;
return j;
}
/*数据中坏值为0时n个数计算平均数*/
float aver(float *p,int n)
最小二乘法
即先将三次测量的正行程和反行程的值求平均值,再对求的平均值用最小二乘法进行直线拟合。
则有c语言程序:
#include <stdio.h>
#include <math.h>
/*求绝对值*/
float fab(float a)
{float z;
z=a;
if(a<0)
z=-a;
return z;
++j;
}
}
}
}
}
结果为:
p=p+2;
}
return y;
}
/*迟滞误差计算*/
float delay(float *p)
{float max,z,c;
int i;
c=*(p+1)-(*p);
max=fab(c);
for(i=0;i<17;i++)
{ p=p+2;
c=*(p+1)-(*p);
z=fab(c);
if(z>max)
}
/*求线性度*/

粗大误差的检验与坏值的剔除

粗大误差的检验与坏值的剔除

变值系统误差(续)


采用适当的测量方法有助于消除或减少变值系统误差 对测量结果的影响。 1用对称观测法来消除线形变化的累积系统误差的影响。 如用电位差计测量电阻阻值时,为消除电池电压下降 引起的工作电流减小带来的误差,在相等的时间间隔 上先测标准电阻的电压降,再测被测电阻上的电压降, 最后再测标准电阻上的电压降,用两次测得的标准电 阻上的电压降的平均值、被测电阻的电压降和标准电 阻值来计算被测电阻值。 2用半周期偶数观测法来消除周期性变化的系统误差, 当误差变化周期已知时,在测得一数据后,时间间隔 半个周期再测一个数据,取两者平均值作为测量结果。
-K
K
正态分布 ( x s , s ) ( x 2s , 2s ) ( x 3s , 3s ) x x x n n n n n n 68.27% 95.45% 99.73% ② 单次测量结果的表示 事前误差分析、以往的同等条件、详尽条件下多次测量的统计结果、 检测器具说明书中给出的误差限 --- 标准偏差的估计值
二、格拉布斯准则 将重复测量值按大小顺序重新排列,
x1 x2 xn
用下式计算首、尾测量值的格拉布斯准则数

Ti
vi S
xi x S (i为1或n)
_
然后根据子样容量n和所选取的判断显著性水平a,从下表中查得相 应的格拉布斯准则临界值T(n,a)。若Ti>= T(n,a)
则可认为Xi 为坏值,应剔除,注意每次只能剔除一个测量值。 若T1和Tn都大于或等于T(n,a),则应先剔除两者中较大者,再 重新计算算术平均值和标准误差估计值S,这时子样容量只有(n1),再行判断,直至余下的测量值中再未发现坏值。 显著性水平a一般可取0.05或0.01,其含意是按临界值判定为坏值而 其实非坏值的概率,即判断失误的可能性。 例题:见吴书P20例1-6

C语言编程处理粗 大 误 差

C语言编程处理粗 大 误 差

误差理论与数据处理实验报告指导老师:**班级: 076091学号: *********** **: ***设计时间: 2011.10.01粗大误差处理一、实验目的通过编程深入地了解误差的基本性质以及处理方法二、实验原理1、误差的基本概念所谓误差就是测量值与真实值之间的差,可以用下式表示误差=测得值-真值(1)绝对误差:某量值的测得值和真值之差为绝对误差,通常简称为误差。

绝对误差=测得值-真值(2)相对误差绝对误差与被测量的真值之比称为相对误差,因测得值与真值接近,故也可以近似用绝对误差与测得值之比值作为相对误差。

相对误差=绝对误差/真值≈绝对误差/测得值(3)引用误差所谓引用误差指的是一种简化和使用方便的仪器仪表表示值的相对误差,它以仪器仪表某一刻度点的示值误差为分子,以测量范围上限值或全量程为分母,所得的比值称为引用误差。

引用误差=示值误差/测量范围上限2、精度反映测量结果与真值接近程度的量,称为精度,它与误差大小相对应,因此可以用误差大小来表示精度的高低,误差小则精度高,误差大则精度低。

精度可分ⅰ准确度它反映测量结果中系统误差的影响程度ⅱ精密度它反映测量结果中随机误差的影响程度ⅲ精确度它反映测量结果中系统误差和随机误差综合的影响程度,其定量特征可以用测量的不确定度来表示。

3、有效数字与数据运算含有误差的任何近似数,如果其绝对误差界是最末位数的半个单位,那么从这个近似数左方起的第一个非零的数字,称为第一位有效数字。

从第一位有效数字起到最末一位数字止的所有数字,不论是零或非零的数字,都叫有效数字。

数字舍入规则如下:①若舍入部分的数值,大于保留部分的末位的半个单位,则末位加1。

②若舍去部分的数值,小于保留部分的末位的半个单位,则末位不变。

③若舍去部分的数值,等于保留部分的末位的半个单位,则末位凑成偶数。

即当末位为偶数时则末位不变,当末位为奇数时则末位加1。

(2)算术平均值对某一量进行一系列等精度测量,由于存在随机误差,其测得值皆不相同,应以全部测得值的算术平均值作为最后的测量结果。

粗大误差

粗大误差
所以|V i’|值均小于 (4)按 t 检验准则 先将可疑值 t 8 除外,按余下的 14 个数据计算得:
Gσ’ ,故无坏值。
t 1 4 =20.411
σ’=0.016 取显著度ɑ=0.01(即置信概率为 0.99).已知 n=15,查表 4-3 得系数 k=3.12。 则 kσ’ =3.12×0.016=0.05 因 | t 8 - t 1 4 |=|20.30-20.411|=0.111>0.05
vi ' 2 10 6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
20.42 20.43 20.40 20.43 20.42 20.43 20.39 20.30 20.40 20.43 20.42 20.41 20.39 20.39 20.40
+0.016 +0.026 -0.004 +0.026 +0.016 +0.026 -0.014 (-0.104) -0.004 +0.026 +0.016 +0.006 -0.014 -0.014 -0.004
4.t 检验准则
t 检验准则又称罗曼诺夫斯基准则, 它是按 t 分布的实际误差分布范围来判 断粗大误差,这对重复测量次数较少的情况比较合理,而一般测量的重复测量次 数总是很有限的。 t 检验准则的特点是将测量列的 n 个测得值中可疑的测得值 x j 先剔除,然 后按余下的(n-1)个数据计算算术平均值 x ’和标准差σ’值,再判断数据 x j 是否含有粗大误差。
故可判断数据 t8 含有粗大误差,应予以剔除。 再对余下的 14 个数据继续判断,先提出 t7(|V 7 ’|最大) ,
t 13 =20.4103

粗大误差C语言程序

粗大误差C语言程序

误差分析的C语言实现学院:电子信息工程学院专业班级:通信1004学生姓名:童博学号:102840432012 年12 月26 日一、编程分析1、误差的基本概念所谓误差就是测量值与真实值之间的差,可以用下式表示误差=测得值-真值(1)绝对误差:某量值的测得值和真值之差为绝对误差,通常简称为误差。

绝对误差=测得值-真值(2)相对误差绝对误差与被测量的真值之比称为相对误差,因测得值与真值接近,故也可以近似用绝对误差与测得值之比值作为相对误差。

相对误差=绝对误差/真值≈绝对误差/测得值(3)引用误差所谓引用误差指的是一种简化和使用方便的仪器仪表表示值的相对误差,它以仪器仪表某一刻度点的示值误差为分子,以测量范围上限值或全量程为分母,所得的比值称为引用误差。

引用误差=示值误差/测量范围上限2、精度反映测量结果与真值接近程度的量,称为精度,它与误差大小相对应,因此可以用误差大小来表示精度的高低,误差小则精度高,误差大则精度低。

精度可分ⅰ准确度它反映测量结果中系统误差的影响程度ⅱ精密度它反映测量结果中随机误差的影响程度ⅲ精确度它反映测量结果中系统误差和随机误差综合的影响程度,其定量特征可以用测量的不确定度来表示。

3、有效数字与数据运算含有误差的任何近似数,如果其绝对误差界是最末位数的半个单位,那么从这个近似数左方起的第一个非零的数字,称为第一位有效数字。

从第一位有效数字起到最末一位数字止的所有数字,不论是零或非零的数字,都叫有效数字。

数字舍入规则如下:①若舍入部分的数值,大于保留部分的末位的半个单位,则末位加1。

②若舍去部分的数值,小于保留部分的末位的半个单位,则末位不变。

③若舍去部分的数值,等于保留部分的末位的半个单位,则末位凑成偶数。

即当末位为偶数时则末位不变,当末位为奇数时则末位加1。

(2)算术平均值对某一量进行一系列等精度测量,由于存在随机误差,其测得值皆不相同,应以全部测得值的算术平均值作为最后的测量结果。

粗大误差检验源程序(已注释)

粗大误差检验源程序(已注释)
glbstable95[9]=2.11;glbstable99[9]=2.32;
glbstable95[10]=2.18;glbstable99[10]=2.41;
glbstable95[11]=2.23;glbstable99[11]=2.48;
glbstable95[12]=2.29;glbstable99[12]=2.55;
frame=new JFrame("窗口1");//定义一个新的窗口并决定其窗口名
frame.setLayout(null);//窗口使用绝对布局
con = frame.getContentPane();//将窗体转化成容器
con.setLayout(null);//容器使用绝对布局
xwntable[10]=1.96;
xwntable[11]=2.00;
xwntable[12]=2.04;
xwntable[13]=2.07;
xwntable[14]=2.10;
xwntable[15]=2.13;
xwntable[16]=2.16;
xwntable[17]=2.18;
JP1_JB1.setBounds(200, 100, 100, 50);//设置第一个界面5个按钮的位置(布局)
JP1_JB2.setBounds(100, 170, 300, 30);
JP1_JB3.setBounds(100, 200, 300, 30);
JP1_JB4.setBounds(100, 230, 300, 30);
private double glbstable95[] = new double[101];
private double glbstable99[] = new double[101];

C语言误差处理(平均数、残差)

C语言误差处理(平均数、残差)

#include<iostream.h>#include<stdio.h>#include<stdlib.h>#include<math.h>double d[100];double x1=0.0,x2=0.0,x3=0.0,average=0.0;doubleT[]={63.66,9.92,5.84,4.60,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,2.8 5,2.83, 2.82,2.81,2.80,2.79,2.78,2.77,2.76,2.76,2.75,2.70,2.68,2.66,2.65,2.64,2.63,2.63,2.58};double average_fun(double datas[],int datas_num){int k=0;for(k=0;k<datas_num;k++){average+=datas[k];}average/=datas_num;return average;}double surplus(int num,double a[],double x){int i,j;double c[100],w;for(i=0;i<num;i++){c[i]=a[i]-x;d[i]=c[i];}printf("求得的残余误差为:\n ");for(j=0;j<num;j++)printf("%f ",d[j]);for(i=0;i<num;i++){w+=d[i];}return(w);}void check(int num,double w){double A;if(num%2==0){if(w>num/2.0*A){printf("该算术平均值不正确!\n");}else printf("该算术平均值正确!\n");}else{if(w>(num/2.0-0.5)*A){printf("该算术平均值不正确!\n");}else printf("该算术平均值正确!\n");}}judge1(int num){int t,j;double m=0.0,n=0.0,z=0.0;if(num%2==0){t=num/2;for(j=0;j<t;j++)m+=d[j];for(j=t;j<num;j++)n+=d[j];z=m-n;}else{t=(num+1)/2;for(j=0;j<t;j++)m+=d[j];for(j=t;j<num;j++)n+=d[j];z=m-n;printf("%lf",z);}if(z<=0.002)printf("无根据怀疑此组存在系统误差\n");elseprintf("怀疑此组存在系统误差\n");}std(int num,double data[]){double m=0.0;int k;for(k=0;k<num;k++){m+=data[k]*data[k];}x1=sqrt(m/(num-1));x2=x1/(sqrt(num));}void judge2(int w){int i;for(i=0;i<w;i++){if(d[i]<3*x1)printf("该数据存在粗大误差\n");elseprintf("该数据不存在粗大误差\n");}}limit(int num){double t=0.0;t=T[num-1];x3=t*x2;}bear(int datas_num,double datas[]){double y=0.0,k=0.0;int i;for(i=0;i<datas_num;i++){k+=datas[i];}k/=datas_num;y=k+x3;printf("结果为:");printf("%lf",y);}void main(){int num;int i;double a[100];double x=0.0,w=0.0;printf("输入实验组数:");scanf("%d",&num);printf("输入测得的数据:");for(i=0;i<num;i++)scanf("%lf",&a[i]);for(i=0;i<num;i++)printf("%lf",a[i]);printf("\n");x=average_fun(a,num);printf("平均数为:\n");printf("%lf",x);printf("残余误差为:\n");w=surplus( num, a, x);check(num,w);judge1(num);std(num,d);judge2(num);limit(num);bear(num,a);}。

粗大误差四种判别准则的比较

粗大误差四种判别准则的比较

粗年夜误差四种判别准则的比力之阿布丰王创作粗年夜误差是指在丈量过程中,偶尔发生的某些不应有的反常因素造成的丈量数值超越正常测量误差范围的小概率误差.含有粗年夜误差的数据会干扰对实验结果的分析,甚至歪曲实验结果.若不按统计的原理剔除异常值,而把一些包括较年夜正常误差但不属于异常值的数据舍弃或保管一些包括较小粗年夜误差的异常值,就会错估了仪器的精确品级.因此,系统检验丈量数据是否含有粗年夜误差是保证原始数据的可靠及其有关计算的准确的前提.排除异常数据有四种较经常使用的准则,分别是拉伊达准则、格拉布斯准则、肖维勒准则和狄克逊准则.每种判别准则都有其处置方法,招致用分歧准则对异常值判另外结果有时会纷歧致.目前异常值的剔除还没有统一的准则,本文综合判别粗年夜误差四种方法的特点,系统归纳各种准则的应用,以便更好地发现和判别含有粗年夜误差的数据.1.四种判别粗年夜误差准则的特点拉伊达准则[4]是以三倍丈量列的标准偏差为极限取舍标准,其给定的置信概率为99.73%,该准则适用于丈量次数n>10或预先经年夜量重复丈量已统计出其标准误差σ的情况.Xi为服从正态分布的等精度丈量值,可先求得它们的算术平均值 X、残差vi和标准偏差σ.若|Xi- X|>3σ,则可疑值Xi含有粗年夜误差,应舍弃;若|Xi- X|≤3σ,则可疑值Xi为正常值,应保管.把可疑值舍弃后再重新算出除去这个值的其他丈量值的平均值和标准偏差,然后继续使用判别依据判断,依此类推.格拉布斯准则适用于丈量次数较少的情况(n<100),通常取置信概率为95%,对样本中仅混入一个异常值的情况判别效率最高.其判别方法如下:先将呈正态分布的等精度屡次丈量的样本按从小到年夜排列,统计临界系数G(a,n)的值为G0,然后分别计算出G1、Gn:G1=( X-X1)/σ,Gn=(Xn- X)/σ (1)若G1≥Gn且G1>G0,则X1应予以剔除;若Gn≥G1且Gn>G0,则Xn应予以剔除;若G1<G0且Gn<G0,则不存在“坏值”.然后用剩下的丈量值重新计算平均值和标准偏差,还有G1、Gn和G0,重复上述步伐继续进行判断,依此类推.肖维勒准则是建立在频率p=m/n趋近于概率P{|Xi- X|>Zcσ}的前提下的(其中m是绝对值年夜于Ecσ的误差呈现次数,P是置信概率).设等精度且呈正态分布的丈量值为Xi,若其残差vi≥Zcσ则Xi可视为含有粗年夜误差,此时把读数Xi应舍弃.把可疑值舍弃后再重新计算和继续使用判别依据判断,依此类推.狄克逊准则是一种用极差比双侧检验来判别粗年夜误差的准则.它从丈量数据的最值入手,一般取显著性水平a为0.01.此准则的特点是把丈量数据划分为四个组,每个组都有相应的极端异常值统计量R1、R2的计算方法,再根据丈量次数n和所对应的统计临界系数D(a,n)依照以下方法来判别:若R1>R2,R1>D(a,n),则判别X1为异常值,应舍弃;若R2>R1,R2>D(a,n),则应舍弃Xn;若R1<D(a,n)且R2<D(a,n),则没有异常值.2.四种判别粗年夜误差准则的比力实际上教学实验中的丈量样本年夜多比力小,四种准则所要求的正态分布前提不容易满足,标准偏差会由于偏离正态分布而禁绝确.若不考虑具体的临界系数与置信水平,这四种准则的思维方法都可归纳为:首先计算某组丈量值X1,X2,X3……Xn的平均值x、残差vi和标准偏差σ.对第i次丈量值,如果vi>kσ (2)则可判别为含有粗年夜误差,其中k为统计临界系数.狄克逊准则是用极差比来检测异常值的,它的统计临界系数与其他准则不具有可比性.除狄克逊准则外,作拉伊达准则、格拉布斯准则和肖维勒准则在丈量次数3≤n≤250的曲线关系,见图1.拉伊达准则、格拉布斯准则和肖维勒准则的比较曲线可以看出:对应于相同的丈量次数,各判别准则的统计临界系数各不相同,以拉伊达准则的统计临界系数3为线索,当n=25时,格拉布斯准则(a=0.01)的统计临界系数刚好达到3以上,而当n=185时,肖维勒准则的统计临界系数刚好也达到3.因此可把总范围分为以下三个小范围.(1)在3≤n<25这个范围内,建议用狄克逊准则或格拉布斯准则(a=0.01)来判别可疑数据.在少量样品时,拉伊达准则的统计临界系数相比较力年夜,不容易及时发现异常数据,使用它会比力苛刻.而肖维勒准则的统计临界系数太小,容易剔除仅含有较年夜正常误差的丈量值.因此用可一次性剔除多个异常值且无需求出样本平均值 X、残差vi和标准偏差σ的狄克逊准则或格拉布斯准则(a=0.01)来判别可疑数据是合适的.(2)在25≤n≤185的范围内,建议用格拉布斯准则(a=0.05)或肖维勒准则来判别可疑数据.统计临界系数最年夜的是格拉布斯准则(a=0.01),虽然肖维勒准则的统计临界系数偏小,但在这一范围内肖维勒准则可以弥补拉伊达准则的缺乏,因此判别数据时采纳格拉布斯准则(a=0.05)或肖维勒准则比力合适.(3)在丈量次数n>185时,建议采纳拉伊达准则.因为此时肖维勒准则的统计临界系数偏年夜,在剔除异常值时容易把含有较小粗年夜误差的数据遗漏失落.因此,为了更好地对丈量数据作出确切的判断且尽量防止让被剔除的数据丧失总体信息,可以采纳以下方法:判别前最好先依照从小到年夜排列丈量数据.首先怀疑最值,如果最值不是异常值则其他值也就不会含有粗年夜误差了.对此四种准则的综合判别方法,见表1.表1综合判别方法结论综上所述,由于四种判别准则在理论上剔除异常值是各自相对某个精度而言的,它们的检验范围和判别效果分歧,在分歧的情况下应用分歧的准则的严格水平分歧,但不加比力随便使用某一种准则来判别丈量值是否含有粗年夜误差,这样有时会获得相对禁绝确的结论,可能把仅包括正常误差的可疑值剔除,或者保管了含有粗年夜误差的异常值.本文中的图1直观明了、使用方便,因此采纳本文建议的综合归纳方法可以使在数据处置中判别粗年夜误差有据可依,并使剔除异常数据的效率有所提高,得出相瞄准确的丈量计算结果.在目前还没有一个适用于所有情况的判别粗年夜误差的准则,因此对数据是否含有粗年夜误差的判别仍然是一个需要逐步研究和更多实践的问题.本文的建议和检验考试,仍需理论研究分析和进一步完善.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//平均值
printf("****************************************************\n");
printf("平均值为:%lf\n",average);
printf("****************************************************\n");
//测试数据
//double datas[]={24.774,24.778,24.771,24.780,24.772,24.777,24.773,24.775,24.774};
//数组长度以及一些常量
int datas_num,j,flags;
datas_num=9;
printf("输入你要创建的数据容量:");
算术平均值及其残余误差的计算是否正确,可用求得的残余误差代数和性质来校核。
残余误差代数和为:
当 为未经凑整的准确数时,则有
1)残余误差代数和应符合:
当 = ,求得的 为非凑整的准确数时, 为零;
当 > ,求得的 为凑整的非准确数时, 为正;其大小为求 时的余数。
当 < ,求得的 为凑整的非准确数时, 为负;其大小为求 时的亏数。
else printf("存在粗大误差,应剔除\n");
printf("****************************************************\n");
//算数平均值的标准差
std_error_average=std_error_average_fun(std_besia,datas_num);
//判别粗大误差
void crassitude_error_fun(double datas[],
double average,
double std_besia,
int datas_num);
int liyiter(double canyu_error_data[],double std_row_besia,int datas_num);
//校核算术平均值
revise_average_fun(datas,canyu_error_data,average,datas_num);
printf("****************************************************\n");
//判别系统误差
printf("马利可夫准则判定:\n");
double myround(double val,int digits);
int main(int argc, char* argv[])
{
//开辟数组的指针
double *datas,*canyu_error_data;
//保存的数据
double average,canyu_error=0,std_besia=0,std_error_average=0,limit_error_average=0;
1.别捷尔斯法
二、程序流程
1、算术平均值
2、求残余误差
3、校核算术平均值及其残余误差
4、判断系统误差
5、求测量列单次测量的标准差
6、判别粗大误差
7、求算术平均值的标准差
8、求算术平均值的极限误差
9、写出最后测量结果
三、编程实现
源程序:
#include "stdafx.h"
#include "stdio.h"
//马利准则
//阿卑准则
void abei(double canyu_error_data[],double std_error_average,int datas_num);
//求测量列单次测量的标准差
double std_row_fun(double canyu_error_data[],
int datas_num);
②若舍去部分的数值,小于保留部分的末位的半个单位,则末位不变。
③若舍去部分的数值,等于保留部分的末位的半个单位,则末位凑成偶数。即当末位为偶数时则末位不变,当末位为奇数时则末位加1。
(2)算术平均值
对某一量进行一系列等精度测量,由于存在随机误差,其测得值皆不相同,应以全部测得值的算术平均值作为最后的测量结果。
void revise_average_fun(double datas[],double canyu_error_data[],double average,int datas_num);
void judge_system_error_fun(double canyu_error_data[],int datas_num);//判断系统误差
//求算数平均值的标准差
double std_error_average_fun(double std_bersia,int datas_num);
//求算数平均值的极限误差
double limit_error_average_fun(double std_error_average,int datas_num);
printf("算数平均值的极限误差为:%lf\n",limit_error_average);
printf("****************************************************\n");
//阿卑
printf("阿卑准则判定:\n");
abei(canyu_error_data,std_error_average,datas_num);
2.81,2.87,2.96,3.17};
double T[]={63.66,9.92,5.84,4.60,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,2.85,2.83,
2.82,2.81,2.80,2.79,2.78,2.77,2.76,
2)残余误差代数和绝对值应符合:
当n为偶数时, A;
当n为奇数时,
式中A为实际求得的算术平均值 末位数的一个单位。
(3)测量的标准差
测量的标准偏差称为标准差,也可以称之为均方根误差。
1、测量列中单次测量的标准差
式中 —测量次数(应充分大)
——测得值与被测量值的真值之差
2、测量列算术平均值的标准差
3、标准差的其他计算法
printf("****************************************************\n");
flags=liyiter(canyu_error_datprintf("莱以特准则判断粗大误差:\n");
if(flags==0){printf("不存在粗大误差\n");}
//接收数据
for(j=0;j<datas_num;j++)
{
printf("%d:",j+1);
scanf("%lf",datas+j);
}
// printf("接收数据成功!\n");
average=myround(average_fun(datas,datas_num),3);
canyu_error_fun(datas,canyu_error_data,average,datas_num);
误差分析的C语言实现
学院:
电子信息工程学院
专业班级:
通信1004
学生姓名:
童博
学号:
10284043
2012年12月26日
一、编程分析
1、误差的基本概念
所谓误差就是测量值与真实值之间的差,可以用下式表示
误差=测得值-真值
(1)绝对误差:某量值的测得值和真值之差为绝对误差,通常简称为误差。
绝对误差=测得值-真值
//残余误差
printf("残余误差为:\n");
for(j=0;j<datas_num;j++)
{
printf("%d:",j+1);
printf("%lf\n",canyu_error_data[j]);
}
printf("****************************************************\n");
judge_system_error_fun(canyu_error_data,datas_num);
printf("****************************************************\n");
//测量列单次测量的标准差
std_besia=std_row_fun(canyu_error_data,datas_num);
3、有效数字与数据运算
含有误差的任何近似数,如果其绝对误差界是最末位数的半个单位,那么从这个近似数左方起的第一个非零的数字,称为第一位有效数字。从第一位有效数字起到最末一位数字止的所有数字,不论是零或非零的数字,都叫有效数字。
数字舍入规则如下:
①若舍入部分的数值,大于保留部分的末位的半个单位,则末位加1。
#include "stdlib.h"
#include "math.h"
double gebruce[]={1.15,1.46,1.67,1.82,1.94,2.03,
相关文档
最新文档