我正在使用SciPy的牛顿优化算法来求解方程式,根据最初的猜测,有时解决方案不会收敛并崩溃。
x = optimize.newton(fun,1/1000)
是否可以打印一条消息而不是python崩溃消息来说明收敛失败或使用不同的初始值重试优化?
disp:bool,可选
[如果为True,如果算法未收敛,则引发RuntimeError,错误消息中包含迭代次数和当前函数值。否则,收敛状态将记录在RootResults返回对象中。如果
x0
不是标量,则忽略。注意:这与显示无关,但是disp
关键字不能重命名以实现向后兼容。
您应该将disp
设置为False
,因为默认情况下它已启用:
optimize.newton(fun, 1/1000, disp=False)
您的结果和其他信息将在RootResults
对象中。