首页 理论教育 黄金分割法求函数极小值点的搜索过程

黄金分割法求函数极小值点的搜索过程

时间:2023-06-24 理论教育 版权反馈
【摘要】:黄金分割法的计算框图如图3-6所示。例3-1 用黄金分割法求函数f=3x3-4x+2的极小值点,给定x0=0,h=1,ε=0.2。黄金分割法的搜索过程见表3-1。表3-1 黄金分割法的搜索过程因为b-a=0.764-0.584=0.18<0.2,所以得到极小点和极小值。

黄金分割法求函数极小值点的搜索过程

1.黄金分割法的基本原理

黄金分割法也称为0.618法,它是按照对称原则选取中间插入点而缩小区间的一种一维搜索方法。这种方法的基本原理如下:

在搜索区间[ab]内按如下规则对称地取两点x1x2,即

x1=a+0.382(b-a),x2=a+0.618(b-a

计算它们的函数值f1=fx1),f2=fx2),比较f1f2的大小,有两种可能:

1)若f1f2,如图3-4a所示。极小点必在区间[x1b]内,消去区间[ax1),令a=x1,产生新区间[ab],至此,区间收缩了一次。值得注意的是接着在进行第二次区间收缩运算时,新插入的x′1点直接取前一次收缩运算的x2点,fx′1)=fx2)。这样可以少找一个新点,省去一次函数值计算时间,这也是黄金分割法的一大优点。

2)若f1f2,如图3-4b所示。极小点必在区间[ax2]内,消去区间(x2b],令b=x2,产生新区间[ab],至此,区间收缩了一次。同样接着在进行第二次区间收缩运算时,新插入的x′2点直接取前一次收缩运算的x1点,fx′2)=fx1)。这样可以少找一个新点,省去一次函数值计算时间。

当缩短的新区间长度小于或等于某一收敛精度ε,即b-aε时,则取978-7-111-49719-6-Chapter04-3.jpg为近似极小点。

2.黄金分割法的区间收缩率及计算步骤

每次缩小所得的新区间长度与缩小前区间长度之比,称为区间收缩率,以λ表示。如图3-5所示,为加快区间收缩应保证区间收缩率不变,因此,必须在搜索区间[ab]内对称地取计算点x1x2。设初始区间长度为l,则第一次和第二次收缩得到的新区间长度分别为λl和(1-λl。根据收缩率相等的原则,可得

λll=(1-λlλl

λ2+λ-1=0

该方程的正根为λ≈0.618,这就是在区间内按上式规则取两对称点的原因。

综上所述,黄金分割法的计算步骤如下:

1)给定初始区间[ab]和收敛精度ε

2)产生中间插入点并计算其函数值。

978-7-111-49719-6-Chapter04-4.jpg

图3-3 进退法计算框图

x1=a+0.382(b-a),f1=fx1

x2=a+0.618(b-a),f2=fx2

3)比较函数值f1f2,确定区间的取舍:若f1f2,则产生新区间[ab]=[ax2],令b=x2x2=x1f2=f1,记N0=0;若f1f2,则产生新区间[ab]=[x1b],令a=x1x1=x2f1=f2,记N0=1。

4)收敛判断:当缩短的新区间长度小于或等于某一收敛精度ε,即|b-a|≤ε时,则取978-7-111-49719-6-Chapter04-5.jpg为近似极小点,结束一维搜索;否则转5)。

978-7-111-49719-6-Chapter04-6.jpg

图3-4 黄金分割法区间收缩

a)f1f2 b)f1f2

5)产生新的插入点:若N0=0,则取x1=a+0.382(b-a),f1=fx1);若N0=1,则取x2=a+0.618(b-a),f2=fx2),转3)进行新的区间缩小。(www.xing528.com)

黄金分割法的计算框图如图3-6所示。

例3-1 用黄金分割法求函数fx)=3x3-4x+2的极小值点,给定x0=0,h=1,ε=0.2。

978-7-111-49719-6-Chapter04-7.jpg

图3-5 取点规则

978-7-111-49719-6-Chapter04-8.jpg

图3-6 黄金分割法的计算框图

解:(1)确定搜索区间

x1=x0=0,f1=fx1)=2;x2=x0+h=1,f2=fx2)=1

由于f1f2,应加大步长继续向前探测。令

x3=x0+2h=2,f3=fx3)=18

f2f3可知,初始搜索区间已经找到,即[ab]=[0,2]。

(2)用黄金分割法缩小区间

1)第一次缩小区间。令

x1=0+0.382×(2-0)=0.764,f1=0.282

x2=0+0.618×(2-0)=1.236,f2=2.72

由于f1f2,故新区间[ab]=[ax2]=[0,1.236]。因为b-a=1.236>0.2,所以应该继续缩小区间。

2)第二次缩小区间。令

x2=x1=0.764,f2=f1=0.282

x1=0+0.382×(1.236-0)=0.472,f1=0.317

由于f1f2,故新区间[ab]=[x1b]=[0.472,1.236]。因为b-a=0.764>0.2,所以应该继续缩小区间。

如此继续迭代下去,经过五次区间缩小之后迭代精度满足要求。黄金分割法的搜索过程见表3-1。

3-1 黄金分割法的搜索过程

978-7-111-49719-6-Chapter04-9.jpg

因为b-a=0.764-0.584=0.18<0.2,所以得到极小点和极小值。978-7-111-49719-6-Chapter04-10.jpgf=0.222

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