2017-01-23 4 views
1

Я использую scipy.optimize.fsolve, чтобы найти корни функции. Проблема в том, что иногда я получаю это предупреждение: RuntimeWarning: Итерация не продвигается, как измеряется улучшением от последних десяти итераций.RuntimeWarning from Fsolve

Я хочу, чтобы решить эту проблему с помощью 2-х методов:

1) увеличение числа итераций, может быть, может решить эту проблему. Но я не знаю, как я могу это сделать.

2) Если программа получает это предупреждение, попробуйте использовать другую функцию. Как я могу это сделать?

ответ

0

1) Это, вероятно, не поможет увеличить число итераций, потому что, как говорится в предупреждении, решение не улучшается очень сильно для каждой итерации. Но вы можете дать максимальное количество оценок, разрешенных для данной функции, с помощью аргумента maxfev.

2) Вы можете попробовать другие методы оптимизации SciPy, но вы можете столкнуться с одной и той же проблемой со всеми из них.

Вы можете попытаться повторно запустить оптимизацию с новой отправной точкой каждый раз, когда вы получите предупреждение. Вы можете позволить коду делать это определенное количество раз, пока оно не получит предупреждение, или оно слишком часто пыталось. Отправной точкой для оптимизации является x0. Вы можете прочитать полную документацию here.

Смежные вопросы