最优化_第3章 一维搜索方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

a 0 ,
b 0 3h
否则,将步长再加倍,并重复上述运算。
§3.1
搜索区间的确定
(4)若 f(α0) < f(α0+h),则表明极小点在试算点 的左侧,需做后退试算。
在做后退运算时,应将步长变为-h ,并从 点出α0 发,得到后退点为α0-h 若f(α0-h) > f(α0) ,则搜索区间可取为
f(x2)=2.72
f(x1)=0.282 a
x1=0.764
x2=1.236
b
b
§3.3
黄金分割法
第二次缩小区间: 令 x2=x1=0.764, f2=f1=0.282 x1=0+0.382× (1.236-0)=0.472, f1=0.317 由于f1>f2, 故新区间[a, b]=[x1, b]=[0.472, 1.236] 由于 b-a=1.236-0.472=0.764>0.2, 应继续缩小区间
a1 a (1 )(b a), f1 f (a1 ) a2 a (b a), f 2 f (a2 )
f(a1)
f(a2) f(a1)
f(a2)
a
a1
a2
b
a
a1
a2
b
§3.3
a 1-λ λ
黄金分割法
α1 α2
b
1 α3 λ(1-λ) λ2 λ α1
f(x) φ1(x) f(x)
φ0(x)
依此类推可得牛顿迭代公式:
f '( xk ) xk 1 xk f "( xk )
x*
x2
x1
x0
φ0(x)
在 x0 处 用 一 抛 物 线 φ(x)代替曲线 f(x), 相当于用一斜直线 φ ′(x)代替曲线 f ′(x) 。这样各个近似点 是通过对作 f ′(x) 切 线求得与轴的交点 找到的,所以有时 牛顿法又称作切线 法。
a
α2
2 1
5 1 0.618 2
黄金分割法还要求在保留下来的区间内再插入一点所形成 的区间新三段,与原来区间的三段具有相同的比例分布 。
f(x2) f(x2) f(x1)
黄金分割法程序框图
开 始
输入a, b,

