最优化方法的Matlab实现

上传人:飞*** 文档编号:39921008 上传时间:2018-05-21 格式:DOC 页数:57 大小:1.03MB
返回 下载 相关 举报
最优化方法的Matlab实现_第1页
第1页 / 共57页
最优化方法的Matlab实现_第2页
第2页 / 共57页
最优化方法的Matlab实现_第3页
第3页 / 共57页
最优化方法的Matlab实现_第4页
第4页 / 共57页
最优化方法的Matlab实现_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《最优化方法的Matlab实现》由会员分享,可在线阅读,更多相关《最优化方法的Matlab实现(57页珍藏版)》请在金锄头文库上搜索。

1、第九章 最优化方法的 Matlab 实现第九章第九章 最优化方法的最优化方法的 MatlabMatlab 实现实现在生活和工作中,人们对于同一个问题往往会提出多个解决方案,并通过各方面的论证 从中提取最佳方案。最优化方法就是专门研究如何从多个方案中科学合理地提取出最佳方案 的科学。由于优化问题无所不在,目前最优化方法的应用和研究已经深入到了生产和科研的 各个领域,如土木工程、机械工程、化学工程、运输调度、生产控制、经济规划、经济管理 等,并取得了显著的经济效益和社会效益。 用最优化方法解决最优化问题的技术称为最优化技术,它包含两个方面的内容: 1)建立数学模型 即用数学语言来描述最优化问题。模

2、型中的数学关系式反映了最优 化问题所要达到的目标和各种约束条件。 2)数学求解 数学模型建好以后,选择合理的最优化方法进行求解。 最优化方法的发展很快,现在已经包含有多个分支,如线性规划、整数规划、非线性规 划、动态规划、多目标规划等。9.19.1 概概 述述利用 Matlab 的优化工具箱,可以求解线性规划、非线性规划和多目标规划问题。具体 而言,包括线性、非线性最小化,最大最小化,二次规划,半无限问题,线性、非线性方程 (组)的求解,线性、非线性的最小二乘问题。另外,该工具箱还提供了线性、非线性最小 化,方程求解,曲线拟合,二次规划等问题中大型课题的求解方法,为优化方法在工程中的 实际应用

3、提供了更方便快捷的途径。9.1.19.1.1 优化工具箱中的函数优化工具箱中的函数优化工具箱中的函数包括下面几类:1 1最小化函数最小化函数表表 9-19-1 最小化函数表最小化函数表函函 数数描描 述述fgoalattain多目标达到问题fminbnd有边界的标量非线性最小化fmincon有约束的非线性最小化fminimax最大最小化fminsearch, fminunc无约束非线性最小化fseminf半无限问题linprog线性规划quadprog二次规划第九章 最优化方法的 Matlab 实现2 2方程求解函数方程求解函数表表 9-29-2 方程求解函数表方程求解函数表函函 数数描描 述

4、述线性方程求解fsolve非线性方程求解fzero标量非线性方程求解3 3最小二乘(曲线拟合)函数最小二乘(曲线拟合)函数表表 9-39-3 最小二乘函数表最小二乘函数表函函 数数描描 述述线性最小二乘lsqlin有约束线性最小二乘lsqcurvefit非线性曲线拟合lsqnonlin非线性最小二乘lsqnonneg非负线性最小二乘4 4实用函数实用函数表表 9-49-4 实用函数表实用函数表函函 数数描描 述述optimset设置参数optimget5 5大型方法的演示函数大型方法的演示函数表表 9-59-5 大型方法的演示函数表大型方法的演示函数表函函 数数描描 述述circustent马

5、戏团帐篷问题二次课题molecule用无约束非线性最小化进行分子组成求解optdeblur用有边界线性最小二乘法进行图形处理6 6中型方法的演示函数中型方法的演示函数表表 9-69-6 中型方法的演示函数表中型方法的演示函数表函函 数数描描 述述bandemo香蕉函数的最小化dfildemo过滤器设计的有限精度goaldemo目标达到举例optdemo演示过程菜单tutdemo教程演示9.1.39.1.3 参数设置参数设置利用 optimset 函数,可以创建和编辑参数结构;利用 optimget 函数,可以获得第九章 最优化方法的 Matlab 实现options 优化参数。 optimge

6、t 函数 功能功能:获得 options 优化参数。 语法语法:val = optimget(options,param) val = optimget(options,param,default) 描述描述: val = optimget(options,param) 返回优化参数 options 中指定的参数的值。 只需要用参数开头的字母来定义参数就行了。 val = optimget(options,param,default) 若 options 结构参数中没有定义指 定参数,则返回缺省值。注意,这种形式的函数主要用于其它优化函数。 举例举例: 1下面的命令行将显示优化参数 optio

7、ns 返回到 my_options 结构中:val = optimget(my_options,Display) 2下面的命令行返回显示优化参数 options 到 my_options 结构中(就象前 面的例子一样) ,但如果显示参数没有定义,则返回值final:optnew = optimget(my_options,Display,final); 参见参见:optimset optimset 函数 功能功能:创建或编辑优化选项参数结构。 语法语法:options = optimset(param1,value1,param2,value2,.) optimset options = op

8、timset options = optimset(optimfun) options = optimset(oldopts,param1,value1,.) options = optimset(oldopts,newopts) 描述描述: options = optimset(param1,value1,param2,value2,.) 创建一个称为 options 的优化选项参数,其中指定的参数具有指定值。所有未指定的参数都设 置为空矩阵(将参数设置为表示当 options 传递给优化函数时给参数赋缺省 值) 。赋值时只要输入参数前面的字母就行了。 optimset 函数没有输入输出变量

