使用fsolve
,我想找到在x
这种f(x)=0
情况下f
由
y=1.
def f(x):
return ((x-y)**2-y**2)**2
正如我们所看到的,该函数具有最小值x=0
,并且对于该值,我们恰好具有f(x=0)=0
。当我尝试用它解决时,fsolve
它会返回一个足够接近零的值,但也会发出警告:
from scipy.optimize import fsolve
y=1
def f(x):
return ((x-y)**2-y**2)**2
print fsolve(f,x0=0.001,xtol=1e-6)
输出是
RuntimeWarning: The iteration is not making good progress, as measured by the
improvement from the last ten iterations.
warnings.warn(msg, RuntimeWarning)
[1.55543489e-16]
所以,结果是令人满意的,但是考虑到它也提供了一个不错的结果,我怎样才能避免警告以及为什么它会返回它呢?