理论教育 实战技巧:后退运算提升算法效率

实战技巧:后退运算提升算法效率

时间:2023-06-17 理论教育 版权反馈
【摘要】:x3x1,y3y1x1x2,y1y2,x2x3,y2y3注意,此处的x3仅作为倒换数据的暂用单元。2)y2>y3,如图3-1c中所示实曲线Ⅰ所示,则应继续作后退运算。先作如下置换:x1x2,y1y2x2x3,y2y3倍增进退距h2h后计算新点x3及其函数值:x3x2+h,y3=f重复上述过程,直至出现三点函数值依次为大—小—大时,取其左右两端点为初始搜索区间[a,b]。

实战技巧:后退运算提升算法效率

进退距取负值,即h⇐-h0,置换点号使它自右向左反向排列,如图3-1c所示。

x3x1y3y1

x1x2y1y2

x2x3y2y3

注意,此处的x3仅作为倒换数据的暂用单元。将进退距加倍(h⇐2h)后,计算第三个后退点:

x3x2+hy3=fx3

比较函数值y2y3的大小,可能也有两种情况:

1)y2y3,如图3-1c中所示虚曲线Ⅱ所示,则初始区间即被确定ax3bx1

2)y2y3,如图3-1c中所示实曲线Ⅰ所示,则应继续作后退运算。先作如下置换:

x1x2y1y2

x2x3y2y3倍增进退距h⇐2h后计算新点x3及其函数值:

x3x2+hy3=fx3

重复上述过程,直至出现三点函数值依次为大—小—大时,取其左右两端点为初始搜索区间[ab]。

进退法确定初始搜索区间的过程如图3-2所示。

【例3-1】 试用进退法确定函数fX)=x2-6x+9的一维优化初始搜索区间[ab]。设初始点x1=0,初始进退距h0=1。(www.daowen.com)

解 按图3-2流程,计算过程如下:

h=h0=1,x2=x1+h=1

y1=fx1)=9,y2=fx2)=4

因为,y2y1,故作前进运算:

h⇐2h=2,x3=x2+h=3

y3=fx3)=0

比较y2y3,有y2y3,再作前进运算:

x1x2=1,y1y2=4

x2x3=3,y2y3=0

h⇐2h=4,x3=x2+h=7

y3=fx3)=16

再比较y2y3,有y2y3,故可令ax1=1,bx3=7,即初始搜索区间为[ab]=[1,7]。

978-7-111-29617-1-Chapter03-3.jpg

图3-2 进退法确定初始搜索区间程序框图

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

我要反馈