,
x1 a 0.382(b a )
a x1 x1 x2 b b
§3.3
黄金分割法
第五次缩小区间: 令 x2=x1=0.652, f2=f1=0.223 x1=0.472+0.382× (0.764-0.472)=0.584, f1=0.262 由于f1>f2, 故新区间[a,b]=[x1,b]=[0.584, 0.764] 因为 b-a=0.764-0.584=0.18<0.2, 停止迭代。
Y
a b
结 束
x* 0.5(a b), f * f ( x* )
N
§3.3
黄金分割法
3
例 3-1 用黄金分割法求函数f(x)=3x3-4x+2的极小点, 初始点 x0=0, 步长h=1,精度 ε=0.2。 f(x )=18 解: 1)确定初始区间 x1=x0=0, x2=x0+h=0+1=1
a 0 h,
b 0 h
否则,将步长加倍,继续后退,重复上述步 骤,直到满足单峰区间条件为止。
§3.2
一、基本思想
区间消去法原理
搜索区间确定之后,采用区间消去法逐步缩短搜索区间, 找到极小点的数值近似解。 假定在搜索区间内[a,b] 任取两点a1、b1,且a1<b1
f1=f(a1), f2=f(b1)
2) 依次比较各试算点的函数值的大小,
3) 直到找到相邻三点函数值按“高-低-高” 变化的单峰区间为止
§3.1
f(x) f(a0) f(a0+h)
搜索区间的确定
f(x) f(a0-h) f(a0+3h) f(a0) f(a0+h)
0
a0 a
a0+h
a 0 +3 h b
x
0 a0-h a
a0
a0+h b
结 束
x* xk 1
N
k k 1
§3.4
解: 函数的一阶导数:
插值方法
f ( x) 4x3 12x2 12x 16
例3-2 给定 f(x)=x4-4x3-6x2-16x+4 ,试用牛顿法计算其极小点。
2 f x 12 x 24x 12 函数的二阶导数:
f(x)
0
a
x*
b
x
即在单峰区间内的极小值点X* 的左侧:函数呈下降趋势, 而在单峰区间内的极小值点X* 的右侧:函数呈上升趋势。 也就是说,单峰区间的函数值呈“高-低-高”的变化特征。
§3.1
搜索区间的确定
目前在一维优化搜索中确定单峰区间常用的方法 是进退试算法。
进退试算法的基本思想为:
1) 按照一定的规律给出若干试算点,
3 4.03960 3.38299 86.86992 4.00066 0.03894
4 4.00066 0.00551 84.04720 4.00059 0.00007
= xk 1 xk 2.1667 0.83196
§3.4 一、牛顿法
插值方法
X ( k 1) X ( k ) ( K ) d ( k ) f '( xk ) xk 1 xk f "( xk )
Leabharlann Baidu
x
进退试算法的运算步骤如下:
(1)给定初始点α0和初始步长h (2)将α0及α0+h 代入目标函数 f(x) 进行计算并比较大小
§3.1
搜索区间的确定
(3)若f(α0 ) > f(α0+h),则表明极小点在试算点 的右侧,需做前进试算。
在做前进运算时,为加速计算,可将步长h 增加2倍,并取计算新点为α0+h+2h=α0+3h 若f(α0+h) ≤ f(α0+3h) ,则所计算的相邻三点 的函数值已具“高-低-高”特征,这时可确定 搜索区间
在给定的单峰区间中,利用目标函数上的三个点来构 造一个二次插值函数,以近似地表达原目标函数 f(a),并 求这个插值函数的极小点近似作为原目标函数的极小点。
f(x1)=2
f1=f(x1)=2 f2=f(x2)=1
x1=0 a
f(x2)=1
由于f1>f2, 应继续向前探测
x2=1
x3=2
b
x3= x0+2h=0+2=2 f3=f(x3)=18 由于f2<f3,可知初始区间已经找到,即
[a, b]=[x1, x3]=[0, 2]
§3.3
黄金分割法
2)用黄金分割法缩小区间 第一次缩小区间: x1=0+0.382×(2-0)=0.764, f1=0.282 x2=0+0.618×(2-0)=1.236, f2=2.72 由于f1< f2, 故新区间[a, b]=[a, x2]=[0, 1.236] 由于 b-a=1.236>0.2,应继续缩小区间
优点:1)收敛速度快。 缺点:1)要计算函数的一阶和二阶导数,增加每次 迭代的工作量。 2)数值微分计算函数二阶导数,舍入误差将 严重影响牛顿法的收敛速度, f '(x)的值越 小问题越严重。 3)牛顿法要求初始点离极小点不太远,否则 可能使极小化序列发散或收敛到非极小点。
§3.4 插值方法 二、二次插值法(抛物线法)
φ1(x)
f(x)
x* f ′ (x)
x2
x1
x0
φ ′ 1(x)
f ′ (x)
x*
x2
x1
x0
牛顿法程序框图
开 始
给定初始点 0 ,误差 令k=0
x
,
计算
f ' ( xk ), f '' ( xk ) ,

