2-5-1求步长的方法

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

在这个区间上再取试探点 k 1 , k 1 由(5)得
k 1 a k 1 α( b k 1 a k 1 ) a k α( k a k )
a k 2 ( bk a k )
(7)
k a k α( bk a k ) (5)
计算
f( λk ) f( μ k )
ak1 ak ,bk1k ,k1 k
计算
( bk1 ak1 ) k1 ak1 0.618
( bk1 ak1 ) k1 ak1 0.382
f( μ k 1N )
k : k 1
f( k 1 )
k : k 1
(5) k a k ( 1 α )( bk a k ) (6)
k a k α( b k a k )
3
0.618法的计算步骤
1º 给定初始区间 [ a 1 , b1 ] 及精度要求 L 0 计算
1 a1 0.382( b1 a1 ) 1 a 1 0.618( b1 a 1 )
f(x)

a
x
(1)

x
(2)
x
b
x
图3.2.1
x
(2)
x 情况,见图3.2.1
此时, f(x) 的特征:
x 左端的函数值减↘
f(x)

a
x

x
(1)
x
(2)
b
x
图3.2.2
xx
(1)
情况,见图3.2.2
此时, f(x) 的特征:
x 右端的函数值增↗
单峰函数的性质: 只要计算 [a,b] 内的两个不同点的函数值, 就能确定一个包含极小点的子区间:


bk 1
每次迭代,得到6个量 k ak bk
λk
μk
f(λk )
f(μk )
每次只重新计算一个试探点。 每次只重新计算一个试探点的函数值。
例3.2.1
用0.618 法求解
min f(x) 2 x 2 x 1
初始区间 [ a 1 , b1 ] [ 1 ,1 ] ,精度 L 0 .16 解: 第1次迭代:k=1 a1 1 , b1 1
因此得
k a k ( 1 α )( bk a k )
(6)
不妨设第k 次迭代得到
f( λk ) f( μk )
得到的包含极小点的区间为
[ a k 1 , bk 1 ] [ a k , k ]
情况2: f( λk ) f( μ k ) 此时,令 a k 1 a k , b k 1 k
f( λk ) f( μ k )
ak1 k ,bk1bk ,k1 k
计算
f(x)
k1 ak1 0.618( bk1 ak 1 )
f( μ k 1 )
新探测点
ak k
a k 1

x
k

bk
x
新区间

a k 1
k 1

k 1
bk 1
图3.2.6
现在确定 k , k ,使之满足: ①
k , k 在 [ a k , bk ] 中位置对称, 即 k , k 到 a k , bk 的距离相等;
每次迭代区间长度缩短的比率相同

由 ① ②得: bk k k a k b k 1 a k 1 α( b k a k ) 注意到 情况1时, a k 1 k , bk 1bk 情况2时, a k 1 a k , bk 1 k
,b] 中。
解释:因为是单峰函数,所以 f(x) 在 x 两端 单调。所以极小点不会在 x ( 1 ) 的左侧。
f(x)

a x
(1)

x
(2)
b
x
图3.2.4
第2种情况:极小点在 [a , x
(2)
] 中。
解释:因为是单峰函数,所以 f(x) 在 x 两端 单调。所以极小点不会在 x ( 2 ) 的右侧。
第2次迭代: k=2 由于 f( 1 ) f( 1 ) ,所以令
a 2 1 0.236 , b 2 b1 1
2 1 0.236 ,
计算
2 a 2 0.618( b 2 a 2 )
0.236 0.618 ( 1 0.236 ) 0.526
k , k [ a k , bk ]
k k
计算 f( λk ), f( μ k ) 情况1
f( λk ) f( μ k )
此时,有 x [ k , bk ] 因此,令 a k 1 k , b k 1 b k 如图3.2.5所示。
f(x)
ak k
k 1 a k 1 0.618( bk 1 a k 1 )
计算 f( μ k 1 ) , 转5º


a k 1 a k , b k 1 μ k ,μ k 1 λk
k 1 a k 1 0.382( bk 1 a k 1 )
非线性规划
第二章 无约束最优化方 法的结构
§2.5
求步长的方法
上一节讨论了求步长的原则,没有给出具 体求法。这一节介绍求步长的方法。 精确线搜索下的步长的求法有两类;
(k) (k) ( ) f( 求 x λ d ) 的极小点 k 求 的稳定点
f( x λ d
(k )
(k ) T
) d
(k )
0
精确线搜索下的求步长的常用方法有 ● 试探法(分割区间法) 1) 平分法(两分法) 2) 黄金分割法(0.618法) 3) Fibonacci法 ● 插值法 1) 2) 二次插值 三次插值
非精确线搜索下的求步长的常用方法,可 以参阅: 席少霖,非线性最优化方法,高等教育出 版社, 1992年6月 58页 袁亚湘、孙文瑜 ,最优化理论与方法,科 学出版社,1999 59页
λk
-0.236 0.236 0.056 0.236 0.168 0.236
μk
0.236 0.528 0.236 0.348 0.236 0.279
f(λk) -0.653 -1.125 -1.050 -1.125 -1.112 -1.125
f(μk) -1.125 -0.970 -1.125 -1.106 -1.125 -1.123
由(1),(2),(4)
k ak α( bk ak )
bk k k ak (1)
bk 1 ak 1 α( bk ak ) (2)
a k 1 a k , bk 1 k (4)
bk k α( bk ak )
k bk α( bk ak )

