numpy polyfit的奇怪结果

时间:2017-11-18 21:13:59

标签: python-3.x numpy

我很奇怪(从我的观点来看)numpy polyfit的结果。我的代码:

import numpy as np
data=np.array([2482.9, 2483.0, 2485.9, 2486.0, 2486.4, 2485.1, 2485.4, 2484.9, 2484.8, 2484.8, 2484.8, 2484.0, 2484.1, 2484.1, 2484.1])
wr = range(len(data))
poly  = np.polyfit(wr , data, deg = 2)
wp  = np.poly1d(poly)
el = 2484.1
res = wp(el)
print(res)
#result -225256.888955

这是一个错误吗?

1 个答案:

答案 0 :(得分:1)

正如@DSM已经说过的那样 - 它看起来不像二次多项式。

我们可以尝试以更高的程度来适应它:

import numpy.polynomial.polynomial as poly
x = wr; y = data

coefs = poly.polyfit(x, y, 4)
ffit = poly.Polynomial(coefs)

plt.plot(x, y)
plt.plot(x, ffit(x))
plt.legend(['y(x)','ffit(x)'])

结果:

enter image description here