<jupyter_start><jupyter_text>_____Подгон (предсказываем по данным h2_phi с чужой устнановки четвёртое значение в h1_phi - на нашей установке)<jupyter_code>plt.plot(h1_phi - h2_phi[:3], h2_phi[:3]) 
plt.show()<jupyter_output><empty_output><jupyter_text>Типа линия, типа прямая<jupyter_code>from sklearn.linear_model import LinearRegression
LR = LinearRegression() 
LR.fit(h2_phi[:3].reshape(3, 1), (h1_phi - h2_phi[:3]).reshape(3, 1))
h1_phi_4_predicted_delta = LR.predict([[h2_phi[3]]])
h1_phi_4_predicted = h2_phi[3] + h1_phi_4_predicted_delta
h1_phi_4_predicted  # приблизили разность оптимальной кривой, спрогнозировали
h1_phi_new = np.array(list(h1_phi) + [h1_phi_4_predicted])
h1_phi_new<jupyter_output><empty_output><jupyter_text>________________________<jupyter_code>len(ne_phi), len(ne_lambda)
len(hg_phi), len(hg_lambda)
X = np.hstack([ne_phi, hg_phi])
y = np.hstack([ne_lambda, hg_lambda])
f = interp1d(X, y, kind='quadratic')
plt.figure(figsize=(15, 15))
plt.plot(ne_phi, ne_lambda)
plt.scatter(ne_phi, ne_lambda)

plt.plot(hg_phi, hg_lambda)
plt.scatter(hg_phi, hg_lambda)

#plt.plot(h1_phi, h1_lambda)
#plt.scatter(h1_phi, h1_lambda)

grid = np.linspace(X.min(), X.max(), 1000)
plt.plot(grid, f(grid), color="red")

plt.grid()
plt.show()
plt.figure(figsize=(15, 15))
plt.scatter(ne_phi, ne_lambda, marker="+", s=200, label="Неон", color="black")
plt.scatter(hg_phi, hg_lambda, marker="x", s=200, label="Ртуть", color="black")
plt.scatter(h1_phi_new, f(h1_phi_new), marker=4, s=150, label="Водород", color="black")
plt.scatter(h1_phi_new, f(h1_phi_new+2), marker=4, s=150, label="Водород", color="black")
plt.scatter(h1_phi_new, f(h1_phi_new-2), marker=4, s=150, label="Водород", color="black")
grid = np.linspace(X.min(), X.max(), 1000)
plt.plot(grid, f(grid), color="red", label="Интерполяционная кривая", lw=2)
plt.xlabel("Углы", fontsize=15)
plt.ylabel("$\lambda$", fontsize=15)
plt.legend()

xticklocs =  np.linspace(X.min(), X.max(), 20)
yticklocs =  np.linspace(y.min(), y.max(), 20)

plt.xticks(xticklocs)
plt.yticks(yticklocs)
plt.grid(lw=2)
plt.savefig(fname="2.2_Hydrogen_Spectre.pdf", dpi=900, format="pdf", papertype="a4")
plt.savefig(fname="2.2_Hydrogen_Spectre.png", format="png")
plt.show()
h_lambda_predicted_lo = f(h1_phi_new - delta_phi)  # интервал для погрешностей 
h_lambda_predicted_hi = f(h1_phi_new + delta_phi)
h_lambda_predicted = (h_lambda_predicted_lo + h_lambda_predicted_hi) / 2
for i in range(4):
    error = (h_lambda_predicted_hi[i] - h_lambda_predicted_lo[i]) / 2
    print("h_lambda_{} = ".format(i+3), labwork.sciRoundD(h_lambda_predicted[i],
                      error,
                      "Ангстрем"
                      ))
    """labwork.sciPrintD(h_lambda_predicted[i],
                      error,
                      "h_lambda_{} = ".format(i+3))"""
    h_lambda_predicted, (h_lambda_predicted_hi - h_lambda_predicted_lo) / 2<jupyter_output>h_lambda_3 =  6569 ± 13 [Ангстрем] (0.2%)
h_lambda_4 =  4867 ± 4 [Ангстрем] (0.09%)
h_lambda_5 =  4341 ± 3 [Ангстрем] (0.06%)
h_lambda_6 =  4100 ± 2 [Ангстрем] (0.05%)<jupyter_text>$$\frac{1}{\lambda} = R Z^2 (\frac{1}{n^2} - \frac{1}{m^2})$$ $$R = \frac{(nm)^2}{\lambda Z^2 (m^2 - n^2)}$$<jupyter_code>n =  2
R = np.array([((n*m)**2) / (h_lambda_predicted[m-3] * (m*m - n*n))for m in range(3, 7)])
R  # теория: R = 109 677,6 см ^ (-1)
R.mean() # длины волн были в ангстремах -> нужно умножить на 10^10
R.mean() * 10 ** 10  # это в м ^ (-1)
R_predicted = R.mean() * 10 ** 8  # это в cм ^ (-1)
R_predicted
R  * 10 ** 8 # теория: R = 109 677,6 см ^ (-1)
labwork.sciPrintR(R_predicted , R.std(ddof=1) / (4)**0.5 / R.mean(), "R = ")  # с погрешностью
print("R = ", labwork.sciRoundR(R_predicted , R.std(ddof=1) / (4)**0.5 / R.mean(), "см ^ (-1) "))
R_theory = 109677.6
(R_theory - R_predicted) / R_theory  # отличие от теории, доля<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.18165327805130863, 'fraction_numerical': 0.05312257061414875, 'mean_word_length': 5.156299840510367, 'pattern_counts': {'":': 0, '<': 16, '<?xml version=': 0, '>': 17, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '4', 'dir': 'jupyter-structured-clean-dedup', 'id': '452700', 'license': 'BSD-3-Clause', 'n_tokens_mistral': 1883, 'n_tokens_neox': 1783, 'n_words': 288, 'path': 'labs/2.2_Hydrogen_Spectre.ipynb', 'repo_name': 'shevkunov/workout', 'size': '3859'}