第三章一维优化方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
21
求二次插值函数的极小点:
令 p '( x) 2 Ax B 0
2 2 2 2 B 1 ( x2 x3 ) f1 ( x3 x12 ) f 2 ( x12 x2 ) f3 x* P 2 A 2 ( x2 x3 ) f1 ( x3 x1 ) f 2 ( x1 x2 ) f3
第二次区间缩短:
a0
a1
y1
y2 y1 x1
y2
x2
b1
b0
L 0.382 L0 2 0.618 L1 0.618 L0
x1
a2
x2
b2
15
终止准则: b( k ) a ( k )
a ( k ) b( k ) x* 2 f * f ( x* )
y1
采用某种方法将此区间逐步缩小,使其达到包含极小点x*在内 的很小邻域(ε )
3.1 搜索区间的确定
f ( x)
单峰函数
用尽量少的计算量,尽快确 定包含x* 的区间[a, b]
关键
找三点:“高-低-高”
o
a
x
x
*
b
5
3.1 搜索区间的确定(进退法) f ( x)
函数为y=f(x), 给定初始点x1, 选定恰当的初始步长为h0
9
3.2 一维搜索的最优化方法
3.2.1 格点法
在区间[a,b]的内部取n个 内等分点: x1,x2,…,xn 区间[a,b]被分成(n+1)等 分,各分点的坐标为:
xk a ba k n 1
f ( x)
逐渐缩小搜索区间
新区间
k 1,2,..., n
o a x1 x2
ym 1 ym
b1
b0
பைடு நூலகம் a2
b2
17
各次缩短区间的计算数据见表3.2。第六次区间缩短的端点a(6)=2.750 917, b(6)=3.085 305,b(6)-a(6)=0.334 388<ε,满足精度要求,终止计算。 取最优解为:
18
3.2.3 二次插值法
基本原理:利用一个低次插值多项式来逼近原目标函数,然 后求该多项式的极小点,并以此作为目标函数的近似极 小点,……反复使用此法,逐次拟合,直到满足给定的精 度为止. 常用的插值多项式为二次或三次多项式,分别称为二 次插值法或三次插值法。 一、二次插值函数的构成:
以上两种情况只是在区间已缩得很小,三个插值结点已十分接近 的时候,由于计算机的舍人误差才可能导致其发生。因此对这种情 况的合理处置就是把中间插值点x2及其函数值f2作为最优解输出
ym 1 xn b
x1 , x2 , ..., xn
xm 1 x m xm 1
a b
x
计算
y1 , y2 , ..., yn
找出 ymin min yk , k 1,2,..., n
新区间 a, b xm 1, xm 1
xm 1 xm 1 yes : x xm ? no : 再分格点
a x1
x2
* x* xP
x3 b
x1
x2
x3
解方程组,得待定系数A、B、C
求p(x)的极小点x*P ,与x2比较 →区间缩短
20
一、二次插值函数的构成
p( x) Ax Bx C
2
解方程组,得待定系数A、B、C
( x2 x3 ) f1 ( x3 x1 ) f 2 ( x1 x2 ) f 3 A ( x1 x2 )( x2 x3 )( x3 x1 )
L l l l L
由此得
l 2 L( L l ) 0
l 2 l ( ) ( ) 1 0 L L
1 0
2
解此方程得两个根取其正根为
5 1 14 2 =0.6180339887…
L0
问题2:如何取点?
x1 a 0.382(b a ) 取点规则: x2 a 0.618(b a)
a0 a1 x1
y 2 y1 x1
x2
y2
x2
b1
b0
a2
b2
16
例题3.3 试用黄金分割法求目标函数f(x)=x2-6x+9的最优解。给定初始区间 [1,7],收敛精度ε=0.4。
解:第一次区间缩短: 计算两内点及对应函数值: x1=a+0.382(b-a)=3.292,y1=f(x1)=0.085264 x2=a+0.618(b-a)=4.708,y2=f(x2)=2.917264 作函数值比较,可见y1<y2, 区间缩短: a = a, b← x2
( f 3 f1 ) c1 ( x x ) 3 1 令 c ( f 2 f1 ) ( x2 x1 ) c1 2 x2 x3
1 c1 x x1 x3 2 c2
* P
22
二、区间的缩短
x2 x
* p
f 2 f p*
第一种情况: f (a (1) ) f (a (2) )
12
可丢掉 (a (2) , b] 部分
第二种情况:
f (a (1) ) f (a (2) )
(1) 可丢掉 [a , a ) 部分
第三种情况: 问题1:λ=? 问题2:如何取点?
f (a (1) ) f (a (2) )
13
原则 : a (1) , a (2) 在区间中的位置相对边界对称 缩小后保留点在新区间中的位置与丢去点在原区间中的位置相当.
x2 x1 a
x3 x2
x3
b
[a, b]确定 比较y2、y3大小: y2 y3 , y2 y3 , 继续前进
置换点号
x1 x2 , y1 y2 x2 x3 , y2 y3
6
由前:
比较y1、y2大小
三、后退搜索
f ( x)
y2 y1 , 前进 y2 y1 , 后退
y2
y1
a0
y 2 y1
用终止准则判断: a b-a=4.708-1=3.708>ε 第二次区间缩短: 置换: x2←x1=3.292,y2←y1=0.085 264 增补: x1=a(1)+0.382(b(1)-a(1))=2.416456, y1=f(x1)=0.340524
1
x1
x1
x2
x2
x2 x * p
f 2 f p*
x2 x
* p
f 2 f p*
x2 x * p
f 2 f p*
23
区间的缩短程序框图
24
P1
三、终止准则
x , x , ..., x
x
*( k ) P
*(1) P
*(2) P
*( k 1) P
, x , ... x
*( k ) P
*
p( x )
2 2 2 2 ( x2 x3 ) f1 ( x3 x12 ) f 2 ( x12 x2 ) f3 B ( x1 x2 )( x2 x3 )( x3 x1 )
( x3 x2 ) x2 x3 f1 ( x1 x3 ) x1 x3 f 2 ( x2 x1 ) x1 x2 f3 C ( x1 x2 )( x2 x3 )( x3 x1 )
p(x)=Ax2+Bx+C 式中A、B、C为待定系数, 可由P1、P2、P3三个插值结点 的信息按下列线性方程组确定
19
f(x)搜索区间为[a,b] 取点x1、x2、x3,构成二次函数 开始时: x1=a x3=b
x2 0.5 x1 x3
P1
p( x )
f ( x)
P2
* fP
P3
第三章 一维优化方法
3.1 搜索区间的确定
进退法
3.2一维搜索的最优化方法
3.2.1 格点法 3.2.2 黄金分割法 3.2.3 二次插值法
1
第三章
一维优化方法
用数值迭代法求解一元函数的极小点和极小值方法称为一维搜 索优化方法。 多维优化问题常常是通过一系列的一维优化方法来实现的。因当搜 ( K 1) X ( K ) S ( K ) 总是位于过点 索方向 S ( K ) 确定后,新设计点 X X ( K ) 的 S ( K ) 方向上。步长 不同, 得到的设计点和相应的函数值 就不同,即只有一个 变量。
一、试探搜索由于最小点x*的位置是未知的
,所以首先要试探最小点x*位于初始点x1的左方 或右方,然后再确定是前进还是后退
x2 x1 h0 , y2 f ( x2 )
比较y1、y2大小 二、前进搜索
y2 y1 , y2 y1 ,
x1, y1 f ( x1 )
前进 后退
x1
o
x
h h0 , h 2h x3 x2 h, y3 f ( x3 )
*
区间缩短率: λ=
2 新区间长度 老区间长度 n 1
10
格点法特点: 程序简单,但计算效率较低,即在一定精度要求下 计算函数值的次数较多,因而不宜用于维数较高的 复杂问题中。
11
3.2.2 黄金分割法
基本思想:逐步缩小搜索区间,直至最小点存在的范围达到允许的 误差范围为止.取中间点为极小点. a (1)与a (2) 且 a a (1) a (2) b, 计算函数值: 在[a,b]内任取两点 , f (a (1) )与f (a (2) ) 进行比较可得:
min f ( x ) o
x1
这种在给定方向上确定最优步长的过程,称一维优 化。 ( k ) 称为最优步长
3
n维问题
F ( x)
f ( )
一系列一维优化问题
f ( )
X*
x2
*
x1
O
*
o
4
一维搜索最优化过程可分为两步: 1、确定极小点所在的初始搜索区间[a,b]
2、在区间[a,b]中搜索极小点。
L1 0.618 L0 L2 0.382 L0 0.382 L0
右图示,第一次区间缩短:
x1 a 0.382(b a ) x2 a 0.618(b a) x2 x1 x1 a 0.382(b a )
L1 0.618 L0
置换点号y x x , y
1 2 1
2
x2 x3 , y2 y3
7
8
例题3.1 试用进退法确定函数f(x)=x2-6x+9的一维优化搜索区间[a, b]。设初始点x1=0,初始步长h0=1。 解:按流程图3.4,计算过程如下:
由于y2<y1,作前进搜索, h←2h=2 x3←x2+h=3,y3=f(x3)=0 比较y2、y3,有y2>y3,再作前进搜索, x1←x2=1,y1←y2=4 x2←x3=3,y2←y3=0 h←2h=4 x3←x2+h=7,y3=f(x3)=16 再比较y2与y3,有y2<y3,则取 a←x1=1,b←x3=7
2
由前基本迭代公式:
x2
X (k )
X ( k 1) = X ( k ) + ( k ) S ( k )
待求 已知
(k )
min F X ( k 1) = min F X ( k ) + ( k ) S ( k )
X ( k 1)
x*
S (k )
min f ( )
计算 f1 f ( x1 ), f 2 f ( x2 ), f3 f ( x3 ) 得三点: P1 ( x1, f1 ), P1 ( x2 , f 2 ), P1 ( x3 , f3 )
作插值函数p(x)
p( x) Ax 2 Bx C
p( x1 ) Ax12 Bx1 C f1 2 p( x1 ) Ax1 Bx1 C f 2 p( x1 ) Ax12 Bx1 C f3
f ( x)
P2
*(1) fP
P3
x
*( k 1) P
x* x*( k ) P
a x1
x2 x1
x *(1) P x2
x3 b x3
25
26
在流程图中有两个判别框的内容需稍加说明。其一是c2=0?若成 立,即:
或写作
这说明三个插值结点P1(x1,f1)、P2(x2,f2)、P3(x3,f3)在同一条直 线上;其二是 * * ( xP -x1)(x3- xP )≤0? (3.14) * 若成立,则说明 xP 落在区间[x1,x3]之外。
置换点号
x1 x2 , y1 y2 x2 x1 , y2 y1
o
h - h0 , h 2h
x3 x2 h, y3 f ( x3 )
x3
x1 x2 x2 x1
x1 b
x
比较y2、y3大小:
y2 y3 , [a, b]确定
x3
a
x2
y2 y3 , 继续后退