C语言实现测量数据处理,求出实际值的范围
生活随笔
收集整理的這篇文章主要介紹了
C语言实现测量数据处理,求出实际值的范围
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一下包含求一組數據的,均值,標準差,方差,剔除數據,求出最終范圍
代碼如下:
#include<stdio.h> #include<math.h> int main() {while(true){int n;double a[100],x1=0,v1[100]={0.0},standard=0,b[100];printf("請輸入你要輸入數據得個數:"); scanf("%d",&n);//算術平均值 printf("請輸入數據:"); for(int i=0;i<n;i++){scanf("%lf",&a[i]);x1+=a[i];}x1=x1/n;printf("算術平均值:%lf\n",x1);//殘余誤差 printf("殘余誤差等于:");for(int i=0;i<n;i++){v1[i]=a[i]-x1;printf("%lf \t",a[i]-x1);}printf("\n");//標準偏差for(int i=0;i<n;i++){standard+=pow(v1[i],2);} standard=standard/(n-1);standard=sqrt(standard);printf("標準偏差: %lf\n",standard);//刪除較大偏差double upper=x1+3*standard,down=x1-3*standard;int count=0;for(int i=0;i<n;i++){if(a[i]<=upper&&a[i]>=down){b[count++]=a[i];}} printf("3倍標準差原則后的剩下的數據:");for(int i=0;i<count;i++){printf("%lf \t",b[i]);}printf("\n");double x2=0,v2[100]={0.0},standard1=0;//重新計算算術平均值for(int i=0;i<count;i++){x2+=b[i];} x2=x2/count;printf("重新計算的算術平均值:%lf\n",x2);//重新計算殘余誤差printf("重新計算的殘余誤差為: ");for(int i=0;i<count;i++){v2[i]=b[i]-x2;printf("%lf \t",v2[i]);} printf("\n");//重新計算的標準差for(int i=0;i<count;i++){standard1+=pow(v2[i],2);}standard1=standard1/(count-1);standard1=sqrt(standard1);printf("重新計算的標準差為:%lf\n",standard1);//標準偏差double standard2=0;standard2=standard1/(sqrt(count));printf("標準偏差:%lf\n",standard2);//測量結果double xupper,xdown;xupper=x2+3*standard2;xdown=x2-3*standard2;printf("測量結果:%lf--%lf\n",xdown,xupper); }return 0; }運行結果:
總結
以上是生活随笔為你收集整理的C语言实现测量数据处理,求出实际值的范围的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用C++的类重载高精度加法,乘法和等于符
- 下一篇: fitype拟合多参数函数和遗传算法拟合