Кусковой поливалентный вывод y имеет другой размер, чем ввод x - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь вычислить квадрат общей ошибки.Учитывая 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.400000.50000 0.70000 0.70000 0.90000

гг = 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.500 0.700 0,000000001022 *

гг = 0,61032 0,88748 1,04905 1,47596 1,47596 2,04123

и продолжается до 6 ....

1 Ответ

0 голосов
/ 06 октября 2018

numpy.polynomial.polynomial.polyval не является той же функцией, что и numpy.polyval.Обе функции имеют полиномиальный и x аргументы обратные, и когда вы используете коэффициенты в качестве полиномиального аргумента, две функции имеют противоположные соглашения для порядка коэффициентов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...