不确定polyval如何评估函数

时间:2019-05-16 10:14:37

标签: python numpy

我有一些适合多项式的数据。我的目标是(i)绘制数据和多项式,以及(ii)定义一个函数,用于估计范围内的某些p(x)的{​​{1}}。我都做过,但是我不了解x的工作原理。

根据文档,polyval正在计算numpy.polyval(p,x)。也就是说,p的第0个项对应于多项式的最高阶。

p[0]*x**(N-1) + p[1]*x**(N-2) + ... + p[N-2]*x + p[N-1]

但是,绘制此多项式时

n = 4
p = poly.polyfit(x, y, n)

看起来实际上是在绘制xp = np.linspace(min(x), max(x), 10000) plt.plot(xp, poly.polyval(xp,p), 'r--') 。事实是,该多项式可以正确拟合数据。

因此,在函数中评估多项式时会出现问题:

p[N-1]*x**(N-1) + p[N-2]*x**(N-2) + ... + p[1]*x + p[0]

根据图,它不会返回与def f(x_,y_): F = np.polyval(p,x_) return F 对应的值(以及我知道它是正确的值)。

我在这里想念什么?

注意:在绘制时使用x并不能解决问题。

1 个答案:

答案 0 :(得分:0)

def f(x_,y_):
F = np.polyval(p,x_)
return F
  1. 您没有在f中使用y _

  2. 您正在使用np.polyval和poly.polyval。 np.polyfit和poly.polyfit的系数相同吗? see herehere

也许您应该尝试仅使用np.polyfit和np.polyval而不要混淆