其中 称为展开系数,定义为:
= >1 图6.14 反射过程导致一个循环过程
如果f(X )< f(X ),我们用点X 取代点X 并重新启动反射过程,另一方面,若f(X )>f(X ),这意着扩张过程没有成功,因此,我们用X 取代X 并再一次开始反射过程。
6.9.3 收缩
如果反射过程给出点X ,其中f(X )> f(X ),对于所有i(除i=h外)成立, 且f(X )< f(X ),我们用X 取代点X ,因此新的点X 将取代X ,在这种情况下,我们收缩如下单形:
X = X +(1- )X (6.54)
其中 被称为收缩系数(0 1),定义为
=
如果f(X )> f(X ),我们使用公式(6.54)但不改变原来的点X ,源!自%优尔>文)论(文]网[www.youerw.com,若在收缩过程中产生一个点X ,其中f(X )<min[f(X ), f(X )],我们用X 取代X ,X ,…X 中的点X ,并且再次进行反射过程。另一方面,如果f(X ) min[f(X ), f(X )],收缩过程将会失败,在这种情况下,我们用 取代所有X 并重新启动反射过程。
每当在当前单形的n+1顶点函数的标准偏差比规定的少量 小时,此方法被假定为聚集,即
Q= (6.55)
例 6.8 求f(x ,x )=x - x +2x +2x x + x 的极小值
定义初始单形,取点如下:
X = ,X = ,X = , =1.0, =0.5, =2.0
为了收敛, 取0.2。
解
迭代一次
步骤1:给出当前单形顶点的每个函数值
f =f(X )=4.0-4.0+2(16.0) +2(16.0)+16.0=80.0
f =f(X )=5.0-4.0+2(25.0)+2(20.0)+16.0=107.0
f =f(X )=4.0-5.0+2(16.0)+2(20.0)+25.0=96.0
因此
X = X = ,f(X )=107.0
X = X = ,f(X )=80.0
步骤2:得到X 的重心
X = ( X + X )= = ,f(X )=87.75
步骤3:发现反射点
X =2X - X = - =
然后
f(X )=3.0-5.0+2(9.0)+2(15.0)+25.0=71.0
步骤4:因为f(X )< f(X ),我们发现X 扩张为
X =2X - X = - = 然后
f(X )=2.0-5.5+2(4.0)+2(11.0)+30.25=56.75
步骤5:因为f(X )< f(X ),我们用X 取代X ,并且得到新的单形顶点
X = ,X = ,X =
步骤6:为了测试收敛性,我们推断
Q= =19.06
由于这个数比 大,我们继续下一个迭代。
迭代二次
步骤1:由于f(X )=80.0,f(X )=56.75,f(X )=96.0
X = X = ,X = X =
步骤2:重心为
X = (X + X )= = ,f(X )=67.31
步骤3:X =2X - X = - =
f(X )=2.0-4.5+2(4.0)+2(9.0)+20.25=43.75
步骤4:因为f(X )< f(X ),我们发现X 为
X =2X - X = - =