黄金分割法又称0.618法,是一种消去法。消去法的基本原理是,在搜索区间内任取两点,计算其函数值并加以比较,舍去较大值所在区部分(图3-5),把搜索区间缩小,直至最小点存在的范围达到允许的误差范围为止。
图3-5 消去法原理图解
黄金分割是将一条长为L的线分为两段,较长的一段记为C,较短的一段记为(L-C),L、C、(L-C)三者间应满足如下关系(图3-6):
式中 λ——比例常数。
图3-6 L与C的关系
由上式得
C2+LC-L2=0
或
令,则上式写成:
λ2+λ-1=0
解得两根,取其正根:
于是 C=λL≈0.618L
即黄金分割点(长段)位于0.618L处,而短段则为L的0.382倍。黄金分割法适用于[a,b]区间上的任何单峰函数求极小值问题。如图3-7所示,x1、x2的选取应保证如下关系成立:
黄金分割法的具体计算方法及步骤如下:
1)给定区间[a,b](a<b)及允许误差ε>0。
2)置a+0.618(b-a)⇒x2,a+0.382(b-a)⇒x1。
3)计算f(x1)及f(x2)之值,并置f(x1)⇒f1,f(x2)⇒f2。
图3-7 黄金分割法示意
4)检验是否满足收敛性判别准则b-a≤ε,若满足,则进行5),否则进行6)。
5)比较是否满足不等式f2>f1,若满足,则输出x1,f1为近似最优解,否则输出x2,f2为近似最优解,停止迭代。
6)若f2>f1,则置x2⇒b,x1⇒x2,a+b-x2⇒x1,f1⇒f2,f(x1)⇒f1,返回进行4);否则x1⇒a,x2⇒x1,a+b-x1⇒x2,f2⇒f1,f(x2)⇒f2,返回进行4)。(www.daowen.com)
黄金分割法的迭代过程如图3-8所示。
图3-8 黄金分割法程序框图
【例3-3】 试用黄金分割法求函数f(X)=(x-3)2的最优解。已知,取ε=0.4。
解(1)取内分点并计算函数值
x1=a+0.382(b-a)=3.292
x2=a+0.618(b-a)=4.708
y1=f(x1)=0.085264
y2=f(x2)=2.917264
(2)缩短区间 因有y1<y2,故作如下置换与计算:
b⇐x2=4.708,x2⇐x1=3.292
y2⇐y1=0.085264
x1=a+0.382(b-a)=2.416456
y1=f(x1)=0.340524
(3)检验是否满足收敛准则
b-a=4.708-1=3.708>ε
条件不满足,返回(2),进一步缩短区间。
各次循环迭代计算结果见表3-1。
循环到第7次时,因为
b-a=3.085305-2.750914=0.334391<ε
故迭代可结束,结果为
表3-1 例3-3的各次迭代结果
当迭代到第k次时,若满足0.618k(b-a)≤ε,亦可将最终区间的中点及其函数值作为最优解输出:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。