失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 判断粗大误差的matlab程序 粗大误差处理程序

判断粗大误差的matlab程序 粗大误差处理程序

时间:2018-12-30 09:22:13

相关推荐

判断粗大误差的matlab程序 粗大误差处理程序

c语言编程粗大误差处理

#include

#include

#include

int i,N;

double a[20],v[20],c,a1,a2,a3,k,g,r,r1,r2;

void laiyite();

void roman();

void geluobusi();

void dikesong();

double average(double arr[],int m);

double bzhch(double arr1[],int m);

void kzhi(int n1);

void gzhi(int n2);

void rzhi(int n3,double arr[],int n);

void main()

{

int n,w;

printf("\n*****************************粗大误差处理****************************\n\n");

printf("请输入数据个数: ");

scanf("%d",&N);

printf("\n请?输?入?数簓据Y: ");

for(i=0;i

scanf("%lf",&a[i]);

S:{

printf("\n\n***************************菜单**************************\n");

printf("\t\t\t1.莱以特准则\n\t\t\t2.罗曼洛夫斯基准则ò\n\t\t\t3.格罗布斯准则\n\t\t\t4.狄克松准则\n");

printf("**********************************************************\n");

printf("\n请选择判别的准则: [ ]\b\b");

scanf("%d",&n);

switch(n)

{

case 1: laiyite();break;

case 2: roman();break;

case 3: geluobusi();break;

case 4: dikesong();break;

}

printf("\n\n要继续吗\t1.继续 2.退出? [ ]\b\b");

scanf("%d",&w);

switch(w)

{

case 1: goto S;break;

case 2:break;

}

}

}

void laiyite() //1.莱以特准则

{

double b;

L1:{

c=average(a,N);

b=bzhch(a,N);

for(i=0;i

v[i]=a[i]-c;

for(i=0;i

{

v[i]=abs(v[i]);

if(v[i]>3*b)

{

printf("\n剔除值残余误差: %8.3lf 剔除值 %8.3lf\n",v[i],a[i]);

for(;i

a[i]=a[i+1];

a[N-1]='\0';

N--;

goto L1;

}

}

}

printf("\n标准差: %8.3lf \n",b);

printf("\n输出最后数值: ");

for(i=0;i

printf("%8.3lf ",a[i]);

}

void roman() //2.罗曼洛夫斯基准则

{

double t=100,x[20],b,ave,b2,sum=0,s2;

int d;

printf("\n请?输?入?显?著?度è:阰 ");

scanf("%lf",&a1);

for(i=0;i

x[i]=a[i];

L2:{

kzhi(N);

for(i=0;i

{

if(x[i]

{

t=x[i];

d=i;

}

}

for(i=d;i

x[i]=x[i+1];

x[N-1]='\0';

ave=average(x,N-1);

b2=bzhch(x,N-2);

if(abs(t-ave)>k*b2)

{

printf("\n输出k值:阰 %lf\n ",k);

printf("\n剔除值: %8.3lf\n",t);

printf("\n输出最后数值:阰 ");

for(i=0;i

printf("%8.3lf ",x[i]);

N--;

t=100;

goto L2;

}

}

}

void geluobusi() //3.格罗布斯准则

{

int d1,d2;

double min=100,max=0,ave1,b3,g1,g2,x[20];

printf("\n请输入显著度: ");

scanf("%lf",&a

2);

for(i=0;i

x[i]=a[i];

L3:{

ave1=average(x,N);

b3=bzhch(x,N-1);

for(i=0;i

{

if(x[i]

{

min=x[i];

d1=i;

如果觉得《判断粗大误差的matlab程序 粗大误差处理程序》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。