密立根油滴实验数据处理,油滴电荷量计算,简单复制即可用
密立根油滴实验是一个著名的实验,其中有用非平衡法(动态法)测量油滴电荷量的步骤,在做实验时计算量繁琐,这里用一个python小程序提供辅助计算。注意:不同实验室里装置不同,相关参数会有所不同,如有不同请在程序开始位置进行修改。
密立根油滴实验计算代码
密立根油滴实验动态法计算公式和预设参数值
密立根油滴实验是一个著名的实验,其中有用非平衡法(动态法)测量油滴电荷量的步骤,在做实验时计算量繁琐,这里用一个python小程序提供辅助计算。
其中主要的计算公式和相关参数值如下:
注意:不同实验室里装置不同,相关参数会有所不同,如有不同请在程序开始位置进行修改。
求
油
滴
电
荷
量
的
公
式
:
q
=
18
π
η
′
3
2
L
3
2
2
g
(
ρ
−
ρ
′
)
⋅
d
U
′
(
1
t
g
+
1
t
e
)
(
1
t
g
)
1
2
油
滴
半
径
:
r
=
9
η
v
g
2
(
ρ
−
ρ
′
)
g
η
的
修
正
函
数
:
η
′
=
η
1
+
b
r
P
{\begin{aligned} 求油滴电荷量的公式 :q &= \frac{ 18\pi\eta'^{\frac{3}{2}} L^{\frac{3}{2}} }{\sqrt{2g(\rho-\rho')} } \cdot\frac{d}{U'} \big( \frac{1}{t_g} + \frac{1}{t_e} \big)\big( \frac{1}{t_g} \big)^{\frac{1}{2}}\\ \\ 油滴半径:r&=\sqrt{\frac{9\eta v_g}{2(\rho-\rho')g}}\\ \\ \eta的修正函数:\eta'&=\frac{\eta}{1+\frac{b}{rP}}\\ \end{aligned} }\\
求油滴电荷量的公式:q油滴半径:rη的修正函数:η′=2g(ρ−ρ′)18πη′23L23⋅U′d(tg1+te1)(tg1)21=2(ρ−ρ′)g9ηvg=1+rPbη
相
关
参
数
的
默
认
值
:
(
有
不
同
的
需
要
在
代
码
中
进
行
简
单
修
改
)
空
气
压
强
:
P
=
76.0
c
m
H
g
修
正
常
数
:
b
=
6.17
×
1
0
−
6
m
⋅
c
m
H
g
粘
滞
系
数
:
η
=
1.83
×
1
0
−
5
k
g
⋅
m
−
1
⋅
s
−
1
平
行
极
板
间
距
离
:
d
=
5.00
×
1
0
−
3
m
匀
速
上
升
/
下
降
的
距
离
:
L
=
1.6
m
m
重
力
加
速
度
:
g
=
9.794
m
/
s
2
油
的
密
度
:
ρ
=
981
k
g
⋅
m
−
3
空
气
密
度
:
ρ
′
=
1.2928
k
g
⋅
m
−
3
匀
速
上
升
的
时
间
t
e
:
测
量
得
到
匀
速
下
降
的
时
间
t
g
:
测
量
得
到
油
滴
的
上
升
电
压
U
′
:
测
量
得
到
\begin{aligned} 相关参数的默认值&:(有不同的需要在代码中进行简单修改)\hspace{5cm}\\ 空气压强&:P=76.0cmHg\\ 修正常数&:b=6.17\times 10^{-6}m\cdot cmHg\\ 粘滞系数&:\eta = 1.83\times10^{-5}kg\cdot m^{-1} \cdot s^{-1}\\ 平行极板间距离&:d=5.00\times 10^{-3}m\\ 匀速上升/下降的距离&:L=1.6mm\\ 重力加速度&:g=9.794m/s^{2}\\ 油的密度&:\rho=981kg\cdot m^{-3}\\ 空气密度&:\rho'=1.2928kg\cdot m^{-3}\\ 匀速上升的时间t_e&:测量得到\\ 匀速下降的时间t_g&:测量得到\\ 油滴的上升电压U'&:测量得到\\ \end{aligned}
相关参数的默认值空气压强修正常数粘滞系数平行极板间距离匀速上升/下降的距离重力加速度油的密度空气密度匀速上升的时间te匀速下降的时间tg油滴的上升电压U′:(有不同的需要在代码中进行简单修改):P=76.0cmHg:b=6.17×10−6m⋅cmHg:η=1.83×10−5kg⋅m−1⋅s−1:d=5.00×10−3m:L=1.6mm:g=9.794m/s2:ρ=981kg⋅m−3:ρ′=1.2928kg⋅m−3:测量得到:测量得到:测量得到
计算代码(python实现):
使用时确保这些相关参数与自己实验的参数设置值相同,不同需要要对数值进行相应修改。
测量次数默认为5次,也可调整。
from decimal import *
import math
getcontext().prec = 24
text_times = 5 # 设置每个油滴上下往返时间的测量次数,默认为5
# 相关参数值(不同的需要修改)
P = Decimal('76') # 空气压强
b = Decimal("6.17e-6") # 修正常数
n = Decimal("1.83e-5") # 粘滞系数
d = Decimal('0.005') # 平行极板间距离
L = Decimal('0.0016') # 匀速上升/下降的距离
g = Decimal('9.794') # 重力加速度
rou = Decimal(918) # 油的密度
rou2 = Decimal('1.2928') # 空气密度
pi = Decimal(str(math.pi)) # 圆周率π
e1 = Decimal("1.6021892e-19") # 理论元电荷值
data_tg = [] # 用于存储下降时间
data_te = [] # 用于存储下降时间
for i in range(1, text_times+ 1 ):
tg = input("输入匀速下降时间:tg" + str(i) + "= ")
data_tg.append(Decimal(tg))
tgp = sum(data_tg)/Decimal(text_times)
print("计算得到的tg平均值:"+str(sum(data_tg)/Decimal(text_times)) )
for i in range(1, text_times+ 1 ):
te = input("输入匀速上升时间:te" + str(i) + "= ")
data_te.append(Decimal(te))
tep = sum(data_te)/Decimal(text_times)
print("计算得到的te平均值:"+str(sum(data_te)/Decimal(text_times)) )
U = input("输入上升电压:U'= ")
U = Decimal(U)
# 计算公式
r = (9*n*L / (2*(rou - rou2)* g * tgp) ) ** Decimal('0.5')
n2 = n/(1+b/(r*P)) # 修正后的粘滞系数
K = ( 18*pi*(n2**Decimal('1.5'))*(L**Decimal('1.5')) / ( (2*g*(rou-rou2))**Decimal('0.5') ) ) * d
q = (K/U) * (1/tgp + 1/tep) * ((1/tgp)**Decimal('0.5'))
N = q/e1
# 结果显示
print("油滴半径:r=",end='');print("%e" % r)
print("r=",end='');print(r)
print("修正后的粘滞系数:n2=",end='');print("%e" % n2)
print("n2=",end='');print(n2)
print("油滴所带的电荷量:q=",end='');print('%e'% q)
print("q=",end='');print(q)
print('q/e:N=',end='');print(N)
input("结束,按任意键继续")
# 这是一组测试数据
# 12.59
# 12.61
# 12.29
# 12.94
# 12.88
# 7.97
# 8.11
# 8.07
# 8.21
# 8.05
# 342
程序中为了保证数据计算的精确性,引入了decimal库。
代码测试:
用代码中的测试数据进行测试:
结果中有两个值,一个是进行了科学计数法表示,一个是原始数据。
有问题欢迎交流指正,如果觉得有用的话还求一个小小的赞(〃‘▽’〃)。
更多推荐
所有评论(0)