我正在使用scipy.optimize.fsolve来查找函数的根。问题是,有时我会收到这样的警告: RuntimeWarning:从过去十次迭代的改进来看,迭代进展不是很好。
我想用两种方法来解决这个问题:
1)增加迭代次数也许可以解决这个问题。但我不知道该如何做到这一点。
2)如果程序收到此警告,请尝试使用其他函数。我该怎么做呢?
发布于 2017-01-24 01:19:50
1)这可能无助于增加迭代次数,因为正如警告所说的那样,解决方案在每次迭代中都没有太大的改进。但是您可以使用maxfev参数给出给定函数允许的最大求值次数。
2)你可以尝试一些其他的SciPy优化方法,但是你可能会遇到同样的问题。
您可以尝试的一件事是,每次收到警告时,使用新的起点重新运行优化。您可以让代码执行给定的次数,直到它没有收到警告,或者它已经尝试了太多次。x0给出了优化的起点。您可以阅读完整的文档here。
https://stackoverflow.com/questions/41801917
复制相似问题