Использование range в curve_fit позволяет «x» значению списка (range (x, y)) быть любым числом, но не значением «y» - PullRequest
0 голосов
/ 23 мая 2019

Я использую Curve_Fit для подгонки полинома к моим данным, который имеет 200 индексов.

Вот мой код:

def func3(x, a, b, c, d):    
    return (a)*((x)**3) + (b)*((x)**2) + c*x + d
weight1 = np.ones(len(xdata))
weight1[[list(range(3900,89))]] = 0.01 
popt, pcov = curve_fit(func3, data, ydata, p0=(1, 1, 1, 10), 
sigma=weight1) 
poly = func3(xdata1, popt[0], popt[1], popt[2], popt[3]) 
pl.plot(xdata, poly) 

Теперь, если второе значение диапазона (89) превышает 200 (скажем, 300), я получаю ошибку: IndexError: index 300 is out of bounds for axis 0 with size 199.

Но когда первое значение диапазона - это значение больше 200 (например, 3900 в этом случае), я не получаю сообщение об ошибке.Скорее мои изменения в форме.

Итак, что же на самом деле означает первое значение диапазона?Я думал, что это значение индекса моей точки данных, но, похоже, это не так.

...