fminsearch
算法fminsearch
使用内尔德-Mead单纯算法如Lagarias等人描述。[57]。该算法采用的单ñ+ 1分ñ维向量X。该算法首先围绕可初步推测单面X0通过加入5%的各成分的X0(一世) 至X0,并利用这些ñ向量作为除了单纯形的元件X0。(它使用0.00025作为组分一世如果X0(一世)= 0。)然后,单面反复根据以下过程中的算法修改。
为关键字fminsearch
迭代显示出现在胆大后的步骤的描述。
让X(一世)表示在当前的单点列表,一世= 1,...,ñ+1。
从最低的函数值的单订购点F(X(1))到最高F(X(ñ+1))。在迭代的每一步,算法丢弃当前最坏点X(ñ1),并接受另一个点到单工。[或者,在步骤7以下的情况下,它改变所有ñ与上述的值分F(X(1))]。
生成反射的点
[R= 2米-X(ñ+1),
哪里
米=ΣX(一世)/ñ,一世= 1 ...ñ,
并计算F([R)。
如果F(X(1))≤F([R)<F(X(ñ)),接受[R并终止本次迭代。反映
如果F([R)<F(X(1)),计算出扩张点小号
小号=米+ 2(米-X(ñ+1)),
并计算F(小号)。
如果F(小号)<F([R),接受小号并终止迭代。扩大
否则,请接受[R并终止迭代。反映
如果F([R)≥F(X(ñ)),执行收缩之间米和更好X(ñ+1)和[R:
如果F([R)<F(X(ñ+1))(即,[R优于X(ñ1)),计算
C=米+([R-米)/ 2
并计算F(C)。如果F(C)<F([R)接受C并终止迭代。合同外否则,继续步骤7(收缩)。
如果F([R)≥F(X(ñ+1)), 计算
CC=米+(X(ñ+1) -米)/ 2
并计算F(CC)。如果F(CC)<F(X(ñ+1))接受CC并终止迭代。合同内否则,继续步骤7(收缩)。
计算ñ点
v(一世)=X(1)+(X(一世) -X(1))/ 2
并计算F(v(一世)),一世= 2,...,ñ+1。下一轮迭代的单纯是X(1),v(2),...,v(ñ+1)。收缩
下图显示了这点fminsearch
可以计算的步骤,每一个可能的新单一起。原来单纯有一个大胆的轮廓。该迭代过程,直到他们满足停止准则。