Получите коэффициенты многочлена с помощью Numpy

#numpy #polynomials #coefficients

Вопрос:

Я пытаюсь получить коэффициенты a numpy.polynomial.polynomial.Polynomial , полученные с помощью fit метода:

 import numpy.polynomial as poly

x = [1, 2, 3, 4, 5]
y = [16, 42.25, 81, 132.25, 196]

c = poly.Polynomial.fit(x, y, deg = 2)
print(c(5))
print(c)
 

Эта небольшая программа печатает

 196.00000000000006
poly([81. 90. 25.])
 

что является правильным значением для c(5) , но не для полиномиальных коэффициентов, которые являются 2.25 , 7.5 , и 6.25 .
Как мне получить фактические коэффициенты?

Ответ №1:

Согласно документации, .fit() метод возвращает

Ряд, представляющий наименьшие квадраты, соответствующие данным, и имеющий домен и окно, указанные в вызове. Если коэффициенты для не масштабированных и несмещенных базисных многочленов представляют интерес, выполните new_series.convert().coef.

Работа c.convert().coef с вашими данными приводит к:

array([2.25, 7.5 , 6.25])