一维搜索的程序实现
第4卷 第4期 沈阳教育学院学报 Vol.4 No.4
2002年12月 JournalofShenyangCollegeofEducation Dec.2002
一维搜索的程序实现
张 莹
(沈阳教育学院数学与计算机系,辽宁沈阳 110016)"
摘要:对于不可微的一元目标函数,我们用一维搜索去解决。本文给出了一维搜索中的三个算
法:二分法,三等分算法,黄金分割法各自的C语言源程序,从而可以求出目标函数比较精确的近
似最优点。
关键词:一维搜索;黄金分刽法;程序
中图分类号:TP311文献标识码:A 文章编号:1008一3863(2002)04一0104一03
对于解决最优化问题,我们用数学的方法与原 ③当t2
理给予了实现,但对于目标函数我们采取了适当的 若f[(t,+0/21>f认),则(t,+t3)/2=>t3,转
限制,即目标函数可微,而对不可微的目标函数或者 ⑤
虽然可微但导数很难求出或表示十分复杂的目标函 若f[(t,+t3)/2]、,t2=
数,我们则采取迭代法解决问题。 >t,,转⑤
而在一维搜索中迭代法则的实现是压缩搜索区 若f[(t,+t,)/2〕二f(t2),则((t,+t3)/2=>t2,转
间的长度使之无限缩小且趋于零,从而满足终止准 ④
则,这样便可取得近似的最优点。下面我们对具体 ④当(t,+)‘/2=t2时,计算f[(t,+,t2)/2〕及[[f
的一维搜索方法给出程序实现。本文主要使用C
(t2+t3)/2]
语言源程序。
若f[(t,+t2)/2)>f(t2)
二分法:已知搜索区间,其中f(t,)
十t2)/2二>t,,(t2+)‘/2二>t3,转⑤
>f(t2)上为单谷函数,给定
若f[(t,+t2)/2]>f(t2))fl(t2+t3)/2],则t2
终止准则限。。
=>t,,(、+t3)/2二>t2,转⑤
①计算(t,+t3)/2及fl(t,+0/21
若f[(t,+t2)/21,f(t2)
②当(t,+t3)/2
+t2)/2=>t2,t2二>t3,转⑤·
若迁(t,+t3)/2]>f(t2),则(t,+t3)/2二>t,,转
⑤如果ltj一t3,t,转⑥,否
⑤
则转①
若fl(t,+t3)/2]、,t2=
⑥输出t.,终止。
>t3,转⑤ floatbise(floatt1,floatt2,floatt3,float。)
若f