资源描述:
《最优化问题的matlab实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第九章最优化方法的Matlab实现 在生活和工作中,人们对于同一个问题往往会提出多个解决方案,并通过各方面的论证从中提取最佳方案。最优化方法就是专门研究如何从多个方案中科学合理地提取出最佳方案的科学。由于优化问题无所不在,目前最优化方法的应用和研究已经深入到了生产和科研的各个领域,如土木工程、机械工程、化学工程、运输调度、生产控制、经济规划、经济管理等,并取得了显著的经济效益和社会效益。用最优化方法解决最优化问题的技术称为最优化技术,它包含两个方面的内容:1)建立数学模型即用数学语言来描述最优化问题。模型中的数学关系式反映了最优
2、化问题所要达到的目标和各种约束条件。2)数学求解数学模型建好以后,选择合理的最优化方法进行求解。最优化方法的发展很快,现在已经包含有多个分支,如线性规划、整数规划、非线性规划、动态规划、多目标规划等。 9.1概述 利用Matlab的优化工具箱,可以求解线性规划、非线性规划和多目标规划问题。具体而言,包括线性、非线性最小化,最大最小化,二次规划,半无限问题,线性、非线性方程(组)的求解,线性、非线性的最小二乘问题。另外,该工具箱还提供了线性、非线性最小化,方程求解,曲线拟合,二次规划等问题中大型课题的求解方法,为优化方法在工程中
3、的实际应用提供了更方便快捷的途径。9.1.1优化工具箱中的函数优化工具箱中的函数包括下面几类:1.最小化函数表9-1最小化函数表函数描述fgoalattain多目标达到问题fminbnd有边界的标量非线性最小化fmincon有约束的非线性最小化fminimax最大最小化fminsearch,fminunc无约束非线性最小化fseminf半无限问题linprog线性课题quadprog二次课题 2.方程求解函数表9-2方程求解函数表函数描述线性方程求解fsolve非线性方程求解fzero标量非线性方程求解 3.最小二乘(曲线拟合
4、)函数表9-3最小二乘函数表函数描述线性最小二乘lsqlin有约束线性最小二乘lsqcurvefit非线性曲线拟合lsqnonlin非线性最小二乘lsqnonneg非负线性最小二乘 4.实用函数表9-4实用函数表函数描述optimset设置参数optimget 5.大型方法的演示函数表9-5大型方法的演示函数表函数描述circustent马戏团帐篷问题—二次课题molecule用无约束非线性最小化进行分子组成求解optdeblur用有边界线性最小二乘法进行图形处理 6.中型方法的演示函数表9-6中型方法的演示函数表函数描述b
5、andemo香蕉函数的最小化dfildemo过滤器设计的有限精度goaldemo目标达到举例optdemo演示过程菜单tutdemo教程演示 9.1.3参数设置利用optimset函数,可以创建和编辑参数结构;利用optimget函数,可以获得options优化参数。●optimget函数功能:获得options优化参数。语法:val=optimget(options,'param')val=optimget(options,'param',default)描述:val=optimget(options,'param')返回优化
6、参数options中指定的参数的值。只需要用参数开头的字母来定义参数就行了。val=optimget(options,'param',default)若options结构参数中没有定义指定参数,则返回缺省值。注意,这种形式的函数主要用于其它优化函数。举例:1. 下面的命令行将显示优化参数options返回到my_options结构中:val=optimget(my_options,'Display')2. 下面的命令行返回显示优化参数options到my_options结构中(就象前面的例子一样),但如果显示
7、参数没有定义,则返回值'final':optnew=optimget(my_options,'Display','final');参见:optimset ●optimset函数功能:创建或编辑优化选项参数结构。语法:options=optimset('param1',value1,'param2',value2,...)optimsetoptions=optimsetoptions=optimset(optimfun)options=optimset(oldopts,'param1',value1,...)options=opt
8、imset(oldopts,newopts)描述:options=optimset('param1',value1,'param2',value2,...)创建一个称为options的优化选项参数,其中指定的参数具有指定值。所有未指定的参数都设置为空矩阵[](将