f '( xk ) 计算 xk 1 xk f "( xk )
Y
xk 1 xk
f(x2)=2.72
f(x1)
f(x2)
f(x1)=0.282
a
x1
a
x1=0.764
x2
x2=1.236
b
b
§3.3
黄金分割法
第三次缩小区间: 令 x1=x2=0.764, f1=f2=0.282 x2=0.472+0.618× (1.236-0.472)=0.944, f2=0.747 由于f1<f2, 故新区间[a,b]=[a, x2]=[0.472, 0.944] 由于 b-a=0.944-0.472=0.472>0.2, 应继续缩小区间。 第四次缩小区间: 令 x2=x1=0.764, f2=f1=0.282 x1=0.472+0.382× (0.944-0.472)=0.652, f1=0.223 由于f1<f2, 故新区间[a,b]=[a, x2]=[0.472, 0.764] 由于 b-a=0.764-0.472=0.292>0.2, 应继续缩小区间。
黄金分割法求的的极小点与极小值: x=0.5 ×(0.584+0.764)=0.674, 求导运算求的极小点与极小值: x=0.667, f(x)=0.222 f(x)=0.222
§3.4 一、牛顿法
插值方法
f(x)
利用一点的函数值、 一阶导数以及二阶 导数构造二次多项 式。用构造的二次 多项式的极小点作 为原函数极小点的 近似。
f '( xk ) 给定初始点x0=3,ε=0.001,计算公式:xk 1 xk f "( xk )
数值 \ k xk
f xk
f xk
xk 1
0 3 -52 24 5.1667
1 5.1667 153.35183 184.33332 4.33474
2 4.33474 32.30199 109.44586 4.03960 0.29514
φ0(x)
φ1(x) f(x)
x*
x2
x1
x0
x
§3.4 一、牛顿法
插值方法
设f(x)为一个连续可微的函数,则在点x0附近 进行泰勒展开并保留到二次项: 1 f ( x) ( x) f ( x0 ) f '( x0 )( x x0 ) f "( x0 )( x x0 ) 2 2
第三章 一维搜索方法
3.1 搜索区间的确定 3.2 区间消去法原理
3.3 一维搜索的试探法
3.4 一维搜索的插值法
§3.1
搜索区间的确定
求解一维目标函数 f(X) 最优解的过程,称为一维优化(一 维搜索),所使用的方法称为一维优化方法。
由前数值迭代法可知,求某目标函数的最优值时,迭代过 程每一步的格式都是从某一定点X(k) 出发,沿着某一使目 标函数下降的规定方向 S(k)搜索,以找出此方向的极小点 X(k+1) 。这一过程是各种最优化方法的一种基本过程。
f(x)
用二次函数φ(x)的极小点x1 作为f(x)极小点的一个近似 点。根据极值必要条件:
φ0(x) φ1(x) f(x)
'( x1 ) 0
x* x2 x1 x0 x
§3.4 一、牛顿法

插值方法
f '( x0 ) f "( x0 )( x1 x0 ) 0
f '( x0 ) x1 x0 f "( x0 )
f(x)
f(a1) f(b1)
f(x)
f(a1) f(b1)
f(x)
f(a1)
f(b1)
a
a1
b1
b
a
a1
f1<f2
f1>f2
b1
b
a
a1
b1
b
f1=f2
f(b1) f(a1)
f(a1) f(b1)
f(a1)
f(b1)
a
a1
b1
b
a
a1
b1
b
a
a1
b1
b
(1)f1<f2, 新区间为[a,b1] (2)f1>f2, 新区间为[a1,b] (3)f1=f2, 新区间为[a1,b1]
一维搜索方法一般分两步进行: ■ 首先确定一个包含函数极小点的初始区间,即确定 函数的搜索区间,该区间必须是单峰区间; ■ 然后采用缩小区间或插值逼近的方法得到最优步长, 最终求出该搜索区间内的一维极小点。
§3.1
搜索区间的确定
根据函数的变化情况,可将区间分为单峰区间和多峰区间。 所谓单峰区间,就是在该区间内的函数变化只有一个峰值, 即函数的极小值。
f1 f 2
新区间为[a1, b]
对于上述缩短后的新区间,可在其内再取一个新点,然后 将此点和该区间内剩下的那一点进行函数值大小的比较, 以再次按照上述方法,进一步缩短区间,这样不断进行下 去,直到所保留的区间缩小到给定的误差范围内,而得到 近似最优解。
§3.3
一、适用范围
黄金分割法
适用于[a, b]区间上的任何单谷函数求极小值问题。对 函数除要求“单峰”外不作其他要求,甚至可以不连 续。适应面相当广。基本原理为区间消去法 黄金分割法插入两点:
x2 a 0.618(b a )
Y
x2
f ( x1 ) f ( x2 )
N
b x2 , x2 x1 , f 2 f1 x1 a 0.382(b a ), f1 f ( x1 )
a x1 , x1 x2 , f1 f 2 x2 a 0.618(b a ), f 2 f ( x2 )
相关文档
最新文档