import numpy as np
import matplotlib.pyplot as plt
# 1. Собственные экспериментальные данные
x = np.array([0, 1, 2, 3, 4, 5])
y = np.array([2.1, 2.9, 4.2, 4.8, 5.1, 5.8])
# 2. Поиск коэффициентов МНК для полиномов 1, 2 и 3 степени
p1 = np.polyfit(x, y, 1) # Линейная зависимость (прямая)
p2 = np.polyfit(x, y, 2) # Квадратичная (парабола)
p3 = np.polyfit(x, y, 3) # Кубическая парабола
# Создание функций для построения графика
f1 = np.poly1d(p1)
f2 = np.poly1d(p2)
f3 = np.poly1d(p3)
# 3. Визуализация
x_plot = np.linspace(-1, 6, 100)
plt.scatter(x, y, label='Экспериментальные точки', color='black', zorder=5)
plt.plot(x_plot, f1(x_plot), label='Полином 1 степени', color='blue')
plt.plot(x_plot, f2(x_plot), label='Полином 2 степени', color='green')
plt.plot(x_plot, f3(x_plot), label='Полином 3 степени', color='red')
plt.legend()
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Экстраполяция полиномами (МНК)')
plt.grid(True)
plt.show()
print(f"Коэффициенты (1 ст.): {p1}")
print(f"Коэффициенты (2 ст.): {p2}")