什么叫测量不确定度?检测试验室要不要评定不确定度?

什么叫测量不确定度?检测试验室要不要评定不确定度?,第1张

答:测量不确定度是经典误差理论发展和完善的产物。由于测量条件的不完善及人们的认识不足,使被测量的值不能被确切的知道,测量值以一定的概率分布落在某个区域内,表征被测量量分散性的参数就是“测量不确定度”简称“不确定度”。不确定度的评定有4种方法:

(1)A类不确定度:对被测量重复观测得到的数据进行统计分析,得到的实验标准差就是A类不确定度,这种方法又叫“贝塞尔法”;

(2)B类不确定度:对观测列采用统计分析以外的方法进行不确定度评定,称为B类不确定度;

(3)合成不确定度:当测量结果是由若干个其他量的值求得,按其他各量的方差和协方差算得的标准不确定度称为合成不确定度;

(4)扩展不确定度:把合成不确定度扩大若干倍来表示的测量不确定度称为扩展不确定度,其定义是:“确定测量结果区间的量,合理赋予被测量之值分布的大部分可望含于此区间。”

国标GB

/T15481-2000对于检测实验室也规定了“应具有并应用评定测量不确定度的程序”。本中心程序文件编制了《检测试验室测量不确定度评定程序》。

C++行啊,我只写过C++版的,懒得再改成C的了,有兴趣自己搞吧:

#include<iostream>

#include<cmath>

#include<vector>

using namespace std

//求算术平均值

double average(const vector<double>&x)

{

int n=x.size()

double avg=0

for (int i=0i<n++i)

avg+=x[i]

return avg/n

}

//求标准偏差(贝塞尔公式)

double stdev(const vector<double>&x)

{

int n=x.size()

double avg=average(x),s=0

for (int i=0i<n++i){

s+=(x[i]-avg)*(x[i]-avg)

}

s=sqrt(s/(n-1))

return s

}

//求A类不确定度

double A_uncertain(const vector<double>&x)

{

return stdev(x)/sqrt(double(x.size()))

}

//求B类不确定度,默认按 1/根号3 算

double B_uncertain(const double &x)

{

return x/sqrt(3.0)

}

//求合成不确定度

double C_uncertain(const double &ua,const double &ub)

{

return sqrt(ua*ua+ub*ub)

}

void main()

{

int n

double avg,s,a,b,c,dx,uxd

cout<<"****计算实验标准偏差及不确定度****\n"

cout<<"输入实验数据个数:"

cin>>n

if (n<2){

cout<<"错误!"<<endl

exit(1)

}

vector<double>x(n)

for (int i=0i<n++i){

cout<<"输入第"<<i+1<<"个实验数据:"

cin>>x[i]

}

cout<<"输入仪器误差限:"

cin>>dx

cout<<"--------------------------"<<endl

avg=average(x)

cout<<"数据算术平均值为:"<<avg<<endl

s=stdev(x)

cout<<"实验标准偏差为:"<<s<<endl

a=A_uncertain(x)

cout<<"A类不确定度为:"<<a<<endl

b=B_uncertain(dx)

cout<<"B类不确定度为:"<<b<<endl

c=C_uncertain(a,b)

cout<<"合成不确定度为:"<<c<<endl

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7837109.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存