大学物理实验不确定度计算器

引言

大学物理实验这门科目不仅抄写内容多,实验操作复杂,计算量也不小。虽然能用计算器,但由于不确定度的计算公式并不简单,用计算器手敲费时费力。当年大一的小小的笔者为解决这一问题,用大一学到的最基本的c++知识编写了下面这款不确定度计算器。

下面简单介绍一下这个代码的结构,便于大家交流学习

主函数

首先进行待处理的数据输入,用一个循环输入多个实验数据
对数据进行预处理,计算并输出实验数据的平均值、方差、方差*n

这一步既能为不确定度的计算进行第一步处理,又能给出一些可能要写在实验报告上的数据

调用不确定度的三个部分进行计算,并得出结果

函数UB

输入Δ仪器,并询问属于哪种误差的仪器,用于计算仪器本身的误差ub

函数UA

计算ua,即根号下 (方差/(n-1))

函数UC

计算uc,即误差,根号下ua和ub的平方和;
#include <iostream>
#include<cmath>
using namespace std;
double UB()
{
    double ub;
    double yiqi;//delta仪
    cout << "请输入▲仪\n";
    cin >> yiqi;
    cout << "请问要除以根号三(1)还是除以三(任意值)\n";
    int gen;
    cin >> gen;
    if (gen == 1) ub = (yiqi / sqrt(3));
    else ub = yiqi / 3.0;
    return ub;
}
double UA(double d,double nn)
{
    return sqrt(d / (nn - 1));
}
double UC(double a, double b)
{
    return sqrt(a * a + b * b);
}
int main()
{
    int n;
    double* p;//[100];
    cout << "请输入数据的个数n";
    cin >> n;
    p = new double[n];
    //cin >> n;
    cout << "请依次输入这些数据";
    double suma = 0;
    for (int i = 0; i < n; i++)
    {
        cin >> p[i];
        suma += p[i];
    }
    double ave = suma / n;
    double* fc;// [100] ;//每一个数据与平均值的差的平方
    fc = new double[n];
    double sufc = 0;//fc的和
    for (int i = 0; i < n; i++)
    {
        fc[i] = (p[i] - ave) * (p[i] - ave);
        sufc += fc[i];
    }
    double fcc = sufc / n;
    cout << "平均值为:" << ave;
    cout << "\n方差*个数为:" << sufc;
    cout << "\n方差为:" << fcc;
    double ub = UB();
    double ua=UA(fcc,n);
    double uc = UC(ua, ub);
    cout << "ua=" << ua << endl;
    cout << "ub=" << ub << endl;
    cout << "uc=" << uc << endl;
    double ita;
    ita = (uc / ave) * 100.0;
    cout << "ita=" << ita << "%\n";
    //delete p;
    //delete fc;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值