fminsearch算法

fminsearch使用内尔德-Mead单纯算法如Lagarias等人描述。[57]。该算法采用的单ñ+ 1分ñ维向量X。该算法首先围绕可初步推测单面X0通过加入5%的各成分的X0一世) 至X0,并利用这些ñ向量作为除了单纯形的元件X0。(它使用0.00025作为组分一世如果X0一世)= 0。)然后,单面反复根据以下过程中的算法修改。

注意

为关键字fminsearch迭代显示出现在胆大后的步骤的描述。

  1. X一世)表示在当前的单点列表,一世= 1,...,ñ+1。

  2. 从最低的函数值的单订购点FX(1))到最高FXñ+1))。在迭代的每一步,算法丢弃当前最坏点Xñ1),并接受另一个点到单工。[或者,在步骤7以下的情况下,它改变所有ñ与上述的值分FX(1))]。

  3. 生成反射的

    [R= 2-Xñ+1),

    哪里

    X一世)/ñ一世= 1 ...ñ

    并计算F[R)。

  4. 如果FX(1))≤F[R)<FXñ)),接受[R并终止本次迭代。反映

  5. 如果F[R)<FX(1)),计算出扩张点小号

    小号=+ 2(-Xñ+1)),

    并计算F小号)。

    1. 如果F小号)<F[R),接受小号并终止迭代。扩大

    2. 否则,请接受[R并终止迭代。反映

  6. 如果F[R)≥FXñ)),执行收缩之间和更好Xñ+1)和[R

    1. 如果F[R)<FXñ+1))(即,[R优于Xñ1)),计算

      C=+([R-)/ 2

      并计算FC)。如果FC)<F[R接受C并终止迭代。合同外否则,继续步骤7(收缩)。

    2. 如果F[R)≥FXñ+1)), 计算

      CC=+(Xñ+1) -)/ 2

      并计算FCC)。如果FCC)<FXñ+1))接受CC并终止迭代。合同内否则,继续步骤7(收缩)。

  7. 计算ñ

    v一世)=X(1)+(X一世) -X(1))/ 2

    并计算Fv一世)),一世= 2,...,ñ+1。下一轮迭代的单纯是X(1),v(2),...,vñ+1)。收缩

下图显示了这点fminsearch可以计算的步骤,每一个可能的新单一起。原来单纯有一个大胆的轮廓。该迭代过程,直到他们满足停止准则。

也可以看看

相关话题