大学物理实验不确定度.cpp
生活随笔
收集整理的這篇文章主要介紹了
大学物理实验不确定度.cpp
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
*求合成不確定度需根據具體實驗修改all_uncertainty()函數的內容需提前定義常量*/
#include <iostream>
#include <cmath>
#include <iomanip>
#include <cstdio>
using namespace std;
#define PI 3.1415926
#define N 200 //印度人的數組
#define G 9.78069
#define E 0.01 //精準的比較
#define K 0 //拓展不確定度的拓展因子;
#define MAXN 0
#define M 10 //t表的一個常量參數
#define L 0 //b類不確定度的 b表
struct uncertainty {int n; //個數double test[N]; //數據double average_s; //平均數//A類不確定度double s, sx, ua; //標準差,平均值的標準差,a類不確定度//b類不確定度double dyi; //儀器的的最大允許誤差double ub;//合成不確定度double uc; //絕對不確定度double ucx; //相對不確定度
}mytest;
void a_uncertainty_get(int n) {//計算A類不確定度double t_joy68[] = { 0,0,0,1.32,1.20,1.14,1.11,1.09,1.08,1.07,1.06,0,0,0,0,1.04,0,0,0,0,1.03 };//0.68 t 表double sum_test = 0;//初始化s,并輸入數據到數組cout << "依次輸入該組數據" << endl;for (int i = 0; i < n; i++) {cin >> mytest.test[i];mytest.test[i] = mytest.test[i];sum_test += mytest.test[i];}//計算平均值mytest.average_s = sum_test / n;//計算標準差 double sum_dtext = 0;for (int i = 0; i < n; i++) {sum_dtext += (mytest.test[i] - mytest.average_s)*(mytest.test[i] - mytest.average_s);}mytest.s = sqrt(sum_dtext / (n - 1));//計算A類不確定度//計算平均值的標準差mytest.sx = mytest.s / sqrt(n);mytest.ua = t_joy68[n > 10 ? M : n] * mytest.sx;
}
void b_uncertainty_get(double max_dyi){//計算B類不確定度double b_joy[] = { 3,sqrt(3) }; //3為儀器誤差的正態分布(秒表,千分尺,米尺等) sqrt(3)為矩形分布 (游標卡尺等)mytest.ub = max_dyi / b_joy[L];
}void all_uncertainty_get() {cout << "輸入測試數據的個數" << endl;cin >> mytest.n;a_uncertainty_get(mytest.n);cout << "輸入測量儀器所允許的最大誤差" << endl;cin >> mytest.dyi;b_uncertainty_get(mytest.dyi);mytest.uc = sqrt(mytest.ua * mytest.ua + mytest.ub*mytest.ub);//默認求得是p=0.68置信概率的不去確定度double k[] = { 1,1.96,2,2.575,3 };mytest.uc*=k[K];mytest.ucx = mytest.uc / mytest.average_s * 100;
}
int main()
{while (true) {all_uncertainty_get();//cout << mytest.s << endl; //方差//cout << mytest.sx << endl; //標準差//cout << mytest.ua << endl; //a類不確定度//cout << mytest.ub << endl; //b類不讀確定度//cout << mytest.average_s << endl; //平均數//cout << mytest.uc << endl; //絕對不確定度cout << mytest.ucx << endl; //相對不確定度}return 0;
}
?
總結
以上是生活随笔為你收集整理的大学物理实验不确定度.cpp的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UI自动化测试之Selenium原理详解
- 下一篇: 《渗透测试实践指南 必知必会的工具与方法