как сделать так чтобы график продолжался при методе наименьших квадратов на python
смотрите,есть такой код,ось перестает чертится когда заканчивается матрица,как сделать так чтобы линия продолжала предугадывать значения
x_train = np.array([1,2,3,4,5])
y_train = np.array([1.1,3.8,6.5,10.2,13.1])
A = np.vstack([x_train**2, x_train, np.ones(len(x_train))]).T
a, b, c = np.linalg.lstsq(A, y_train, rcond=None)[0]
y_sel = np.array([a*x**2 + b*x + c for x in x_train])
print(f"Полученная парабола: {a}x^2 + {b}x + {c}")
plt.scatter(x_train, y_train)
plt.plot(x_train, y_sel, color='red')
plt.xlim([-45, 45])
plt.ylim([0, 75])
plt.ylabel("длина")
plt.xlabel("ширина")
plt.grid(True)
end_time = time.time()
print(end_time - start_time)
plt.show()
а должен так
пожалуйста помогите,буду очень благодарен
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Ну вы же получили коэффициенты для формулы и прямо сама формула у вас уже есть. Осталось вычислить y на тех x, которых у вас ещё нет. Вернее, чтобы линия была непрерывной, начинать нужно с последней точки x, которую вы уже рисовали, т.е. с 5:
x_pred = np.arange(5, 14)
# y_pred = np.array([a*x**2 + b*x + c for x in x_pred])
# запишем эту формулу, которая у вас есть в коде, проще/короче
y_pred = a*x_pred**2 + b*x_pred + c
plt.plot(x_pred, y_pred, color='blue')


