2014-01-16 24 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的方向作爲初始方向矢量之一可能會有所幫助。否則,可以想象,算法可能需要一段時間才能找到開始移動的良好方向。