Загрузка данных


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()