1
我正在使用scipy.optimize.fsolve來查找函數的根。問題是,有時我得到這個警告:RuntimeWarning:迭代沒有取得好的進展,衡量的是從最近十次迭代的改進。Fsolve的RuntimeWarning
我想通過兩種方法來解決這個問題:
1)增加迭代次數也許就可以解決問題。但我不知道我該怎麼做。
2)如果程序得到這個警告,嘗試使用另一個函數。我怎樣才能做到這一點?
我正在使用scipy.optimize.fsolve來查找函數的根。問題是,有時我得到這個警告:RuntimeWarning:迭代沒有取得好的進展,衡量的是從最近十次迭代的改進。Fsolve的RuntimeWarning
我想通過兩種方法來解決這個問題:
1)增加迭代次數也許就可以解決問題。但我不知道我該怎麼做。
2)如果程序得到這個警告,嘗試使用另一個函數。我怎樣才能做到這一點?
1)它可能無助於增加迭代次數,因爲正如警告所說,每次迭代的解決方案都沒有太大改進。但是您可以使用maxfev
參數給出允許給定函數的最大數量的評估。
2)您可以嘗試一些其他SciPy優化方法,但是您可能會遇到同樣的問題。
您可以嘗試的一件事是,每次獲得警告時都要以新的起點重新運行優化。你可以讓代碼執行這個指定的次數,直到它沒有收到警告,或者它經常嘗試。優化的起點由x0
給出。你可以閱讀完整的文檔here。