2014-01-16 26 views
1

没有关于fmin-powell的direc参数应该如何输入的信息。所有fmin_powell的SciPy的文件说是Scipy.opimize.fmin_powell直接参数语法

直销:ndarray,可选

初始方向设置。

我认为通过给予direc=(0.1,0.1,1),我告诉它开始以0.1前两个拟合参数和1个用于第三,它们需要在我的情况下的步长大小,因为第三参数是不敏感步长为0.1。但是,对于所有拟合参数,使用此代码时,它将从0.1开始。如果我尝试使用direc=(1,0.1,1),则对所有破坏拟合的参数使用初始步骤1,因为第二个参数的范围为(0,1),并且如果它变为负数,则会导致零除。你应该如何设定这个论点?

回答

0

显然希望矢量集,所以direc=([1,0,0],[0,0.1,0],[0,0,1])将做这项工作。但是,如何安排和运作仍然不清楚,所以不确定如果这些零点中的某些变化会发生什么。

1

对于鲍威尔最小化,方向向量的初始集不需要与轴对齐(尽管通常是这样)。算法运行时,它将方向矢量更新为任何方向最好的方向,以便快速下坡。

但是,想象一下你的函数定义的曲面在起点附近几乎都是平坦的情况。除了在一个特定的方向(不与任何轴线对齐)之外,还有一条狭窄的沟谷,它迅速向下迅速下降到功能最小值。在这种情况下,将gulley的方向作为初始方向矢量之一可能会有所帮助。否则,可以想象,算法可能需要一段时间才能找到开始移动的良好方向。