【发布时间】:2013-04-26 05:04:26
【问题描述】:
我开始用一个非常简单的例子来使用函数 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")
但如果我不定义 xtol 和 ftol 出现:
"Warning: Maximum number of function evaluations has been exceeded."
出于这个原因,我使用参数xtol和ftol定义了算法的收敛性,但我仍然不明白它们之间有什么区别,我看起来一样,但是如果我删除其中一个这两个我再次收到警告。
xtol 和ftol 到底有什么区别?在这种情况下应该使用哪个?
我已阅读文档:
其他参数
xtol : 数字
xopt 中可接受的收敛相对误差。
ftol : 号码
func(xopt) 中可接受的收敛相对误差。
还是不明白
【问题讨论】:
标签: scipy