在polyfit扭结..不知道为什么

时间:2014-05-17 19:40:32

标签: python numpy curve-fitting polynomials

使用np.polyfit并且在订购时观察到以下扭结2.如果我订购1,那么一切似乎都很好。

这是代码。

import numpy as np
import matplotlib.pyplot as plt

x = [-14.35,  -9.35,   0.65, -14.35  ,-9.35,   0.65] 
y = [ 0.10172312,  0.08831127,  0.07764486,  0.11606595 , 0.10447722,  0.1000171 ]

coeffs = np.polyfit(x, y, 2)
poly = np.poly1d(coeffs)

fig = plt.figure()
xs = np.array([-14.35,  -9.35 ,  0.65])
ys = poly(xs) 
plt.plot(x, y, 'o')
plt.plot(xs, ys)

This is what i see with order 2

This is what i see with order 1

有点惊讶为什么我看到订单2的扭结(polyfit(x,y,2)

1 个答案:

答案 0 :(得分:2)

您的polyfit没有任何问题,但您只使用3个点来绘制得到的二阶多项式。难怪它看起来像那样。只需使用linspace生成几个点。只需替换

xs = np.array([-14.35,  -9.35 ,  0.65])

xs = np.linspace(min(x), max(x), 200)

结果:

enter image description here