使用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)
有点惊讶为什么我看到订单2的扭结(polyfit(x,y,2)
答案 0 :(得分:2)
您的polyfit
没有任何问题,但您只使用3个点来绘制得到的二阶多项式。难怪它看起来像那样。只需使用linspace
生成几个点。只需替换
xs = np.array([-14.35, -9.35 , 0.65])
与
xs = np.linspace(min(x), max(x), 200)
结果: