首页 > 其他分享 >使用Julia语言展示几何平均值与算数平均值在实际应用中的差别(采用注册计量师考试试题)

使用Julia语言展示几何平均值与算数平均值在实际应用中的差别(采用注册计量师考试试题)

时间:2024-03-13 20:32:09浏览次数:11  
标签:平均值 means measurements Julia label 算数 indices 测得值

理论部分

在注册计量师考试中有一道试题,大体内容为:

现在有一块砝码在等臂天平上进行测量,第一次测得值是19.6g,调换两边位置后的测得值是19.7g,
天平最终测得检测样品的重量为多少?

  个别同事可能会将算数平均值作为这个砝码的最终测量值,但实际应当使用几何平均值的方式计算,算数平均值通常假设误差是随机分布的,且没有系统偏差,而采用几何平均值的方式可以有效的消除系统误差,而且几何平均值对极端值相对不敏感,更能反映数据的整体情况。。

  取五组平均值均为19.65g的检测数据,通过以下Julia代码计算模拟的图片即可体现出两种算法在多组数据中的不同。这里的w_{1}为天平一侧测得值,w_{2}为另一侧测得值,两种方法的计算公式:

Markdown版本计算公式

集合平均值:$\sqrt{w_{1}w_{2}}$
算数平均值:$\frac{w_{1}+w_{2}}{2}$

Julia语言实现

using Plots  
  
measurements = [(19.6, 19.7), (19.5, 19.8), (19.4, 19.9), (19.7, 19.6), (19.8, 19.5)]  
  
arithmetic_means = [(m1 + m2) / 2 for (m1, m2) in measurements]  
geometric_means = [sqrt(m1 * m2) for (m1, m2) in measurements]  
  
indices = 1:length(measurements)  
   
p = plot()  
  
# 算术平均值的散点和曲线  
scatter!(indices, arithmetic_means, label="Arithmetic Mean", markercolor=:blue)  
plot!(indices, arithmetic_means, seriestype=:line, label="", linecolor=:blue, linewidth=2)  
  
scatter!(indices, geometric_means, label="Geometric Mean", markercolor=:red)  
plot!(indices, geometric_means, seriestype=:line, label="", linecolor=:red, linewidth=2)  
  
xlabel!("Measurement Pair Index")  
ylabel!("Mean Value (g)")  
title!("Comparison of Arithmetic and Geometric Means")  
  

display(p)  
savefig(p, "GGboy.png")

根据生成图像可以看出,五组数据平均值均为19.65g,几何平均值方法更有效的消除系统误差

 

 

标签:平均值,means,measurements,Julia,label,算数,indices,测得值
From: https://blog.csdn.net/m0_73500130/article/details/136679357

相关文章

  • 有关幅值、振幅、峰值、峰峰值、有效值、平均值的区分
    本文以Ut=10sin(wt)的正弦电压为例:幅值:10V振幅:10V峰值(Vp:Peak):10V峰峰值(Vpp:Peaktopeak):20V有效值(Vrms):10/2^(1/2)-->峰值除以根号二平均值(Vavg):这边提以下半波整流与全波整流下平均值与峰值的关系半波整流:Vavg=0.45Vp全波整流:Vavg=0.9Vp注意:......
  • 01_C++基本数据类型_算数类型
    1.算数类型算数类型主要分为两类——整型和浮点型带符号和无符号类型带符号:int、short、long和longlong,通过在这些类型名前添加unsigned可以得到无符号类型。 选择符号的准则:(1)数值不可能为负时,选择无符号类型。(2)使用int执行整数运算。(3)算数表达式不要使用char或bool,存放字......
  • 算数(从左往右依次计算)
    #include<bits/stdc++.h>usingnamespacestd;intmain(){strings;getline(cin,s);charx;inta,a1,s1=s.size();boolhave=true;for(inti=0;i<s1;i++){if((s[i]=='+'||s[i]=='-'||s[i]=......
  • C语言解题 || 计算数字矩阵的2条对角线之和
    题目:写一个函数calc_matrix(intn)实现如下功能:先输入整数n,然后输入nn个整数,构成nn矩阵,计算对角线上的数之和,并输出该和。例如:先输入3,然后输入1,2,3,4,5,6,7,8,9对角线上是数之和为:1+5+9+3+7=25。写出完整的程序代码,在main函数中调用上述函数calc_matrix题目分析:通过研究数......
  • [王崧-数论01]从自然数到算数基本定理
    $$\color{indigo}\large\text{[王崧-数论01]从自然数到算数基本定理}$$ $\large\mathbb{Part\01}\text{自然数,归纳和最小数原理}$$\text{1.1自然数}$$\mathbb{N_1=\{1,2,3,...\}}$$\mathbb{N_0=\{0,1,2,...\}}$$\mathbb{Z=\{0,\pm1,\pm2,\pm3...\}}$$\text{“道生一,一......
  • Julia编程基础
    本文介绍了Julia这一主要面向自然科学的编程语言的基本安装与使用,建议读者最好在熟练使用Python的前提下再阅读本文。如果是对Python的语法非常熟悉的人,应该很容易看懂本文并初步掌握Julia的基本语法和使用逻辑。Julia最吸引人的地方在于他简单如Python的语法,但兼具了C++......
  • Julia编程基础
    技术背景Julia目前来说算是一个比较冷门的编程语言,主要是因为它所针对的应用场景实在是比较有限,Julia更注重于科学计算领域的应用。而Julia最大的特点,就是官方所宣传的:拥有C的性能,且可以像Python一样便捷的开发。这对于科学计算领域来说确实是一件好事,目前也有一些科学领域的应用......
  • 数据库中avg函数求平均值空值参与统计吗?
    先说结论:avg函数求平均值时,空值不参与统计。示例数据:withtmpas(select1asid,100asvalueunionallselect2asid,nullasvalueunionallselect3asid,200asvalue)selectavg(value),sum(value),count(value),count(1)fromtmp执行结果:`avg(va......
  • 如何使用Python计算列表中所有数字的平均值
    在Python编程中,经常需要对列表中的数字进行各种数学运算。其中一个常见的任务是计算列表中所有数字的平均值。本文将向您介绍如何使用Python编程语言来实现这个任务。步骤:以下是计算列表中所有数字平均值的步骤:1.定义一个包含数字的列表。2.使用`sum()`函数计算列表中所有数字的总......
  • 输入若干个数,求最大、最小、平均值
    #define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>intmain(){ intarr[10]; intmax=0; intmin=0; intsum=0; printf("请输入十个数\n"); for(inti=0;i<10;i++) { scanf("%d",&arr[i]); } for(inti=0;i&......