基于MATLAB的鲍威尔法求极值问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于MATLAB的鲍威尔法求极值问题
姓名:xxx 学号:xxx
(北京理工大学机械与车辆学院车辆工程,北京 100081)
摘要:无约束优化方法主要有七种,按照求导与否把这些方法分为间接法和直接法。牛顿法的成败与初始点选择有极大关系,其可靠性最差;坐标轮换法、单纯形法和最速下降法对于高维优化问题计算效率很低,有效性差;由于编制变尺度法程序复杂,其简便性不足。综合考虑后,鲍威尔法、共轭梯度法具有较好的综合性能。本文首先对鲍威尔法的原理进行阐述,根据其迭代过程给出流程图,并编写MATLAB程序。最后用此MATLAB程序求解实际的极值问题,并对求解结果进行简要分析。
1.鲍威尔法的基本思想
1.1其他优化方法对鲍威尔法形成的影响
通过对鲍威尔法的学习,可以很明显看出来其迭代思想中汲取了其他几种优化方法的核心思想。为了更全面、更深入的学习鲍威尔法,很有必要对其他有影响的优化思想进行学习和梳理。
由最基本的数学基础知识可知,梯度方向是函数增加最快的方向,负梯度方向是函数下降最快的方向,于是,利用这个下降最快方向产生了最速下降法。每次迭代都沿着负梯度方向进行一维搜索,直到满足精度要求为止。其特点是相邻两个搜索方向互相正交,所以很明显的一个现象就是刚开始搜索步长比较大,愈靠近极值点其步长愈小,收敛速度愈慢,特别当二维二次目标函数的等值线是较扁的椭圆时,迭代速度更慢。这时,倘若目标函数是等值线长、短轴都平行于坐标轴的椭圆形,则通过坐标轮换法可以很高效的解决问题。通过两次分别沿坐标轴进行一维搜索,便可达到极值点。但对于目标函数的等值线椭圆的长、短轴倾斜于坐标轴时,坐标轮换法的搜索效率也显得极低。抛开这两种特殊情况,对于一般形态的目标函数,如果在某些明显可以直达最优点的情况下(一般为靠近极
值点区域),迭代过程完全可以不沿负梯度方向搜索,取而代之的是找到直达最优点的方向,一步到位。但这样的直达方向应该如何去找呢?共轭梯度法由此产生。其基本原理是:任意形式的目标函数在极值点附近的特性都近似一个二次函数,其等值线在极值点附近为近似的同心椭圆簇,而同心椭圆簇有一个特性便是任意两条平行线与椭圆簇切点的连线必通过椭圆的中心。而这个连线方向便是所寻找的直达方向。通过对其迭代过程的分析,很明显可以看出需大量的求目标函数的一阶和二阶偏导数。对于一些实际的机械优化问题,目标函数可能复杂到难以求取其偏导数或者根本就不存在,求取极值问题就显得无从下手。所以,一个效率高的、适应性强的优化方法急需出现,而鲍威尔法便是这么一种综合的方法。
1964年,鲍威尔提出了对共轭方向法的改进方法——鲍威尔共轭方向法。一维搜索法、共轭方向和坐标轮换法的思想在鲍威尔法中体现的淋漓尽致。下面就对鲍威尔法的基本原理进行阐述。
1.2鲍威尔法的数学原理
通过前文可知,鲍威尔法也算一种共轭方向法,但与共轭梯度法相比,不需要对函数求导,而是在迭代过程中逐次构造出用于搜索的共轭方法。
1). 对于二维无约束优化问题,采用鲍威尔法求解的迭代过程如图1-1所示。
任选一初始点0
X ,令00
X X =,按照坐标轮换法,选择两个单位向量1110d e ⎡⎤==⎢⎥
⎣⎦
和2201d e ⎡⎤==⎢⎥⎣⎦
,以此作为搜索方向进行第一轮搜索得到0
2X 点。
2). 用00X 和02X 的连线方向构成新的搜索方向1d 。从0
2X 点出发,沿1
d 方向一
维搜索得到1
0X 点,作为下一轮搜索的初始点。
3). 从1
0X 出发,依次沿1201d e ⎡⎤==⎢⎥⎣⎦
和12d d =方向进行一维搜索,得到点11X 和
点1
2X 。
4). 用点10X 和点12X 的连线方向2
11
20
d X X =-构成新的搜索方向。10X 和12X 是从
两个不同点出发沿相同方向1d 搜索得到的,所以1
d 与10X 和1
2X 的连线方向2d 互为共轭方向。从12X 点出发,沿2
d 方向一维搜索得到20X 点。因20X 是从02X 点出发依次沿两个互为共轭的方向1d 和2
d 进行两次一维搜索得到
的,所以20X 就是该二维二次函数的极小点*X 。
图1-1 二维情况下鲍威尔法的迭代过程
将上述二维优化问题扩展到n 维的情况,得到鲍威尔法的基本迭代过程:从初始点出发依次沿n 个线性无关的方向组进行一维搜索得到一个终点,沿初始点和终点的连线方向一维搜索得到下一轮迭代的初始点,并以这个方向作为下一轮迭代方向组中的最后一个方向,同时去掉第一个方向,组成的新方向组进行第一轮迭代。若目标函数是个n 维的正定二次函数,则经过这样的n 轮迭代以后,就可以收敛到最优点。
但是这种方法有一个缺陷,通过这种方法产生的n 个新方向,有可能是线
性相关或近似线性相关的。因为新方向0
1
n
k
k k i n
i i d X X d α==-=∑,如果其中出现了
0i α=,则k d 就可以表示为2d ,3d ,…,n d 的线性组合,这样用新方向k
d 替换
1d 后,新的坐标轮换方向组就成为线性相关的一组向量,以后的各轮迭代计算
将在维数下降了的空间内进行,这将导致算法收敛不到真正的最优点。
针对此现象,通过适当改进,产生了新的鲍威尔法。
1.3改进的鲍威尔法
由上一小节讨论可知,如果对新方向组的形成加以适当的选择,防止其线性相关,则可以避免鲍威尔法的“退化”。在这里直接给出是否用k
d 方向替代m d 来组成新的搜索方向组的判别条件,供后面编程所用。
设()10k f f X =,()2k n f f X =,()302k k n f f X X =-。其中最大者11max k k k m i m m i n
f f -<<∆=∆=-。
若31f f <且22
1231213(2)()0.5()k k m m f f f f f f f -+--∆<∆-成立,
则用k
d 方向替代m d 方向,否则仍用原来的n 个搜索方向。
这样,改进后的鲍威尔法保证了对于非线性函数计算时收敛的可靠性。
2. 迭代过程和算法流程图
2.1迭代过程
1). 给定初值点0X ,n 个线性无关的初始向量组0100[,,
,]n D d d d =及精度
0ε>,置0k =。
2). 从0k k X X =点出发沿01[,,
,]n k k D d d d =中的方向进行一维搜索:
111
11111
0()min ()k k
j k k
j j j j j k k j j j t X X X X d f X d f X d ααα--------≥⎧=⎪⎪=+⎨⎪+=+⎪⎩
,其中1,2,,;j n =