【大學物理實驗】01 單擺測重力加速度 的誤差分析程式碼
阿新 • • 發佈:2022-03-27
大學物理實驗1
不想手算的我乾脆操起老本行
自制誤差分析——不確定度評估板子
展示一下輸出:
程式碼
#include <iostream> #include <algorithm> #include <cmath> #define pi 3.141593 using namespace std; double l, averT, dTa, dTb, dT, averg, dg; double w1, w2, wg; // dl/l 和 dt/t 和 dg / g double t[10], g[10]; int n; int main (){ cin >> n; l = 0.915; //擺長 for (int i = 1; i <= n; i ++){ cin >> t[i]; averT += t[i]; g[i] = 1.0000 * (4 * pi * pi * l) / (t[i] * t[i]); averg += g[i]; } averT /= n, averg /= n; w1 = 1 / (915 * sqrt(3)); //擺長誤差 double sum = 0; //求dTa的過渡值 for (int i = 1; i <= n; i ++){ sum += (t[i] - averT) * (t[i] - averT); } dTa = sqrt (sum / (n * (n - 1))); dTb = 0.01 / (50 * sqrt (3)); dT = sqrt (dTa * dTa + dTb * dTb); w2 = dT / averT; //週期誤差 wg = sqrt (w1 * w1 + 4 * w2 * w2); dg = wg * averg; // dg cout << "g = (" << averg << "±" << dg << ")m·s^-2" << endl; //cout << "P = " << << endl; //置信概率積分不會求。。 cout << "dg / g = " << wg * 100 << "%" << endl; }