import numpy as np
import matplotlib.pyplot as plt
# Данные (вариант 2)
x = np.array([
0.1, 0.2, 0.3, 0.4, 0.5,
0.6, 0.7, 0.8, 0.9, 1.0,
1.1, 1.2, 1.3, 1.4, 1.5,
1.6, 1.7, 1.8, 1.9, 2.0
])
y = np.array([
2.09, 2.05, 2.19, 2.18, 2.17,
2.27, 2.58, 2.73, 2.82, 3.04,
3.03, 3.45, 3.62, 3.85, 4.19,
4.45, 4.89, 5.06, 5.63, 5.91
])
# Аппроксимация квадратным многочленом (ax^2 + bx + c)
coeffs = np.polyfit(x, y, 2)
a, b, c = coeffs
print(f"a = {a}")
print(f"b = {b}")
print(f"c = {c}")
# Построение аппроксимирующей функции
x_fit = np.linspace(min(x), max(x), 100)
y_fit = a * x_fit**2 + b * x_fit + c
# График
plt.scatter(x, y, label="Исходные точки")
plt.plot(x_fit, y_fit, label="Аппроксимация")
plt.legend()
plt.xlabel("x")
plt.ylabel("y")
plt.title("МНК аппроксимация (вариант 2)")
plt.grid()
plt.show()