x
k

bk
bk 1
x
a k 1
f( μ k ) 此时,有 x [ a k , k ] 因此,令 a k 1 a k , b k 1 k 如图3.2.6所示。
f(x)
ak k
a k 1

x
k

bk
x
bk 1
0.236 0.382 ( 0.528 0.236 ) 0.056
f( 3 ) 1.050 f( 3 ) 1.125
第4次迭代: k=4 由于 f( 3 ) f( 3 ) ,所以令
a 4 3 0.056 , b4 b 3 0.528
f( 2 ) 1.125 f( 2 ) 0.970
第3次迭代: k=3 由于 f( 2 ) f( 2 ) ,所以令
a 3 a 2 0 .236 , b 3 2 0.528
3 2 0.236 ,
计算
3 a 3 0.382( b 3 a 3 )
计算函数值 f( λ1 ), f( μ1 ) 令 k : 1

若 bk a k L,则停。否则 当 f( λk ) f( μ k ) 时 转 3º 当 f( λk ) f( μk ) 时 ,转 4º


a k 1 k , b k 1 b k , k 1 k
解方程
1
2

1 5 2

0.618
当 f( λk ) f( μ k ) 时,可以得到同样的结论. 把 0.618 代入(5)(6),得公式
k a k 0.382( bk ak ) k a k 0.618( bk a k )
4 3 0.236 ,
计算
4 a 4 0.618( b4 a 4 )
0.056 0.618 ( 0.528 0.056 ) 0348
f( 4 ) 1.125 f( 4 ) 1.106
…… 计算结果如表3.2.1
表2.3.1
k 1 2 3 4 5 6 7 ak -1 -0.236 -0.236 0.056 0.056 0,168 0.168 bk 1 1 0.528 0.528 0.348 0.348 0.279
(1) (1) (2) x [ f( ) f( ) ,则 x ,b] x x 若
(1) (2) (2) f( ) f( ) , 则 x x x [a, x ] 若
几何意义如图3.2.3及图3.2.4
f(x)

a x
(1)

x
(2)
b
x
图3.2.3
第1种情况:极小点在 [ x
(1)
2
0.618法的基本思想
由上述性质,通过取试探点,使包含极小 点的区间不断缩小,当区间长度小于给定的精度 时,区间内的点与极小点接近,每一点都可作为 极小点。 下面是公式的推导。
设一元函数 f(x) 在区间 [a,b] 上是单峰函数 ,极小点 x [a,b] 设第k 次迭代时,x [ a k , bk ] 取两个试探点
下面介绍 2) 黄金分割法(0.618法) 3) Fibonacci法
1 单峰函数 设一元函数 f(x) 定义在区间 [a,b] 上, x 是
f(x) 在区间 [a,b] 上的极小点,并对任意两个点
x
(1)
, x ( 2 ) [a,b]
x
(1)
x
(2)
有 当 x ( 2 ) x 时, (1) (2) f( x ) f( x ) (1) 当 x x 时, f( x ( 2 ) ) f( x ( 1 ) ) 成立,则称 f(x) 是区间 [a,b] 上的单峰函数。
计算 f( k 1 ) , 转5º 5º 令 k : k 1 转2º
1 a1 0.618( b1 a1 ) bk ak L
1 a1 0.382( b1 a1 )
f( λ 1 ) , f( μ 1 )
N
Y

f( λk ) f( μ k )
ak1 k ,bk1bk ,k1 k
1 a1 0.382( b1 a1 )
1 0.382 ( 1 1 ) 0.236
1 a 1 0.618( b1 a 1 )
1 0.618 ( 1 1 ) 0.236
f( 1 ) 0.653 f( 1 ) 1.125
(1) (2)
(3) (4)
由(1),(2),(3)
bk 1 ak 1 α( bk ak ) (2)
a k 1 k , b k 1 b k (3)
bk k α( bk ak )
bk k k ak (1)
(5)
因此得
k a k α( b k a k )
k a k ( 1 α )( bk a k ) (6)
如果令
1
2
则由(7)和(4)得
k 1 k
因此, k 1 不必再重新计算,只要选取上一次迭 代中的试探点 k 即可。
k1 ak ( bk ak )
2
(7) (6)
k a k ( 1 α )( bk a k )
相关文档
最新文档