小编use*_*127的帖子

xtol 和 ftol 使用 scipy.optimize 的 fmin() 有什么区别?

我开始在一个非常简单的例子中使用函数 fmin 并尝试获取最小化乘法值的向量的值:

def prueba(x,y):
    print "valor1:",x[0],"\n"
    print "valor2:",x[1],"\n"
    print "valor3:",x[2],"\n"
    print "valor4:",x[3],"\n"
    min=x[0]*x[1]*x[2]*x[3]
    print min
    return min

sal = fmin(prueba,x0=array([1, 2, 3,4]),args="1",retall=1,xtol=0.5,ftol=0.5)#maxfun=1,maxiter=1,retall=1,args="1")
Run Code Online (Sandbox Code Playgroud)

但如果我不定义 xtol 和 ftol 出现:

"Warning: Maximum number of function evaluations has been exceeded."
Run Code Online (Sandbox Code Playgroud)

出于这个原因,我使用参数xtol和定义了算法的收敛性ftol,但我仍然不明白它们之间有什么区别,我看起来是一样的,但是如果我删除两者之一,我会再次收到警告。

xtolftol?到底有什么区别,在这种情况下应该使用哪个?。

我已阅读文档:

其他参数

xtol :
收敛的 xopt 中可接受的相对误差数。
ftol :
func(xopt) 中可接受的收敛相对误差的数量。

我还是不明白

scipy

4
推荐指数
1
解决办法
9620
查看次数

标签 统计

scipy ×1