数据处理真的勾八麻烦没啥没人做代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t = 6;
int i = 0;
double up1[6], ut01[6], up2[6], ut02[6];
double p0;
cout << "输入p0: ";
cin >> p0;
cout << "输入up1, ut01, up2, ut02: " << endl;
while (t--)
{
cin >> up1[i] >> ut01[i] >> up2[i] >> ut02[i];
i++;
}
i = 0;
t = 6;
cout << "完成" << endl;
double result_p1[6], result_p2[6];
while (t--)
{
result_p1[i] = up1[i] / 20 + p0;
result_p2[i] = up2[i] / 20 + p0;
i++;
}
i = 0;
t = 6;
double result_lg_1_0[6], result_lg_1_2[6];
while (t--)
{
double x1 = result_p1[i] / p0;
double x2 = result_p1[i] / result_p2[i];
// 检查 x1 和 x2 是否为正数,防止 log10 计算错误
if (x1 > 0)
result_lg_1_0[i] = log10(x1);
else
result_lg_1_0[i] = -INFINITY; // 或者其他错误处理
if (x2 > 0)
result_lg_1_2[i] = log10(x2);
else
result_lg_1_2[i] = -INFINITY; // 或者其他错误处理
i++;
}
double r1[6], r2[6], r[6];
i = 0;
t = 6;
while (t--)
{
r1[i] = log10(result_p1[i]) - log10(p0); // 计算 r1
r2[i] = log10(result_p1[i]) - log10(result_p2[i]); // 计算 r2
r[i] = r1[i] / r2[i]; // 计算 r
i++;
}
t = 6;
for (int j = 0; j < t; j++) // 修正循环条件
{
cout << "p1: " << result_p1[j] << endl;
cout << "p2: " << result_p2[j] << endl;
cout << "lg(p1 / p0): " << result_lg_1_0[j] << endl;
cout << "lg(p1 / p2): " << result_lg_1_2[j] << endl;
cout << "r: " << r[j] << endl;
cout << "下一组 -- " << endl;
}
// 计算平均值
double sum = 0.0, avg = 0.0;
for (int j = 0; j < t; j++)
{
sum += r[j];
}
avg = sum / 6;
cout << "avg_r: " << avg << endl;
// 计算不确定度
double erta_r = 0.0;
double erta_sum = 0.0;
for (int j = 0; j < t; j++)
{
erta_sum += pow(r[j] - avg, 2);
}
erta_sum = erta_sum / 5.0;
erta_sum = sqrt(erta_sum); // 确保输入非负数
cout << "erta_sum: " << erta_sum << endl;
// 计算不确定度范围
double un_sure[2];
un_sure[0] = erta_sum + avg;
un_sure[1] = avg - erta_sum;
cout << "不确定度(加): " << un_sure[0] << endl;
cout << "不确定度(减): " << un_sure[1] << endl;
// 计算相对不确定度
double E = 0.0;
E = (erta_sum / avg) * 100;
cout << "相对不确定度:" << E << '%' << endl;
cout << "全部输出完毕!" << endl;
return 0;
}
相关处理数据展示: