aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjustanothercatgirl <sotov2070@gmail.com>2024-10-10 17:17:34 +0300
committerjustanothercatgirl <sotov2070@gmail.com>2024-10-10 17:17:34 +0300
commit52d8f03d0657df15cf0fc320d03aea76d17ae4f8 (patch)
tree5003cd85d787559e8ac26c3e026eebdacd7377ee
parentb5308c302b3aa0452d24067cf9fb561aabff7fb1 (diff)
formatted output better
-rw-r--r--plots.gp23
-rwxr-xr-xvtek2.py22
2 files changed, 26 insertions, 19 deletions
diff --git a/plots.gp b/plots.gp
index 93cd408..b241801 100644
--- a/plots.gp
+++ b/plots.gp
@@ -1,19 +1,26 @@
+f(x) = a*x+b
+
set term png
-set output 'T2_timer.png'
set grid
+set output 'T2_timer.png'
set xlabel "m, ед."
set ylabel "T^2, c^2"
-plot 'outputT2_timer.data' using 1:2:3 with yerrorbars title "", 'outputT2_timer.data' with line title "T^2(m)"
-set term png
+fit f(x) 'outputT2_timer.data' using 1:2:3 via a,b
+plot 'outputT2_timer.data' using 1:2:3 with yerrorbars title "",\
+ 'outputT2_timer.data' with line title "T^2(m)",\
+ f(x) title "ax+b"
set output 'T2_photo.png'
-set grid
set xlabel "m, ед."
set ylabel "T^2, c^2"
-plot 'outputT2_photo.data' using 1:2:3 with yerrorbars title "", 'outputT2_photo.data' with line title "T^2(m)"
-set term png
+fit f(x) 'outputT2_photo.data' using 1:2:3 via a,b
+plot 'outputT2_photo.data' using 1:2:3 with yerrorbars title "",\
+ 'outputT2_photo.data' with line title "T^2(m)",\
+ f(x) title "ax+b"
set output 'U.png'
-set grid
set xlabel "U, В"
set ylabel "w, 1/c"
set yrange[0:250]
-plot 'outputU.data' using 1:2:3:4 with xyerrorbars title "", 'outputU.data' with line title "w(U)"
+fit f(x) 'outputU.data' using 1:2:3 via a,b
+plot 'outputU.data' using 1:2:3:4 with xyerrorbars title "",\
+ 'outputU.data' with line title "w(U)",\
+ f(x) title "ax+b"
diff --git a/vtek2.py b/vtek2.py
index 055a52d..5f58823 100755
--- a/vtek2.py
+++ b/vtek2.py
@@ -16,6 +16,7 @@ def main():
H_err = float(input())
m0 = int(input('Введите m0 (количество измерений): '))
n = float(input('Введите n (количество колебаний на 1 измерение): '))
+ subj_err = 0.3
print('\n', '-' * 35, "\nОБРАБОТКА С РУЧНЫМИ ЧАСАМИ\n", '-' * 35);
for i in range(m0 + 1):
@@ -23,23 +24,23 @@ def main():
list = [float(input()) for _ in range(3)];
mean = avg(list);
dev = stddev(list);
- mean_err = sqrt(dev * dev + pow(1e-3 * mean, 2));
+ mean_err = sqrt(dev * dev + pow(1e-3 * mean, 2) + subj_err*subj_err);
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}");
+ print(f"avg = {mean}; err = {mean_err}; T = {T} ± {T_err}\nT^2 = {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']}");
+ print(f"A = {res['a']} ± {res['sa']}\nB = {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(f"g = {g} ± {g_err}\nl = {l} ± {l_err}");
print('\n', '-' * 35, "\nОБРАБОТКА С ФОТОДАТЧИКАМИ\n", '-' * 35);
@@ -47,37 +48,36 @@ def main():
print("Введите t, St для N = ", i);
mean = float(input())
dev = float(input())
- print(mean, dev)
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}");
+ print(f"T = {T} ± {T_err}\nT^2 = {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']}");
+ print(f"A = {res['a']} ± {res['sa']}\nB = {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(f"g = {g} ± {g_err}\nl = {l} ± {l_err}");
- print('\n', '-' * 35, "ОБРАБОТКА ВТОРОГО УПРАЖНЕНИЯ\n", '-' * 35);
+ print('\n', '-' * 35, "\nОБРАБОТКА ВТОРОГО УПРАЖНЕНИЯ\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 = float(input('Введите погрешность t_д: '));
omega = 2*PI / tg;
omega_err = omega * tg_err / tg;
omegas.append((U, omega, U_err, omega_err));
- print(f"omega = {omega} +- {omega_err}");
+ print(f"\nomega = {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");