当前位置:文档之家› 常用的一维搜索方法

常用的一维搜索方法

西安电子科技大学 穆学文 5
§2
0.618法(黄金分割法)
0.618法是求单峰函数极值的一种试探法.所谓的单 峰函数是指只有一个峰值的函数,其严格定义有 定义1:设 f(x) 是定义在[a, b]上的函数,如果 1) ∃ x* ∈[a, b] 是φ在[a, b]上的最小点 , 2) 若对任意x1 ,x2, a≤ x1 < x2 ≤b , 满足: 1º 若x2 ≤ x* ,则 f (x1) > f (x2); 2º 若x1 ≥x* ,则 f (x1) <f (x2). 则称 f(x) 为[a, b]上的单峰函数。
tg α>0 tg α<0
α α
x
f′ ( x )
α
b
f′ ( x )
α
x
穆学文
b
14
西安电子科技大学
* * * x 我们知道,在极小点 处,f ' ( x ) = 0,且 x < x 时, * f ( x ) 递减,即 f ' ( x ) < 0 ,而当 x > x*,函数递增,即 f '( x) > 0 。若找到一个区间[a, b], 满足性质 f ' ( a) < 0, f ' ( b) > 0 * * f ' x ( ) = 0 ,为找此 x* 则[a,b]内必有 f ( x) 的极小点 x ,且
STOP; x* =(α+b)/2
b= x2 , x2 = x1 x1 = α + (1-t)( b -α ) No
b
yes
α α= x1 , x1 = x2 x2 =α +t ( b –α)
西安电子科技大学 穆学文
x1
x2 x1
12
b
α
黄金分割法(0.618 法)的优缺 优点:不要求函数可微,且每次迭代只需计算一 个函数值,计算量小,程序简单 缺点:收敛速度慢。
西安电子科技大学
穆学文
13
§3
二分法
设 f (x)在 [a ,b]上可微,且当导数为零时是解。取 x=(a+b) / 2, 那么 f ′(x) = 0 时, x 为最小点, x= x* ; f ′(x) > 0 时, x 在上升段, x* < x,去掉[x ,b] ; f′ (x) < 0 时, x 在下降段, x* > x,去掉[a, x] . (自己画算法框图)
西安电子科技大学 穆学文 20
k 1 2 3
xk 2 -3.5357 13.95
f′ (xk) 1.1071 -1.2952 不收敛。
1/f″( xk ) 5 13.50
§4 .2、插值法 用 f (x)在2 或3 个点的函数值或导数值,构造2 次或3次多项 式作为f (x)的近似值,以这多项式的极小点为新的迭代点。 3点2次,2点2次,4点3次,3点3次,2点3次等 以 3点2次为例: 取 x 1,x 2,x3,求出f (x1 ), f (x2 ), f (x3 )(利用“成功-失败”法)
工程优化设计中的数学方法
硕士研究生课程
理学院数学系:穆学文 Tel:88207669 E-mail:mxw1334@
第三章 常用的一维搜索方法
一元函数求极小及线性搜索均为一维搜索。常用于求: min f(x(k)+ λd(k))=φ(λ) s.t. λ∈S S 有3种情况(-∞,+∞)或(0, +∞ )或 [a, b]。一般 地, 我们总可以考虑 x ∈ (-∞,+∞), 例 对问题 min f ( x)
α
x1
x2
b
α
x1
x2
b
西安电子科技大学
穆学文
8
Proof. 1°反证法:设 x* ∈[a, b]为最小点, z 若x* ∈[a, x1],由定义 知 f (x1)< f (x2 ),矛盾 (假设); 2 °若x* ∈[x2 , b ],由定义知 f (x1 ) > f (x2 ), 矛盾(条件); 结论成立。 注:上述定理为缩短区间的算法提供了理论根据。
α
x1
x2
b
西安电子科技大学
x2 − α x1 − α = t= ""(2) b − α x2 − α
穆学文 10
整理② :
x2 = a + t ( b -α ) x1 = a + t ( x2 -α )
−1 ± 5 结合①式:t 2 + t – 1 = 0 t= (舍去负值) 2 故 t≈0.618 注意: 上式有 t 2 = 1- t , 故有 x1 = a + (1- t )( b -α ) x2 = a + t ( b -α)
西安电子科技大学
穆学文
6
f
f
0
x*
t
0
x*
t
西安电子科技大学
穆学文
7
定理1:设 f:R→R 在[a, b ]上是单峰函数, a≤ x1 < x2 ≤b 。那么 1°若 f (x1)≥ f (x2),则 x* ∈[x1 , b] ,如左下图 2°若 f (x1)< f (x2) ,则 x* ∈[a, x2 ], 如右下图
h=− , 4
缺点:效率低。优点:可以求搜索区间 注意:初始步长不能选得太小
西安电子科技大学 穆学文 4
例1:设给定初始点为 a 及初始步长为 h, 求搜索区间[c, d] 1) 前进运算 首先计算 f (a), f (a+h), 如果 f (a)> f (a+h), 则步长加倍, 计 算f (a+3h). 若 f (a+h)<= f (a+3h), 则c=a, d=a+3h; 否则将步 长再加倍,并重复上面运算. 2) 后退运算 如果 f (a)< f (a+h), 则将步长缩为原来的1/4并改变符号,即 将步长改为-h/4, 如果 f (a)< f (a-h/4),则c=a-h /4,d=a+h; 否则 将步长加倍,并继续后退。 注意: 1. h 选择要适当.(太大含多个单峰区间,太小迭代次多); 2. f (x)单调时无结果, (加迭代次数限制); 3. 可与中点法结合寻找单调区间(思考)。
精确一维搜索方法 “成功—失败”法 0.618法(黄金分割法) 二分法 牛顿法(Newton)和插值法 非精确搜索算法
西安电子科技大学
穆学文
3
§1
“成功—失败” 法
以下方法称为“成功—失败”法(进退法): 步骤1:选取初始点 x∈R , 初始步长 h > 0 及精度ε> 0, ϕ11 = f ( x). 步骤2:计算 ϕ22 = f ( x + h). 步骤3:若 ϕ 22 < ϕ11, 搜索成功, 转步骤4;否则,搜索失败, 转步骤5。 步骤4:令 x:= x + h, ϕ11 := ϕ 22, h := 2h 步骤5:判断 h ≤ ε ? 若 h ≤ ε , 停止迭代, x** = x ;否则令 h 转步骤 2。 h=− ,
西安电子科技大学 穆学文 21
设二次插值多项式:a x2 +b x +c= g(x) a x12 +bx1 +c= g (x1 ) a x22 +bx2 +c= g (x2 ) ax32 +bx3 + c= g (x3 ) 解得: a , b
( x1 − x2 ) g ( x3 ) + ( x2 − x3 ) g ( x1 ) + ( x3 − x1 ) g ( x2 ) a=− ( x1 − x2 )( x2 − x3 )( x3 − x1 )
用 [ a, x0 ] 作新的区间[a,b],继续这个过程,逐步将区间 [a,b]缩小,当区间[a,b]的长度充分小时,或者当 f ' ( x0 ) 充分小时,即可将[a,b]的中点取做极小点的近似点,这 时有估计: a+b b−a * < x − 2 2
西安电子科技大学 穆学文 15
a+b 取 x0 = ,若 f ' ( x0 ) > 0 则在 2
(算法框图见下页)
西安电子科技大学 穆学文 11
黄金分割法(0.618 法)(算ห้องสมุดไป่ตู้)
初始[a, b], ε>0
t = ( 5 − 1) / 2
x1 = α + (1- t)(b -α ) x2
=α +t (b -α )
b -α < ε ?
yes
α
x1 x2 x2
b
No
f( x1 )-f( x2 )>0?
西安电子科技大学 穆学文 18
Newton法算法框
初始 x1 ,ε1, ε2 >0 k=1
︱ f '(xk ) ︱<ε1?
y
停;解 xk
N
停,失败
N
f ″(xk ) >0? k=k+1
Y
xk +1= xk - f′ (xk ) / f″(xk )
Y
| xk +1 - xk |< ε2
N
西安电子科技大学 穆学文 19
西安电子科技大学
穆学文
9
通过上述定理,选二点 x1 < x2 , 比较 f (x1 ) 与 f (x2 ) ,可去掉 [a , x1 ] 或者[x2 , b]. 考虑条件: 1°对称: x1 – a = b- x2 ……① (使“坏”的情况去掉,区间长度不小于“好”的情况) 2°保持缩减比 t =(保留的区间长度/原区间长度) 不变。 (使每次保留下来的节点, x1或 x2 ,在下一次的比较中成 为一个相应比例位置的节点 )。 推导缩减比 t : 如图设第一次保留[a, x2 ] (去掉[x2 , b]), 那么第 二次保留的长度为[α, x1 ], 则
相关主题