我正在使用scipy.optimize.fsolve来查找函数的根。问题是,有时候我会收到这样的警告:RuntimeWarning:迭代没有取得良好的进展,这可以通过过去十次迭代的改进来衡量。
我想用2种方法解决这个问题:
1)增加迭代次数可能可以解决问题。但我不知道怎么能这样做。
2)如果程序收到此警告,请尝试使用其他功能。我怎么能这样做?
答案 0 :(得分:0)
1)它可能无助于增加迭代次数,因为正如警告所说,解决方案对于每次迭代都没有太大的改进。但是,您可以使用maxfev
参数给出给定函数允许的最大评估数。
2)你可以尝试一些其他的SciPy优化方法,但是你可以在所有这些方法中遇到同样的问题。
您可以尝试的是,每次收到警告时,都会使用新的起点重新运行优化。您可以让代码执行此操作一定次数,直到它没有收到警告,或者它经常尝试。优化的起点由x0
给出。您可以阅读完整的文档here。