fprintf函数的用法matlab_工程优化设计与Matlab实现——无约束问题的直接解法(三)...

在无约束问题的导数解法中,我们借助梯度方向构造了“两头牛的轭”,我们称其为共轭梯度法。(详情见工程优化设计与Matlab实现——无约束问题的导数解法(四))

在这里,我们不再依赖梯度方向,而从其他角度来入手,构造共轭方向。

共轭方向法

Point 1 共轭方向与函数极值的关系

由于目标函数可以使用在任一点

二次泰勒展开式
来近似,

从而转换为求

这一n元二次函数极值点的问题。

所以我们可以先以二元二次函数为例进行说明:

对于具有正定矩阵

的二元二次函数

有两个性质:

一个是:其等值线为同心椭圆族,中心为极值点;

另一个是:过椭圆族中心的直线与椭圆交点处诸切线相互平行

根据这两个性质有如下推论:按任意搜索方向

,作同心椭圆族的两平行切线,则连接两个切点的直线通过椭圆族中心

所以,如果由

沿
再沿
作一维优化,即可得到极小值点

0334ac1541982739bfe7546cb764814a.png

推广到n元二次函数

对于具有

正定矩阵
的n元二次函数

其性质如下:

是关于
个非零共轭矢量,若从某一个初始点
出发沿任一
)方向进行一维优化搜索,得到等值线的切点,即最优点
;再从另一初始点
沿同一
进行一维搜索得到另一最优点
,则矢量
与矢量组
中的每一向量,关于
共轭。

如果n元二次函数有n个共轭方向

),从任一初始点
出发沿任一
)方向进行一维优化搜索,可得到目标函数的极值点。

对于任意目标函数

任意目标函数

在极值点附近都近似于一个二次函数,即:函数F(x)在极值点附近呈现较强的二次特性;一种算法如果对于二次函数的求优比较有成效,对于任意目标函数
只要初值点选择恰当(初值点
离极值点 不太远),就有较好的求优效果。

Point 2 共轭方向的构成

2c191a50d454921babd739a95f0540f1.png
三维问题共轭方向构成示意图

选取线性无关的坐标单位矢量

,从初始点
出发依次沿
方向作一维优化探索得
点,取
,从
出发再沿
方向作一维优化探索得
点。

点出发依次沿
方向作一维优化探索得
点,取

,再从
出发沿
方向作一维优化探索得
点。

直到第n次循环,构造出

并求得极小点

对于n元二次函数F(x),从初始点

出发沿共轭方向
作n次一维优化探索,理论上
应为n元二次函数
的极小点。

983ca7717c42d01b92eb967f58644383.png
共轭方向法流程图

Point 3 共轭方向法的特点

共轭方向法与坐标轮换法是十分接近的,共轭方向法用构造出来的更优的共轭方向来代替原来的单位矢量方向,这就相当于对坐标轮换法的搜索方向进行了优化,使之能更快的收敛。

但是这样构造出一个方向后就将其用于计算,很可能导致迭代中的n个搜索方向有时会变成线性相关,不能形成共轭方向,导致搜索失败(如下图)。这就需要对共轭方向法进行改进——鲍威尔法(见栗子后面)。

460e3a28ac3786ff4e8f42660e906b5a.png
图片来自网络,侵删

Point 4 共轭方向法的栗子

利用共轭方向法求目标函数

,当初始点为
时的极小值点和极小值。

主程序:

clc

目标函数:

function

共轭方向法函数:

%-----------共轭方向法---主函数-----------%

进退法程序:工程优化设计与Matlab实现——一维搜索方法(一)

黄金分割法程序:工程优化设计与Matlab实现——一维搜索方法(二)

计算结果为:

988ca85d69f11c2cd8e81f6e7db981ba.png

鲍威尔法

鲍威尔法是共轭方向法的一种,克服了共轭方向法更新的搜索方向与原向量组中的向量可能出现线性相关的缺点。

具体改进如下:

在原n个方向和每轮求出的新方向(

)组成的
的n+1个矢量组中
有选择地去掉其中一个,成为下一轮迭代的n个方向矢量。

选择原则:所选择的n个方向矢量是线性无关的——必要条件;并最大限度地保证所选择的n个方向矢量是关于A共轭。

Point 1 Powell判别

初始搜索时,采用共轭方向法完成一轮迭代,即从

点出发依次沿任意选定的n个线性无关的初始方向
做一维优化后得到
点,并找出这一轮迭代中相邻两个迭代点函数值下降最大量,即

求出反射点

则将

中函数值较小的那一个赋值给
作为下一次的初始点,下一轮迭代仍按照原方向
进行。

去掉

(即函数值下降量最大的方向),将
补在方向矢量组最后,得到n维共轭矢量
作为下一轮的迭代方向,并将
方向做一维搜索得到的结果作为下一次的初始点,进行下一轮迭代。

cd676291fc2c943f411cedae1170f7ee.png
鲍威尔法流程图

Point 2 栗子

利用鲍威尔法求目标函数

在初始点为
时的极小值和极小值。

主程序:

clc

目标函数定义:

function

鲍威尔法函数定义:

%-----------鲍威尔法---主函数-----------%

进退法程序:工程优化设计与Matlab实现——一维搜索方法(一)

黄金分割法程序:工程优化设计与Matlab实现——一维搜索方法(二)

计算结果为:

a05d154aab040428ac3d4eb3d6c668be.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值