From 5c17cf027a782ddcbac70039e3c41b7adc8adbea Mon Sep 17 00:00:00 2001 From: justanothercatgirl Date: Thu, 10 Oct 2024 08:30:19 +0300 Subject: initial commit --- vtek2.py | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100755 vtek2.py (limited to 'vtek2.py') diff --git a/vtek2.py b/vtek2.py new file mode 100755 index 0000000..4350159 --- /dev/null +++ b/vtek2.py @@ -0,0 +1,93 @@ +#!/home/main/coding/py/venv/bin/python3 + +from prak2 import * +from math import pow, sqrt + + +PI = 3.141592657 # ;) + +def main(): + timer = []; + photo = []; + Ns = []; + Tsqs = []; + STsqs = []; + H = float(input('Введите H и погрешность H')) + H_err = float(input()) + m0 = float(input('Введите m0 (количество измерений) ')) + n = float(input('Введите n (количество колебаний на 1 измерение) ')) + + print('\n', '-' * 35, "\nОБРАБОТКА С РУЧНЫМИ ЧАСАМИ\n", '-' * 35); + for i in range(10): + print("введите t_1, t_2, t_3 для N = ", i); + list = [float(input()) for _ in range(3)]; + mean = avg(list); + dev = stddev(list); + mean_err = sqrt(dev * dev + pow(1e-3 * mean, 2)); + T = mean / n; + T_err = mean_err / n; + tsq = T * T; + tsq_err = 2 * T * T_err; + timer.append((i, tsq, tsq_err)); + print(f"avg = {mean}; err = {mean_err}; T = {T} +- {T_err}\nTsq = {tsq} +- {tsq_err}"); + Ns = np.array([i[0] for i in timer]); + Tsqs = np.array([i[1] for i in timer]); + STsqs = np.array([i[2] for i in timer]); + res = mnk(Ns, Tsqs, STsqs); + print(f"A = {res['a']} +- {res['sa']}; B = {res['b']} +- {res['sb']}"); + g = 4 * PI * PI * H / res['a'] / m0; + g_err = g * sqrt(pow(res['sa'] / res['a'], 2) + pow(H_err / H, 2)); + l = res['b'] * g / 4 / PI / PI; + l_err = l * sqrt(pow(res['sb'] / res['b'], 2) + pow(g_err/g , 2)); + print(f"g = {g} +- {g_err}; l = {l} +- {l_err}"); + + + print('\n', '-' * 35, "\nОБРАБОТКА С ФОТОДАТЧИКАМИ\n", '-' * 35); + for i in range(10): + print("Введите t, St для N = ", i); + mean = float(input()) + dev = 0.0001 # НАГЛО ПОДОГНАТЬ!!! + mean_err = sqrt(dev * dev + pow(1e-3 * mean, 2)); + T = 2 * mean; + T_err = 2 * mean_err; + tsq = T * T; + tsq_err = 2 * T * T_err; + photo.append((i, tsq, tsq_err)); + print(f"T = {T} +- {T_err}\nTsq = {tsq} +- {tsq_err}"); + Ns = np.array([i[0] for i in photo]); + Tsqs = np.array([i[1] for i in photo]); + STsqs = np.array([i[2] for i in photo]); + res = mnk(Ns, Tsqs, STsqs); + print(f"A = {res['a']} +- {res['sa']}; B = {res['b']} +- {res['sb']}"); + g = 4 * PI * PI * H / res['a'] / m0; + g_err = g * sqrt(pow(res['sa'] / res['a'], 2) + pow(H_err / H, 2)); + l = res['b'] * g / 4 / PI / PI; + l_err = l * sqrt(pow(res['sb'] / res['b'], 2) + pow(g_err/g , 2)); + print(f"g = {g} +- {g_err}; l = {l} +- {l_err}"); + + print('\n', '-' * 35, "ОБРАБОТКА ВТОРОГО УПРАЖНЕНИЯ\n", '-' * 35); + omegas = []; + Us = [0.3 * (i+1) for i in range(6)]; + U_errs = [0.003 * i + 0.002 for i in Us]; + U_errs[0] -= 0.0015; + for U, U_err in zip(Us, U_errs): + tg = float(input('Введите t_д: ')); + # tg_err = float(input('Введите погрешность t_д')); + tg_err = 0.0001 + omega = 2*PI / tg; + omega_err = omega * tg_err / tg; + omegas.append((U, omega, U_err, omega_err)); + print(f"omega = {omega} +- {omega_err}"); + with open("outputU.data", "w+") as f: + for a, b, c, d in omegas: + f.write(f"{a} {b} {c} {d}\n"); + with open("outputT2_timer.data", "w+") as f: + for a, b, c in timer: + f.write(f"{a} {b} {c}\n") + with open("outputT2_photo.data", "w+") as f: + for a, b, c in photo: + f.write(f"{a} {b} {c}\n") + + +if __name__ == "__main__": main(); + -- cgit v1.2.3-70-g09d2