9、时,将显示一张完整的带有有效值的参数列表。options = optimset (with no input arguments) 创建一个选项结构 options,其中所有的元素被设置为。 options = optimset(optimfun) 创建一个含有所有参数名和与优化函数 optimfun 相关的缺省值的选项结构 options。第九章 最优化方法的 Matlab 实现options = optimset(oldopts,param1,value1,.) 创建一个 oldopts 的拷贝, 用指定的数值修改参数。 options = optimset(oldopts,newopts

10、) 将已经存在的选项结构 oldopts 与新的 选项结构 newopts 进行合并。newopts 参数中的所有元素将覆盖 oldopts 参数中 的所有对应元素。 举例举例:1下面的语句创建一个称为 options 的优化选项结构,其中显示参数设为 iter,TolFun 参数设置为 1e-8:options = optimset(Display,iter,TolFun,1e-8)2下面的语句创建一个称为 options 的优化结构的拷贝,改变 TolX 参数的 值,将新值保存到 optnew 参数中:optnew = optimset(options,TolX,1e-4);3下面的语句返

11、回 options 优化结构,其中包含所有的参数名和与 fminbnd 函数相关的缺省值:options = optimset(fminbnd)4若只希望看到 fminbnd 函数的缺省值,只需要简单地键入下面的语句就 行了:optimset fminbnd或者输入下面的命令,其效果与上面的相同:optimset(fminbnd) 参见参见:optimget9.1.49.1.4 模型输入时需要注意的问题模型输入时需要注意的问题使用优化工具箱时,由于优化函数要求目标函数和约束条件满足一定的格式,所以需要 用户在进行模型输入时注意以下几个问题: 1.目标函数最小化 优化函数 fminbnd、fmi

12、nsearch、fminunc、fmincon、fgoalattain、fminmax 和 lsqnonlin 都要求目标函数最小化,如果优化问题要求目标函数最大化,可以通过使该目标 函数的负值最小化即-f(x)最小化来实现。近似地,对于 quadprog 函数提供-H 和-f,对于 linprog 函数提供-f。 2.约束非正 优化工具箱要求非线性不等式约束的形式为 Ci(x)0,通过对不等式取负可以达到使大 于零的约束形式变为小于零的不等式约束形式的目的,如 Ci(x)0 形式的约束等价于- Ci(x) 0;Ci(x)b 形式的约束等价于- Ci(x)+b0。 3.避免使用全局变量9.1.

13、59.1.5 (函数句柄)函数(函数句柄)函数第九章 最优化方法的 Matlab 实现MATLAB6.0 中可以用函数进行函数调用。函数返回指定 MATLAB 函数的句柄,其调用 格式为:handle = function 利用函数进行函数调用有下面几点好处:用句柄将一个函数传递给另一个函数;减少定义函数的文件个数;改进重复操作;保证函数计算的可靠性。 下面的例子为 humps 函数创建一个函数句柄,并将它指定为 fhandle 变量。fhandle = humps; 同样传递句柄给另一个函数,也将传递所有变量。本例将刚刚创建的函数句柄传递给 fminbnd 函数,然后在区间0.3,1上进行最

14、小化。x = fminbnd (humps, 0.3, 1) x =0.63709.29.2 最小化问题最小化问题9.2.19.2.1 单变量最小化单变量最小化9.2.1.19.2.1.1 基本数学原理基本数学原理本节讨论只有一个变量时的最小化问题,即一维搜索问题。该问题在某些情况下可以直 接用于求解实际问题,但大多数情况下它是作为多变量最优化方法的基础在应用,因为进行 多变量最优化要用到一维搜索法。该问题的数学模型为:21)(minxxxxf x 其中,x x,x1x1,和x2x2为标量,f f(x x)为函数,返回标量。 该问题的搜索过程可用下式表达:dxxkk1其中xk为本次迭代的值,d

15、为搜索方向,为搜索方向上的步长参数。所以一维搜索 就是要利用本次迭代的信息来构造下次迭代的条件。 求解单变量最优化问题的方法有很多种,根据目标函数是否需要求导,可以分为两类, 即直接法和间接法。直接法不需要对目标函数进行求导,而间接法则需要用到目标函数的导 数。 1 1直接法直接法 常用的一维直接法主要有消去法和近似法两种。第九章 最优化方法的 Matlab 实现(1)消去法 该法利用单峰函数具有的消去性质进行反复迭代,逐渐消去不包含极小 点的区间,缩小搜索区间,直到搜索区间缩小到给定的允许精度为止。一种典型的消去法为 黄金分割法(Golden Section Search)。黄金分割法的基本思想是在单峰区间内适当插入两 点,将区间分为三段,然后通过比较这两点函数值的大小来确定是删去最左段还是最右段, 或同时删去左右两段保留中间段。重复该过程使区间无限缩小。插入点的位置放在区间的黄 金分割点及其对称点上,所以该法称为黄金分割法。该法的优点是算法简单,效率较高,稳 定性好。 (2)多项式近似法 该法用于目标函数比较复杂的情况。此时寻找一个与它近似的函 数代替目标函数,并用近似函数的极小点作为原函数极小点的近似。常用的近似函数为二次 和三次多项式。 二次内插涉及到形如下式的二次函数数

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号