您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > MATLAB优化工具箱
本书的主要内容是应用MATLAB来解决最优化问题,通过将“最优化问题”、“MATLAB优化工具箱”和“MATLAB编程”这三方面有机结合进行讲述,即一方面是使用工具箱来快速解决最优化问题,另一方面是通过算法编程深入解决最优化问题。本书侧重于最优化算法的MATLAB实现,同时精选了大量的最优化问题实例,通过实例的求解,生动地教会读者掌握MATLAB在最优化问题方面的应用。通过本书,读者不仅能掌握使用MATLAB最优化工具箱来快速解决实际问题,而且能学会分析优化算法和采用MATLAB编程解决最优化问题,从而提高分析和解决问题的能力。本书可作为信息、数学、经济、金融、管理、运筹、统计、计算机以及有关理工科专业的本科生、研究生作为教材、实验或教学参考书,也可供相关工程技术与管理人员、数学建模爱好者参考。内容简介本书导读图本书使用指南给读者的建议本书主要特色1.内容由浅入深、层次性强2.紧密围绕MATLAB,系统性强3.算法程序及实例丰富,实用性强4.算法编程实现,指导性强5.语言简洁精炼,可读性强5.1工具箱概述5.1.1工具箱的功能5.1.2工具箱的新特色5.1.3工具箱的结构5.2工具箱函数5.3GUI优化工具5.3.1GUI优化工具的启动5.3.2GUI优化工具的界面5.3.3GUI优化工具使用步骤5.3.4GUI优化工具应用实例5.4小结第5章MATLAB优化工具箱5.1.1工具箱的功能优化工具箱主要可以用于解决以下问题:(1)求解无约束条件非线性极小值;(2)求解约束条件下非线性极小值,包括目标逼近问题、极大-极小值问题以及半无限极小值问题;(3)求解二次规划和线性规划问题;(4)非线性最小二乘逼近和曲线拟合;(5)非线性系统的方程求解;(6)约束条件下的线性最小二乘优化;(7)求解复杂结构的大规模优化问题。5.1.2工具箱的新特色MATLABR2008b提供的优化工具箱是4.1版本,4.1版本较之以前的3.x版本,主要增加了以下新的特色。(1)函数fmincon、fminimax和fgoalattain中引入了并行机制,加快了梯度的计算速度;(2)函数gatool和psearchtool整合到优化工具箱GUI中;(3)函数fmincon的求解器中新增内点算法;(4)提供了KNITRO优化库的接口;(5)函数lsqcurvefit、lsqnonlin和fsolve的优化选项参数PrecondBandWidth默认值由0变为inf;(6)优化选项参数TolConSQP的默认值修改为1e–6;(7)输出结构中引入了参数constrviolation。5.1.3工具箱的结构5.2工具箱函数函数输入参数函数输出参数模型输入时需要注意的问题(1)目标函数最小化优化函数fminbnd、fminsearch、fminunc、fmincon、fgoalattain、fminmax和lsqnonlin都要求目标函数最小化。(2)约束非正优化工具箱要求非线性不等式约束的形式为Ci(x)≤0,通过对不等式取负可以达到使大于零的约束形式变为小于零的不等式约束形式的目的。(3)避免使用全局变量ceModel.vi”等VI来实现。5.3GUI优化工具优化工具(optimtool)是2006年9月在MATLAB7.2版本优化工具箱3.1版本中推出的,它是执行下列常见优化任务的图形用户界面。选择求解器并定义优化问题;设置和检查优化选项;运行问题并将结果可视化;在MATLAB工作空间和优化工具之间导入和导出问题定义、算法选项和结果;自动生成M文件代码,以获取工作并自动执行任务;带有图形选项,用来显示对求解器执行期间进度的预定义或自定义测量标准。5.3.1GUI优化工具的启动图5-2优化工具图形界面的菜单启动方式图5-3优化工具图形界面启动GUIOptimizationtool有以下两种方法。(1)在命令行上输入optimtool;(2)在MATLAB主界面单击左下角的“Start”按钮,然后依次选择“Toolboxes→Optimization→Optimizationtool(optimtool)。5.3.2GUI优化工具的界面GUI优化工具的界面主要分为三大块:左边为优化问题的描述及计算结果显示(ProblemSetupandResults);中间为优化选项的设置(Options);右边为帮助(QuickReference)。为了界面的简洁,可以单击右上角的“”按钮将帮助隐藏起来。2.优化选项GUI优化工具的优化选项包括9大类。Stoppingcriteria:停止准则;Functionvaluecheck:函数值检查;User-suppliedderivatives:用户自定义微分(或梯度)函数;Approximatedderivatives:自适应微分(或梯度);Algorithmsettings:算法设置;Inneriterationstoppingcriteria:内迭代停止准则;Plotfunctions:用户自定义绘图函数;Outputfunctions:用户自定义输出函数;Displaytocommandwindow:输出到命令行窗口。5.3.3GUI优化工具使用步骤GUI优化工具的基本使用步骤如下。1、选择求解器solver和优化算法;2、选定目标函数;3、设定目标函数的相关参数;4、设置优化选项;5、单击“Start”按钮,运行求解;6、查看求解器的状态和求解结果;7、将目标函数、选项和结果导入/导出。5.3.4GUI优化工具应用实例例5-1fminunc求解器应用实例。例5-2fminsearch求解器应用实例。例5-3fmincon求解器应用实例。例5-4lsqnonlin求解器应用实例。例5-5linprog求解器应用实例。例5-6ga求解器应用实例。无约束优化(fminunc求解器)建立目标函数文件FunUnc.m文件:functiony=FunUnc(x)y=x^2+4*x-6;然后启动优化工具:在Solver下拉选框中选择fminunc;Algorithm下拉选框中选择Mediumscale;目标函数栏输入@FunUnc;初始点输入0,其余参数默认;单击Start按钮运行。图5-5无约束优化实例无约束优化(fminsearch求解器)启动优化工具:然后在Solver下拉选框中选择fminsearch;目标函数栏输入@(x)abs(x^2-3*x+2);初始点输入-7,其余参数默认;单击Start按钮运行。运行就可得到极小值和对应的值图5-7用fminsearch求解非光滑优化问题约束优化(fmincon求解器)约束优化采用的求解器为fmincon,可用的算法有三种:Trustregionreflective(信赖域反射算法)、Activeset(有效集算法)、Interiorpoint(内点算法)。启动优化工具:在Solver下拉选框中选择fmincon;Algorithm下拉选框中选择Activeset;目标函数栏输入@FunCon;初始点输入[10;10;10];在约束条件的Linearinequalities输入框中输入A为[-1-2-2;122],b为[0;72],其余参数默认;单击Start按钮运行。非线性最小二乘优化(lsqnonlin求解器)启动优化工具:在Solver下拉选框中选择lsqnonlin;算法采用L-M算法;目标函数栏输入@(x)[x^2+x-1;2*x^2-3];初始点输入5,其余参数默认;单击Start按钮运行。运行就可得到极小值和对应的值线性规划(linprog求解器)线性规划采用的求解器为linprog,可用的算法有三种:Largescale(大规模算法)、Mediumscale-simplex(中等规模-单纯形算法)和Mediumscale-Activeset(中等规模-有效集算法),当Mediumscale-Activeset算法时,还要提供初始点。启动优化工具:在Solver下拉选框中选择linprog;算法采用Mediumscale-simplex算法;问题描述组框中的f输入[-4;-1];约束组框中的A输入[-12;23;1-1],b输入[4;12;3],其余参数默认;单击Start按钮运行。智能优化算法(ga求解器)优化工具箱中的智能优化算法包括遗传算法(ga)和模拟退火算法(simulannealbnd),MATLAB中的ga求解器功能非常强大,既能求解无约束优化问题,也能求解约束优化问题,而且约束条件可以是非线性的,但是simulannealbnd求解器只能求解无约束优化问题。在Solver下拉选框中选择ga;在适应函数栏输入@(x)x^4-3*x^3+x^2-2;变量个数输入1,其余参数默认;单击Start按钮运行。5.4小结本章全面介绍了优化工具箱函数的功能、语法,以及GUI优化工具的使用及实例,GUI优化工具是进行MATLAB最优化计算的最简洁、最容易掌握的工具,后面的章节还会对常用的工具箱的函数进行详细讲述,并辅以实例。通过本章读者不仅对MATLAB优化工具箱函数的强大功能有一个初步了解,还为后面更具体的介绍及应用打下基础。
本文标题:MATLAB优化工具箱
链接地址:https://www.777doc.com/doc-3967269 .html