Automation_of_physics_exper.../main.py

57 lines
1.0 KiB
Python
Raw Normal View History

2023-02-19 18:34:47 +03:00
from matplotlib import pyplot as plt
import numpy as np
fig = plt.figure(figsize=(7, 4))
plt.grid(linestyle='--')
plt.xlabel('m', fontsize=15)
plt.ylabel('r^2, mm^2', fontsize=15)
r = [9, 15, 19, 23, 26.5]
r2 = [9, 12, 17, 20.5, 23.5]
r3 = []
err = [3, 3, 2, 2, 2, 2, 1.5, 1.5, 1.5, 1.5]
for i in range(5):
r3.append(r[i]**2)
r3.append(r2[i]**2)
for i in range(10):
print(r3[i])
err2 = []
for i in range(10):
err2.append(2*np.sqrt(r3[i])*err[i])
print(err2)
m = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
plt.errorbar(m, r3, xerr=0, yerr=err2, fmt='o', linewidth=1)
def MNK(m, r2):
#r2 = r**2
up = 0
down = 0
up2 = 0
down2 = 0
for i in range(10):
up+=m[i]*r2[i]
down+=m[i]**2
up2+=r2[i]**2
down2+=m[i]**2
k=up/down
print(k, 1/np.sqrt(10)*np.sqrt(up2/down2-k**2))
MNK(m, r3)
x = np.linspace(1, 5, 10)
y = 117.45*x
plt.plot(x, y, linewidth=2, label='k = 117$\pm 5$')
plt.title('МНК приближение')
plt.legend(loc='upper center', fontsize=15)
plt.show()