scipy.optimize_curvefit дает плохие результаты

Размещение new также очень полезно при сериализации (скажем, с boost :: serialization). В 10 лет c ++ это только второй случай, когда мне нужно новое место для размещения (третий, если вы включаете интервью :)).

1
задан iclickbuttons 17 January 2019 в 18:49
поделиться

1 ответ

Все, что вам нужно сделать, это пройти границы в curve_fit. Когда границы не определены, вы можете выполнять нереальные операции, такие как (в вашем случае) возведение в степень с плавающей точкой отрицательного числа.

Границы просто определяются как списки из двух списков / кортежей с нижними и верхними границами:

bounds = [(-np.inf, 0, 0, 0), [np.inf, np.inf, 1, 1]]   #upper np.inf or lower -np.inf means no bound
popt, pcov = curve_fit(carreaulaw, gamma, eta, p0=[8000, 3000, 0.8, 0.1], bounds=bounds)

Вывод:

enter image description here

0
ответ дан Mstaino 17 January 2019 в 18:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: