基于MATLAB的可行方向法求极值问题参考

基于MATLAB可行方向法求极值的实现

姓名:xxx学号:xxx

(北京理工大学机械与车辆学院车辆工程,北京 )

摘要:在工程实际的优化设计中,随着设计变量数和约束条件数的增加,随机方向搜索法和复合形法等直接优化解法的求解效率会偏低。可行方向法,顾名思义,一种始终在可行域内寻找下降方向的搜索法,以其收敛速度快、效果好的优点已成为求解约束非线性问题的一种有代表性的直接解法,同时也是求解大型约束优化问题的主要方法之一。本文将简单介绍可行方向法的数学思想,采用线性规划法和约束最优步长法编写MATLAB程序,最后通过算例完成对优化问题的求解。

关键字:可行方向法;MATLAB;优化方法。

可行方向法的基本数学思想

1.1可行方向法的搜索策略

可行方向法迭代的第一步都是从可行域的某一初始点出发,沿负梯度方向移至某一个或J个起作用约束面的交集上。以后的搜索路线和迭代计算可根据约束函数和目标函数的不同性状,分别采用以下三种不同策略继续搜索。

由点出发,沿可行方向作一维最优化搜索,若所得新点在可行域内,则再沿方向作一维最优化搜索;若所得的新点不在可行域内,则将它移至约束面上再反复重复上述步骤,若,则停止迭代,如图1.1所示。

由点出发,沿可行方向作一维最优化搜索,若所得新点在可行域外,则沿可行方向以最大步长到达另一个约束面上一点,将该点作为迭代点进行反复搜索,直至满足给出的K-T条件,如图1.2所示。

沿着约束面进行搜索。对于只具有线性约束的非线性规划问题,如图1.3所示,从点出发,沿约束面移动,在有限的几步内即可搜索到约束最优点;对于非线性约束函数,如图1.4所示情况,就是沿着约束面的切线移动,但这样将会进入非可行域,使问题变得复杂。此时,应将进入非可行域的新点X设法调整回约束边界。调整方法为:先规定约束面容差,建立新的约束边界,然后将已经离开约束面的X点沿起作用约束的负梯度方向返回约束面上,计算公式为

式中,为调整步长,可以用试探法确定,也可以用下式估计,使其回到约束边界上。

(1-1)

图1.1图1.2

图1.3图1.4

不管采用哪种搜索方法都要进行两条决策:一是产生一个适用的可行方向;二是沿方向确定一个不会越出可行域的适当的步长因子。

1.2产生可行方向和步长的数学原理

可行方向要保证沿该方向作微小移动后所得的新点是可行点,且目标函数值有所下降。显然可行方向应满足可行和下降两个条件。这里从数学原理的角度分析可行性和下降性。

1.2.1可行性

设为可行域D中的一个点,即。对于某一方向来说,若存在数,使其对于任意的A,式1-2均成立,则称方向对点满足可行性条件。

(1-2)

若点在可行域内,即为内点,则任何方向都满足可行性条件。

当点在某一约束边界上时,如图1.5所示,该约束面就是起作用约束。当点位于一个约束面上时,如图1.6所示,作出初起作用约束的梯度和切线,可见只要与起作用约束的梯度成直角或钝角,则可指向可行域内,满足可行性条件。当同时处于J个约束面时,就要求与这J个约束面的梯度均垂直或交成钝角,如图1.6所示,写成数学表达式如下:

式中,J为起作用约束的个数。上式称为可行性条件。

图1.5图1.6

1.2.2下降性

沿一方向搜索时,要求下降愈快愈好。对某一点来说,负梯度方向为最速下降方向。如果负梯度方向是可行方向,那么负梯度方向是最有利的方向;否则为了保证目标函数值有所下降,至少要使搜索方向与目标函数的负梯度方向成锐角或与梯度方向成钝角,写成数学表达式为

该式称为下降性条件。

如图1.7所示,可行下降方向显然位于点约束面的切线与目标函数等值线的切线所围成的扇形区域内,推广到一般的情况就是可行方向在目标函数超等值面的超切面和J个起作用约束的超切面所围成的超锥体内。该区域称为可行下降方向区。

图1.7

综上所述,当点位于J个起作用的约束面上时,满足

(1-3)

式中,即为可行方向。

1.3可行方向的产生

本文采用线性规划法来产生可行方向,用约束最优步长确定最优步长,为后面编制MATLAB程序做理论基础。本节先阐述线性规划法,下节再对约束最优步长法进行描述。

线性规划法对包含线性和非线性的不等式约束的最优化问题都适用,但不允许有等式约束。其基本原理是将具有一阶连续偏导数的目标函数和约束条件在点用Taylor展开式展成线性近似函数(一次项),并用这些线性近似函数代替目标函数和它的约束条件,使得问题线性化。这样成为

约束条件变为

用代替上式中的X,得到

s.t.

式中,、为常数,只有搜索方向和是未知量。当迭代点位于J个起作用约束边界的交点上时,问题就变成求解线性规划问题:

s.t.

式中,只起到方向作用,故规定其向量的模是有界的

可行方向法的matlab代码,基于MATLAB的可行方向法求极值问题参考.doc相关推荐

  1. 计算识别率的matlab代码,基于MATLAB神经网络图像识别的高识别率代码

    更新时间: 2019年3月14日10:50:04作者: 钱190 今天,我将与您分享一个基于MATLAB神经网络图像识别的高识别代码. 我认为内容非常好. 现在我与大家分享. 具有很好的参考价值. 需 ...

  2. 直方图均衡化 matlab代码,基于matlab的直方图均衡化代码

    基于matlab的直方图均衡化代码 2007-04-15 20:15 clear all %一,图像的预处理,读入彩***像将其灰度化 PS=imread('1.jpg');             ...

  3. 码分多址matlab代码,基于matlab的码分多址系统仿真

    基于matlab的码分多址系统仿真 淮南师范学院电气信息工程学院 2010届电子信息工程专业课程设计报告 课程设计报告 题 目: 基于 Matlab 的 CDMA 多址技术的仿真 学生姓名: 学生学号 ...

  4. 巴特列特窗的matlab代码,基于MATLAB的FIR数字滤波器设计与优化分析.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspmatlab 基于MATLAB的FIR数字滤波器设计与优化分析. ...

  5. 数字识别的matlab代码,基于MATLAB数字识别.doc

    基于MATLAB数字识别 计算机与信息工程学院 本科生毕业论文 基于BP神经网络的手写数字识别算法的设计与实现 班 级: 13汉班 学 号: 20131102507 姓 名: 江晓雪 指导教师: 李艳 ...

  6. 桩基MATLAB代码,基于Matlab GUI平台桥梁桩基承载力计算系统.pdf

    2012年9月第9期 城市道桥与防洪 桥梁结构 103 基于MatlabGUI平台的桥梁桩基承载力计算系统 周玉龙 ,姚永丁,羊 东 (中国水 电顾 问集团华东勘测设计研究院,浙江杭州 310014) ...

  7. 数字扫描变换技术 matlab代码,基于Matlab的数字扫描变换器设计

    B超是目前广泛使用的超声诊断仪,B型超声诊断已经成为临床超声影像诊断中的重要手段[1].数字扫描变换(DigitalScanConverter,DSC)是B超中的核心部分,是计算机技术和数字图像处理技 ...

  8. Matlab:基于Matlab通过GUI实现自动驾驶的车牌智能识别

    Matlab:基于Matlab通过GUI实现自动驾驶的车牌智能识别 目录 车牌图像数据集 视频动态演示 核心代码 相关文章 Matlab:基于Matlab通过GUI实现自动驾驶的车牌智能识别 Matl ...

  9. Matlab:基于Matlab实现人工智能算法应用的简介(SVM支撑向量机GA遗传算法PSO粒子群优化算法)、案例应用之详细攻略

    Matlab:基于Matlab实现人工智能算法应用的简介(SVM支撑向量机&GA遗传算法&PSO粒子群优化算法).案例应用之详细攻略 目录 1.SVM算法使用案例 1.1.Libsvm ...

最新文章

  1. matlab labs,DOCOMO Beijing Labs 借助 MATLAB 将移动通信技术的开发时间缩短 50%
  2. Android 依赖注入可以更简单 —— 新版本 Dagger 2 使用教学
  3. mac全选文字的快捷键_最全Mac系统快捷键一览
  4. Python 数据科学入门
  5. php v9开发网站,phpcms开发步骤
  6. java 路径通配符_java实现路径通配符*,**,?
  7. java面试宝典第五版,《程序员面试宝典(第5版)》和《Java程序员面试宝典(第4版)》的一些看法......
  8. 计算机网络——网线制作和局域网组建
  9. 怎样了解存在---辩证唯物主义认识论
  10. 学习大数据,为大家推荐几本好书
  11. 计算机数学位数,有效位数
  12. 2018ICPC焦作站赛后总结
  13. Vue + TypeScript + Element 搭建简洁时尚的博客网站及踩坑记
  14. 页面地址index.html,分析首页链接:/和/index.html
  15. 从备受质疑到业绩翻盘,这家少女装品牌为何能上演“命运大逆转”?
  16. Axure RP9 动态面板操作使用
  17. 面向商业市场,华为式“抢滩登陆”
  18. arm芯片中的浮点运算(一)
  19. emui和鸿蒙哪个好,今天升级了鸿蒙系统,使用起来还真是传说中的顺滑,比之前的Emui好用。...
  20. 系统中IDE硬盘与SCSI硬盘的区别

热门文章

  1. 大学生用计算机,大学生计算机科学基础
  2. 微机原理与接口技术系列笔记(一)
  3. 防疫新装备友倍康血氧仪
  4. CMD打开IIS,重启iis等
  5. smalltalk资源
  6. 【翻译】Chrome Developer Tools: Element 样式
  7. 点击按钮实现页面切换中英文
  8. C# TreeView基本操作及其节点增,删,改(3级节点)
  9. LeetCode340:至多包含 K 个不同字符的最长子串(python)
  10. word文档加密、只读