MATLAB最优化工具箱操作
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图5-5 无约束优化实例
无约束优化(fminsearch求解器) 无约束优化(fminsearch求解器)
启动优化工具: 然后在Solver下拉选框中选择 fminsearch; 目标函数栏输入@(x)abs(x^23*x+2); 初始点输入-7,其余参数默认; 单击Start按钮运行。 运行就可得到极小值和对应的 值
5.3 GUI优化工具 GUI优化工具
优化工具(optimtool)是2006年9月在MATLAB 7.2版本 优化工具箱3.1版本中推出的,它是执行下列常见优化 任务的图形用户界面。 选择求解器并定义优化问题; 设置和检查优化选项; 运行问题并将结果可视化; 在MATLAB工作空间和优化工具之间导入和导出问题 定义、算法选项和结果; 自动生成M文件代码,以获取工作并自动执行任务; 带有图形选项,用来显示对求解器执行期间进度的预 定义或自定义测量标准。
无约束优化(fminunc求解器) 无约束优化(fminunc求解器)
建立目标函数文件FunUnc.m文件: function y = FunUnc(x) y = x^2 + 4*x -6; 然后启动优化工具: 在Solver下拉选框中选择 fminunc; Algorithm下拉选框中选择 Medium scale; 目标函数栏输入@FunUnc; 初始点输入0,其余参数默认; 单击Start按钮运行。
线性规划(linprog求解器) 线性规划(linprog求解器)
线性规划采用的求解器为linprog,可 用的算法有三种:Large scale(大规 模算法)、Medium scale-simplex (中等规模-单纯形算法)和Medium scale-Active set(中等规模-有效集算 法),当Medium scale-Active set算 法时,还要提供初始点。 启动优化工具: 在Solver下拉选框中选择linprog; 算法采用Medium scale-simplex算法; 问题描述组框中的f输入[-4;-1]; 约束组框中的A输入[-1 2;2 3;1 -1],b 输入[4;12;3],其余参数默认; 单击Start按钮运行。
5.1.3 工具箱的结构
5.2出参数
模型输入时需要注意的问题
(1)目标函数最小化 优化函数fminbnd、fminsearch、fminunc、fmincon、 fgoalattain、fminmax和lsqnonlin都要求目标函数最小化。 (2)约束非正 优化工具箱要求非线性不等式约束的形式为Ci(x)≤0, 通过对不等式取负可以达到使大于零的约束形式变为 小于零的不等式约束形式的目的。 (3)避免使用全局变量ce Model.vi”等VI来实现。
5.3.4 GUI优化工具应用实例 GUI优化工具应用实例
例5-1 例5-2 例5-3 例5-4 例5-5 例5-6 fminunc求解器应用实例。 fminsearch求解器应用实例。 fmincon求解器应用实例。 lsqnonlin求解器应用实例。 linprog求解器应用实例。 ga求解器应用实例。
图5-7 用fminsearch求解非光滑优化问题
约束优化(fmincon求解器) 约束优化(fmincon求解器)
约束优化采用的求解器为fmincon, 可用的算法有三种:Trust region reflective(信赖域反射算法)、 Active set(有效集算法)、 Interior point(内点算法)。 启动优化工具: 在Solver下拉选框中选择fmincon; Algorithm下拉选框中选择Active set; 目标函数栏输入@FunCon; 初始点输入[10;10;10]; 在约束条件的Linear inequalities输 入框中输入A为[-1 -2 -2;1 2 2],b 为[0;72],其余参数默认; 单击Start按钮运行。
5.3.1 GUI优化工具的启动 GUI优化工具的启动
启动GUI Optimization tool有 以下两种方法。 (1)在命令行上 输入optimtool; (2)在MATLAB 主界面单击左下角 的“Start”按钮, 然后依次选择 “Toolboxes→Opti mization→Optimiza tion tool(optimtool)。
非线性最小二乘优化(lsqnonlin求解器) 非线性最小二乘优化(lsqnonlin求解器)
启动优化工具: 在Solver下拉选框中选择lsqnonlin; 算法采用L-M算法; 目标函数栏输入@(x)[x^2+x1;2*x^2-3]; 初始点输入5,其余参数默认; 单击Start按钮运行。 运行就可得到极小值和对应的值
5.4 小结
本章全面介绍了优化工具箱函数的功能、语法, 以及GUI优化工具的使用及实例,GUI优化工 具是进行MATLAB最优化计算的最简洁、最容 易掌握的工具,后面的章节还会对常用的工具 箱的函数进行详细讲述,并辅以实例。 通过本章读者不仅对MATLAB优化工具箱函数 的强大功能有一个初步了解,还为后面更具体 的介绍及应用打下基础。
本书导读图
本书使用指南
给读者的建议
本书主要特色
1.内容由浅入深、层次性强 2.紧密围绕MATLAB,系统性强 3.算法程序及实例丰富,实用性强 4.算法编程实现,指导性强 5.语言简洁精炼,可读性强
第 5章 MATLAB优化工具箱 MATLAB优化工具箱
5.1 工具箱概述 5.1.1 工具箱的功能 5.1.2 工具箱的新特色 5.1.3 工具箱的结构 5.2 工具箱函数 5.3 GUI优化工具 5.3.1 GUI优化工具的启动 5.3.2 GUI优化工具的界面 5.3.3 GUI优化工具使用步骤 5.3.4 GUI优化工具应用实例 5.4 小结
5.3.3 GUI优化工具使用步骤 GUI优化工具使用步骤
GUI优化工具的基本使用步 骤如下。 1、选择求解器solver和优化 算法; 2、选定目标函数; 3、设定目标函数的相关参 数; 4、设置优化选项; 5、单击“Start”按钮,运行 求解; 6、查看求解器的状态和求 解结果; 7、将目标函数、选项和结 果导入/导出。
图5-2 优化工具图形界面的菜单启动方式
图5-3 优化工具图形界面
5.3.2 GUI优化工具的界面 GUI优化工具的界面
GUI优化工具的界面 主要分为三大块: 左边为优化问题的描 述及计算结果显示 (Problem Setup and Results); 中间为优化选项的设 置(Options); 右边为帮助(Quick Reference)。 为了界面的简洁,可 以单击右上角的“<<” 按钮将帮助隐藏起来。
智能优化算法(ga求解器) 智能优化算法(ga求解器)
优化工具箱中的智能优化算法包括 遗传算法(ga)和模拟退火算法 (simulannealbnd),MATLAB中的 ga求解器功能非常强大,既能求解 无约束优化问题,也能求解约束优 化问题,而且约束条件可以是非线 性的,但是simulannealbnd求解器只 能求解无约束优化问题。 在Solver下拉选框中选择ga; 在适应函数栏输入@(x)x^43*x^3+x^2-2; 变量个数输入1,其余参数默认; 单击Start按钮运行。
5.1.2 工具箱的新特色
MATLAB R2008b提供的优化工具箱是4.1版本,4.1版本较 之以前的3.x版本,主要增加了以下新的特色。 (1)函数fmincon、fminimax和fgoalattain中引入了并行 机制,加快了梯度的计算速度; (2)函数gatool和psearchtool 整合到优化工具箱GUI中; (3)函数fmincon的求解器中新增内点算法; (4)提供了KNITRO优化库的接口; 4 KNITRO (5)函数lsqcurvefit、lsqnonlin和fsolve的优化选项参数 PrecondBandWidth默认值由0变为inf; (6)优化选项参数TolConSQP的默认值修改为1e–6; (7)输出结构中引入了参数constrviolation。
《精通MATLAB最优化计算》 精通MATLAB最优化计算》
清华大学 龚纯 2009.4,ISBN:978-7-121-08251-1
内容简介
本书的主要内容是应用MATLAB来解决最优化问题, 通过将“最优化问题”、“MATLAB优化工具箱”和 “MATLAB编程”这三方面有机结合进行讲述,即一 方面是使用工具箱来快速解决最优化问题,另一方面 是通过算法编程深入解决最优化问题。 本书侧重于最优化算法的MATLAB实现,同时精选了 大量的最优化问题实例,通过实例的求解,生动地教 会读者掌握MATLAB在最优化问题方面的应用。 通过本书,读者不仅能掌握使用MATLAB最优化工具 箱来快速解决实际问题,而且能学会分析优化算法和 采用MATLAB编程解决最优化问题,从而提高分析和 解决问题的能力。 本书可作为信息、数学、经济、金融、管理、运筹、 统计、计算机以及有关理工科专业的本科生、研究生 作为教材、实验或教学参考书,也可供相关工程技术 与管理人员、数学建模爱好者参考。
5.1.1 工具箱的功能
优化工具箱主要可以用于解决以下问题: (1)求解无约束条件非线性极小值; (2)求解约束条件下非线性极小值,包 括目标逼近问题、极大-极小值问题以及半 无限极小值问题; (3)求解二次规划和线性规划问题; (4)非线性最小二乘逼近和曲线拟合; (5)非线性系统的方程求解; (6)约束条件下的线性最小二乘优化; (7)求解复杂结构的大规模优化问题。
2.优化选项 GUI优化工具的优化选项包括9大类。 Stopping criteria:停止准则; Function value check:函数值检查; User-supplied derivatives:用户自定 义微分(或梯度)函数; Approximated derivatives:自适应微 分(或梯度); Algorithm settings:算法设置; Inner iteration stopping criteria:内迭 代停止准则; Plot functions:用户自定义绘图函数; Output functions:用户自定义输出函 数; Display to command window:输出到 命令行窗口。
无约束优化(fminsearch求解器) 无约束优化(fminsearch求解器)
启动优化工具: 然后在Solver下拉选框中选择 fminsearch; 目标函数栏输入@(x)abs(x^23*x+2); 初始点输入-7,其余参数默认; 单击Start按钮运行。 运行就可得到极小值和对应的 值
5.3 GUI优化工具 GUI优化工具
优化工具(optimtool)是2006年9月在MATLAB 7.2版本 优化工具箱3.1版本中推出的,它是执行下列常见优化 任务的图形用户界面。 选择求解器并定义优化问题; 设置和检查优化选项; 运行问题并将结果可视化; 在MATLAB工作空间和优化工具之间导入和导出问题 定义、算法选项和结果; 自动生成M文件代码,以获取工作并自动执行任务; 带有图形选项,用来显示对求解器执行期间进度的预 定义或自定义测量标准。
无约束优化(fminunc求解器) 无约束优化(fminunc求解器)
建立目标函数文件FunUnc.m文件: function y = FunUnc(x) y = x^2 + 4*x -6; 然后启动优化工具: 在Solver下拉选框中选择 fminunc; Algorithm下拉选框中选择 Medium scale; 目标函数栏输入@FunUnc; 初始点输入0,其余参数默认; 单击Start按钮运行。
线性规划(linprog求解器) 线性规划(linprog求解器)
线性规划采用的求解器为linprog,可 用的算法有三种:Large scale(大规 模算法)、Medium scale-simplex (中等规模-单纯形算法)和Medium scale-Active set(中等规模-有效集算 法),当Medium scale-Active set算 法时,还要提供初始点。 启动优化工具: 在Solver下拉选框中选择linprog; 算法采用Medium scale-simplex算法; 问题描述组框中的f输入[-4;-1]; 约束组框中的A输入[-1 2;2 3;1 -1],b 输入[4;12;3],其余参数默认; 单击Start按钮运行。
5.1.3 工具箱的结构
5.2出参数
模型输入时需要注意的问题
(1)目标函数最小化 优化函数fminbnd、fminsearch、fminunc、fmincon、 fgoalattain、fminmax和lsqnonlin都要求目标函数最小化。 (2)约束非正 优化工具箱要求非线性不等式约束的形式为Ci(x)≤0, 通过对不等式取负可以达到使大于零的约束形式变为 小于零的不等式约束形式的目的。 (3)避免使用全局变量ce Model.vi”等VI来实现。
5.3.4 GUI优化工具应用实例 GUI优化工具应用实例
例5-1 例5-2 例5-3 例5-4 例5-5 例5-6 fminunc求解器应用实例。 fminsearch求解器应用实例。 fmincon求解器应用实例。 lsqnonlin求解器应用实例。 linprog求解器应用实例。 ga求解器应用实例。
图5-7 用fminsearch求解非光滑优化问题
约束优化(fmincon求解器) 约束优化(fmincon求解器)
约束优化采用的求解器为fmincon, 可用的算法有三种:Trust region reflective(信赖域反射算法)、 Active set(有效集算法)、 Interior point(内点算法)。 启动优化工具: 在Solver下拉选框中选择fmincon; Algorithm下拉选框中选择Active set; 目标函数栏输入@FunCon; 初始点输入[10;10;10]; 在约束条件的Linear inequalities输 入框中输入A为[-1 -2 -2;1 2 2],b 为[0;72],其余参数默认; 单击Start按钮运行。
5.3.1 GUI优化工具的启动 GUI优化工具的启动
启动GUI Optimization tool有 以下两种方法。 (1)在命令行上 输入optimtool; (2)在MATLAB 主界面单击左下角 的“Start”按钮, 然后依次选择 “Toolboxes→Opti mization→Optimiza tion tool(optimtool)。
非线性最小二乘优化(lsqnonlin求解器) 非线性最小二乘优化(lsqnonlin求解器)
启动优化工具: 在Solver下拉选框中选择lsqnonlin; 算法采用L-M算法; 目标函数栏输入@(x)[x^2+x1;2*x^2-3]; 初始点输入5,其余参数默认; 单击Start按钮运行。 运行就可得到极小值和对应的值
5.4 小结
本章全面介绍了优化工具箱函数的功能、语法, 以及GUI优化工具的使用及实例,GUI优化工 具是进行MATLAB最优化计算的最简洁、最容 易掌握的工具,后面的章节还会对常用的工具 箱的函数进行详细讲述,并辅以实例。 通过本章读者不仅对MATLAB优化工具箱函数 的强大功能有一个初步了解,还为后面更具体 的介绍及应用打下基础。
本书导读图
本书使用指南
给读者的建议
本书主要特色
1.内容由浅入深、层次性强 2.紧密围绕MATLAB,系统性强 3.算法程序及实例丰富,实用性强 4.算法编程实现,指导性强 5.语言简洁精炼,可读性强
第 5章 MATLAB优化工具箱 MATLAB优化工具箱
5.1 工具箱概述 5.1.1 工具箱的功能 5.1.2 工具箱的新特色 5.1.3 工具箱的结构 5.2 工具箱函数 5.3 GUI优化工具 5.3.1 GUI优化工具的启动 5.3.2 GUI优化工具的界面 5.3.3 GUI优化工具使用步骤 5.3.4 GUI优化工具应用实例 5.4 小结
5.3.3 GUI优化工具使用步骤 GUI优化工具使用步骤
GUI优化工具的基本使用步 骤如下。 1、选择求解器solver和优化 算法; 2、选定目标函数; 3、设定目标函数的相关参 数; 4、设置优化选项; 5、单击“Start”按钮,运行 求解; 6、查看求解器的状态和求 解结果; 7、将目标函数、选项和结 果导入/导出。
图5-2 优化工具图形界面的菜单启动方式
图5-3 优化工具图形界面
5.3.2 GUI优化工具的界面 GUI优化工具的界面
GUI优化工具的界面 主要分为三大块: 左边为优化问题的描 述及计算结果显示 (Problem Setup and Results); 中间为优化选项的设 置(Options); 右边为帮助(Quick Reference)。 为了界面的简洁,可 以单击右上角的“<<” 按钮将帮助隐藏起来。
智能优化算法(ga求解器) 智能优化算法(ga求解器)
优化工具箱中的智能优化算法包括 遗传算法(ga)和模拟退火算法 (simulannealbnd),MATLAB中的 ga求解器功能非常强大,既能求解 无约束优化问题,也能求解约束优 化问题,而且约束条件可以是非线 性的,但是simulannealbnd求解器只 能求解无约束优化问题。 在Solver下拉选框中选择ga; 在适应函数栏输入@(x)x^43*x^3+x^2-2; 变量个数输入1,其余参数默认; 单击Start按钮运行。
5.1.2 工具箱的新特色
MATLAB R2008b提供的优化工具箱是4.1版本,4.1版本较 之以前的3.x版本,主要增加了以下新的特色。 (1)函数fmincon、fminimax和fgoalattain中引入了并行 机制,加快了梯度的计算速度; (2)函数gatool和psearchtool 整合到优化工具箱GUI中; (3)函数fmincon的求解器中新增内点算法; (4)提供了KNITRO优化库的接口; 4 KNITRO (5)函数lsqcurvefit、lsqnonlin和fsolve的优化选项参数 PrecondBandWidth默认值由0变为inf; (6)优化选项参数TolConSQP的默认值修改为1e–6; (7)输出结构中引入了参数constrviolation。
《精通MATLAB最优化计算》 精通MATLAB最优化计算》
清华大学 龚纯 2009.4,ISBN:978-7-121-08251-1
内容简介
本书的主要内容是应用MATLAB来解决最优化问题, 通过将“最优化问题”、“MATLAB优化工具箱”和 “MATLAB编程”这三方面有机结合进行讲述,即一 方面是使用工具箱来快速解决最优化问题,另一方面 是通过算法编程深入解决最优化问题。 本书侧重于最优化算法的MATLAB实现,同时精选了 大量的最优化问题实例,通过实例的求解,生动地教 会读者掌握MATLAB在最优化问题方面的应用。 通过本书,读者不仅能掌握使用MATLAB最优化工具 箱来快速解决实际问题,而且能学会分析优化算法和 采用MATLAB编程解决最优化问题,从而提高分析和 解决问题的能力。 本书可作为信息、数学、经济、金融、管理、运筹、 统计、计算机以及有关理工科专业的本科生、研究生 作为教材、实验或教学参考书,也可供相关工程技术 与管理人员、数学建模爱好者参考。
5.1.1 工具箱的功能
优化工具箱主要可以用于解决以下问题: (1)求解无约束条件非线性极小值; (2)求解约束条件下非线性极小值,包 括目标逼近问题、极大-极小值问题以及半 无限极小值问题; (3)求解二次规划和线性规划问题; (4)非线性最小二乘逼近和曲线拟合; (5)非线性系统的方程求解; (6)约束条件下的线性最小二乘优化; (7)求解复杂结构的大规模优化问题。
2.优化选项 GUI优化工具的优化选项包括9大类。 Stopping criteria:停止准则; Function value check:函数值检查; User-supplied derivatives:用户自定 义微分(或梯度)函数; Approximated derivatives:自适应微 分(或梯度); Algorithm settings:算法设置; Inner iteration stopping criteria:内迭 代停止准则; Plot functions:用户自定义绘图函数; Output functions:用户自定义输出函 数; Display to command window:输出到 命令行窗口。