最优化方法的Matlab实现公式

上传人:鲁** 文档编号:477710841 上传时间:2023-03-28 格式:DOC 页数:84 大小:282.50KB
返回 下载 相关 举报
最优化方法的Matlab实现公式_第1页
第1页 / 共84页
最优化方法的Matlab实现公式_第2页
第2页 / 共84页
最优化方法的Matlab实现公式_第3页
第3页 / 共84页
最优化方法的Matlab实现公式_第4页
第4页 / 共84页
最优化方法的Matlab实现公式_第5页
第5页 / 共84页
点击查看更多>>
资源描述

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

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

2、以后,选择合理的最优化方法进展求解。最优化方法的开展很快,现在已经包含有多个分支,如线性规划、整数规划、非线性规划、动态规划、多目标规划等。9.1 概 述 利用Matlab的优化工具箱,可以求解线性规划、非线性规划和多目标规划问题。具体而言,包括线性、非线性最小化,最大最小化,二次规划,半无限问题,线性、非线性方程组的求解,线性、非线性的最小二乘问题。另外,该工具箱还提供了线性、非线性最小化,方程求解,曲线拟合,二次规划等问题中大型课题的求解方法,为优化方法在工程中的实际应用提供了更方便快捷的途径。 优化工具箱中的函数 优化工具箱中的函数包括下面几类: 1最小化函数表9-1 最小化函数表函 数

3、描 述fgoalattain多目标到达问题fminbnd有边界的标量非线性最小化fmincon有约束的非线性最小化fminima*最大最小化fminsearch, fminunc无约束非线性最小化fseminf半无限问题linprog线性课题quadprog二次课题2方程求解函数表9-2 方程求解函数表函 数描 述线性方程求解fsolve非线性方程求解fzero标量非线性方程求解3最小二乘曲线拟合函数表9-3 最小二乘函数表函 数描 述线性最小二乘lsqlin有约束线性最小二乘lsqcurvefit非线性曲线拟合lsqnonlin非线性最小二乘lsqnonneg非负线性最小二乘4实用函数表9-

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

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

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

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

8、guments) 创立一个选项构造options,其中所有的元素被设置为。options = optimset(optimfun) 创立一个含有所有参数名和与优化函数optimfun相关的缺省值的选项构造options。options = optimset(oldopts,param1,value1,.) 创立一个oldopts的拷贝,用指定的数值修改参数。options = optimset(oldopts,newopts) 将已经存在的选项构造oldopts与新的选项构造newopts进展合并。newopts参数中的所有元素将覆盖oldopts参数中的所有对应元素。举例: 1下面的语句创立

9、一个称为options的优化选项构造,其中显示参数设为iter,TolFun参数设置为1e-8: options = optimset(Display,iter,TolFun,1e-8) 2下面的语句创立一个称为options的优化构造的拷贝,改变Tol*参数的值,将新值保存到optnew参数中: optnew = optimset(options,Tol*,1e-4); 3下面的语句返回options优化构造,其中包含所有的参数名和与fminbnd函数相关的缺省值: options = optimset(fminbnd) 4假设只希望看到fminbnd函数的缺省值,只需要简单地键入下面的语句

10、就行了: optimset fminbnd 或者输入下面的命令,其效果与上面的一样: optimset(fminbnd)参见:optimget 模型输入时需要注意的问题使用优化工具箱时,由于优化函数要求目标函数和约束条件满足一定的格式,所以需要用户在进展模型输入时注意以下几个问题:1.目标函数最小化优化函数fminbnd、fminsearch、fminunc、fmincon、fgoalattain、fminma*和lsqnonlin都要求目标函数最小化,如果优化问题要求目标函数最大化,可以通过使该目标函数的负值最小化即-f(*)最小化来实现。近似地,对于quadprog函数提供-H和-f,对于

11、linprog函数提供-f。2.约束非正优化工具箱要求非线性不等式约束的形式为Ci(*)0,通过对不等式取负可以到达使大于零的约束形式变为小于零的不等式约束形式的目的,如Ci(*)0形式的约束等价于- Ci(*)0;Ci(*)b形式的约束等价于- Ci(*)+b0。3.防止使用全局变量 函数句柄函数 MATLAB6.0中可以用函数进展函数调用。函数返回指定MATLAB函数的句柄,其调用格式为: handle = function利用函数进展函数调用有下面几点好处:用句柄将一个函数传递给另一个函数;减少定义函数的文件个数;改良重复操作;保证函数计算的可靠性。下面的例子为humps函数创立一个函数

12、句柄,并将它指定为fhandle变量。 fhandle = humps;同样传递句柄给另一个函数,也将传递所有变量。本例将刚刚创立的函数句柄传递给fminbnd函数,然后在区间0.3,1上进展最小化。* = fminbnd (humps, 0.3, 1)* = 0.63709.2 最小化问题 单变量最小化.1 根本数学原理本节讨论只有一个变量时的最小化问题,即一维搜索问题。该问题在*些情况下可以直接用于求解实际问题,但大多数情况下它是作为多变量最优化方法的根底在应用,因为进展多变量最优化要用到一维搜索法。该问题的数学模型为: 其中,*,*1,和*2为标量,f(*)为函数,返回标量。该问题的搜索

13、过程可用下式表达:其中*k为本次迭代的值,d为搜索方向,为搜索方向上的步长参数。所以一维搜索就是要利用本次迭代的信息来构造下次迭代的条件。求解单变量最优化问题的方法有很多种,根据目标函数是否需要求导,可以分为两类,即直接法和间接法。直接法不需要对目标函数进展求导,而间接法则需要用到目标函数的导数。1直接法常用的一维直接法主要有消去法和近似法两种。1消去法 该法利用单峰函数具有的消去性质进展反复迭代,逐渐消去不包含极小点的区间,缩小搜索区间,直到搜索区间缩小到给定的允许精度为止。一种典型的消去法为黄金分割法(Golden Section Search)。黄金分割法的根本思想是在单峰区间内适当插入

14、两点,将区间分为三段,然后通过比拟这两点函数值的大小来确定是删去最左段还是最右段,或同时删去左右两段保存中间段。重复该过程使区间无限缩小。插入点的位置放在区间的黄金分割点及其对称点上,所以该法称为黄金分割法。该法的优点是算法简单,效率较高,稳定性好。2多项式近似法 该法用于目标函数比拟复杂的情况。此时寻找一个与它近似的函数代替目标函数,并用近似函数的极小点作为原函数极小点的近似。常用的近似函数为二次和三次多项式。二次内插涉及到形如下式的二次函数数据拟合问题: 其中步长极值为:然后只要利用三个梯度或函数方程组就可以确定系数a和b,从而可以确定*。得到该值以后,进展搜索区间的收缩。在缩短的新区间中,重新安排三点求出下一次的近似极小点*,如此迭代下去,直到满足终止准则为止。其迭代公式为:其中 二次插值法的计算速度比黄金分割法的快,但是对于一些强烈扭曲或可能多峰的函数,该法的收敛速度会变得很慢,甚至失败。2间接法 间接法需要计算目标函数的导数,优点是计算速度很快。常见的间接法包括牛顿切线法、对分法、割线法和三次插值多项式近似法等。优化工具

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

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