【发布时间】:2014-09-05 16:24:47
【问题描述】:
我正在使用numpy.polynomial.polynomial.Polynomial 类(Numpy 库),以便将fit() 某些数据的方法与多项式函数相匹配。获得的多项式是正确的,我可以绘制它并替换点以获得“y”值,并且我得到正确的响应。问题是Polynomial 类的.coef 属性返回了一组系数,这些系数以某种方式归一化或更改,我看不出如何。我是什么意思?代码如下:
x_vid = array([0.0, 50.0, 75.0, 100.0])
y_vid = array([0.0, 30.0, 55.0, 100.0])
pol = Polynomial.fit(x_vid, y_vid, 5) # The polynomial is OK!!
print pol.coef
.coef 属性返回下一个数组:
30 38.16 17.93 9.98 2.06 1.85
系数按升序排列,因此这些系数表示以下多项式函数:
30 + 38.16x + 17.93x^2 + 9.98x^3 + 2.06x^4 + 1.85x^5
但是,问题来了,如果我从我的值范围 [0-100] 中替换任何值,它将不会返回正确的值,尽管我这样做了例如:
pol(0) → 我会得到一个 0,这没关系,但可以立即看到,在我写的多项式中,它不会在 x=0 处返回 0。
我认为多项式函数可能会被归一化或置换。我可能在这里面临一个数学问题而不是编程问题,但是任何帮助都是非常受欢迎的,因为我需要写下多项式并且我不确定它的正确形式。谢谢。
【问题讨论】:
-
您是否尝试过使用
numpy.polyfit?另外,我没有得到与你相同的系数,我的系数要大两个数量级。 -
感谢@darthbith 这两种方法应该非常相似,无论如何多项式拟合得很好,问题是编写多项式函数的系数。当时出于不同的原因,我已经修正了我除以 100 的两个数量级。
-
我发现
polyfit返回的系数是合理的,并且y截距与polyval(pol, 0)的值匹配。我不知道Polynomial.fit()方法返回的系数是什么
标签: python python-2.7 numpy polynomial-math polynomials