密里根油滴仪器测电子电荷实验(matplotlib)

 还是用matplotlib来做图,上源代码,可以直接用(改原始数据时记得改标注)

import numpy as np
import matplotlib.pyplot as plt


# 原始数据
U = [137, 192, 137, 211, 160, 180, 136, 122, 200, 134]
y1 = [8.60, 8.91, 8.57]
y2 = [20.61, 19.68, 19.96]
y3 = [16.97, 16.78, 16.89]
y4 = [33.51, 32.69, 33.10]
y5 = [6.74, 6.97, 6.77]
y6 = [16.37, 16.32, 16.33]
y7 = [14.42, 14.35, 14.39]
y8 = [4.50, 4.56, 4.55]
y9 = [5.74, 5.69, 5.71]
y10 = [7.46, 7.23, 7.38]
y = [y1, y2, y3, y4, y5, y6, y7, y8, y9, y10]

rou = 983.5
g = 9.797
n = 1.83*10**-5
b = 6.17*10**-6
p = 76
d = 5*10**-3
l = 5*0.25*10**-3


# 代入公式
def f(t, u):
    s = 0.0

    for i in t:
        s += i
    t_a = s/len(t)

    v = l / t_a
    r = (9 * n * v / 2 * rou * g) ** (1 / 2)

    q = (18*np.pi / (2*rou*g)**(1/2) ) * (n*l / t_a*(1 + b/p*r) )**(3/2) * (d / u)

    return round(q, 22)

Q = []
for i in range(10):
    Q.append(f(y[i], U[i]))

print(Q)
Q.pop(7)
Q.pop(7)
Q1 = Q
print("剔除第8,第9组数据")
Q.sort()
print(Q)

x = [1, 2, 3, 4, 5, 11, 14, 15]

# 作图
plt.style.use('grayscale')
plt.figure(figsize=(10, 6))
ax1 = plt.subplot(111)
plt.grid(True)

plt.xlim(0, 17)
plt.xticks(np.linspace(0, 17, 18))
values = ['n4', 'n2', 'n6', 'n3', 'n7', 'n1', 'n5', 'n10']
for i in range(len(x)):
    plt.text(x=x[i], y=0.15e-19, s=values[i])

plt.ylim(0, 3e-18)
plt.yticks(Q)

plt.twinx()
plt.ylim(0, 3e-18)
plt.yticks(Q1, ['q4', 'q2', 'q6', 'q3', 'q7', 'q1', 'q5', 'q10'])


plt.plot([0, 17], [0, 17*Q[0]], 'b')
plt.scatter(x, Q, s=8)

plt.show()

# 数据处理
e = []
s = 0.0
for i in range(len(x)):
    e.append(round(Q[i]/x[i], 22))
    s += round(Q[i]/x[i], 22)
av = round(s/len(e), 22)
print('e = {}'.format(e))
print("e(average) = {}".format(av))
d = (av - 1.602e-19)/1.602e-19
print("相对误差:{}%".format(round(d*100), 5))

# 计算标准差
values = e
n = len(values)
av = np.average(values)

sqd = 0.0

for i in values:
    sqd += (i - av) ** 2

Ua = np.sqrt(sqd / (n*(n-1)))

print("n = {}\nS = {}".format(n, Ua))

运行结果 

作图结果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值