Python fsolve在求解简单代数方程时返回不必要的警告

Python fsolve在求解简单代数方程时返回不必要的警告,python,scipy,scipy-optimize,Python,Scipy,Scipy Optimize,使用fsolve,我想找到x,在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

使用
fsolve
,我想找到
x
,在
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]


因此,结果是令人满意的,但是考虑到它也提供了一个不错的结果,我如何避免警告?为什么它会返回警告?

警告是什么?运行时警告:从过去十次迭代的改进来看,迭代没有取得好的进展。警告。警告(MSG,RunTimeAdvices)@ 3SM1R,包括问题中的警告。如果您真的对挖掘感兴趣,您可以考虑查看源代码,AT和警告是什么?运行时警告:迭代没有取得良好的进展,如从过去十次迭代的改进来衡量的。警告。警告(MSG,RunTimeAdvices)@ 3SM1R,包括问题中的警告。如果您真的对挖掘感兴趣,您可以考虑查看源代码,AT和