1

使用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]

所以,结果是令人满意的,但是考虑到它也提供了一个不错的结果,我怎样才能避免警告以及为什么它会返回它呢?

4

0 回答 0