numpy polyval输出y的大小与输入x的大小不同

时间:2018-10-05 17:10:28

标签: python numpy

我正在尝试计算总误差的平方。给定polyval多项式的系数和要对其进行评估的 n 个点,我期望输出值等于 n 。但是,如果您运行下面的代码,则输出值小于输入的 x 大小。我是numpy的新手,我们将不胜感激。

import numpy as np
from numpy.polynomial.polynomial import polyval

x = [ 0.1,0.4,0.5,0.7,0.7,0.9 ]
y = [ 0.61,0.92,0.99,1.52,1.47,2.03]
n = len(x)-1

x = np.array(x)
y = np.array(y)

for m in range(0,n):

    coef = np.array([])
    A = np.vander(x,x.size)
    A = A[:,n-m-1:n]
    print(A)
    b = np.transpose(y)
    c = np.linalg.lstsq(A,b)

    for temp in range(0,c[2]):
        coef = np.append(coef, c[0][temp])

    print(coef)
    print(x)
    yy = polyval(coef,x)
    print(yy)
    #E = sum(((y-yy)**2))

所需的输出为:
1次迭代。
c =    1.76456    0.28616

x =    0.10000 0.40000 0.50000 0.70000 0.70000 0.90000

yy =    0.46262 0.99198 1.16844 1.52135 1.52135 1.87426

2个迭代。
c =    1.729547    0.059092    0.587116

x =    0.10000 0.40000 0.50000 0.70000 0.70000 0.90000

yy =    0.61032 0.88748 1.04905 1.47596 1.47596 2.04123

一直持续到6 ......

1 个答案:

答案 0 :(得分:1)

numpy.polynomial.polynomial.polyvalnumpy.polyval的功能不同。这两个函数的多项式和x参数是相反的,并且当您将系数用作多项式参数时,这两个函数的系数顺序具有相反的约定。