2017-01-23 68 views
1

我正在使用scipy.optimize.fsolve來查找函數的根。問題是,有時我得到這個警告:RuntimeWarning:迭代沒有取得好的進展,衡量的是從最近十次迭代的改進。Fsolve的RuntimeWarning

我想通過兩種方法來解決這個問題:

1)增加迭代次數也許就可以解決問題。但我不知道我該怎麼做。

2)如果程序得到這個警告,嘗試使用另一個函數。我怎樣才能做到這一點?

回答

0

1)它可能無助於增加迭代次數,因爲正如警告所說,每次迭代的解決方案都沒有太大改進。但是您可以使用maxfev參數給出允許給定函數的最大數量的評估。

2)您可以嘗試一些其他SciPy優化方法,但是您可能會遇到同樣的問題。

您可以嘗試的一件事是,每次獲得警告時都要以新的起點重新運行優化。你可以讓代碼執行這個指定的次數,直到它沒有收到警告,或者它經常嘗試。優化的起點由x0給出。你可以閱讀完整的文檔here