基于MATLAB优化工具箱的优化计算.ppt_第1页
基于MATLAB优化工具箱的优化计算.ppt_第2页
基于MATLAB优化工具箱的优化计算.ppt_第3页
基于MATLAB优化工具箱的优化计算.ppt_第4页
基于MATLAB优化工具箱的优化计算.ppt_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章基于MATLAB优化工具箱的优化计算 9 1MATLAB优化工具箱 一 常用的优化功能函数求解线性规划问题的主要函数是linprog 求解二次规划问题的主要函数是quadprog 求解无约束非线性规划问题的主要函数是fminbnd fminunc和fminsearch 求解约束非线性规划问题的主要函数是fgoalattain和fminimax 1 线性规划数学模型 数学模型形式 minfTXs t AX b 线性不等式约束条件 AeqX beq 线性等式约束条件 lb X ub 边界约束条件 常用的简化模型 minfTXs t AX b 线性不等式约束条件 数学模型形式 s t AX b 线性不等式约束条件 AeqX beq 线性等式约束条件 lb X ub 边界约束条件 2 二次规划问题数学模型 二次函数 目标函数 1 数学模型形式 minf X s t AX b 线性不等式约束 AeqX beq 线性等式约束 C X 0 非线性不等式约束条件 Ceq X 0 非线性等式约束 Lb X Ub 边界约束条件 约束条件 3 无约束非线性规划数学模型形式 minf X 例1 求解二维无约束优化问题f x x14 3x12 x22 2x1 2x2 2x12x2 6 的极小值 例2 求解二维无约束优化问题min 例13求在0 x 8中的最小值与最大值 数学模型形式 minf X 函数为f x 非线性函数 s t AX b 线性不等式约束 AeqX beq 线性等式约束 C X 0 非线性不等式约束条件 Ceq X 0 非线性等式约束 Lb X Ub 边界约束条件 约束条件 4 约束线性规划 3 1matlab优化函数 二 一般步骤 建立目标函数文件 针对具体工程问题建立优化设计的数学模型 不等式约束条件表示成g X 0的形式 建立调用优化工具函数的命令文件 文件内容 必须的输入参数 描述标函数表达式等存储 以自定义的目标函数文件名存储在文件夹中 建立约束函数文件 文件内容 必须的输入参数 约束函数表达式等存储 以自定义的约束函数文件名存储在文件夹中 将优化设计的命令文件复制到MATLAB命令窗口中进行运算求解 分析优化设计的数学模型 选择适用的优化工具函数文件内容 初始点 设计变量的边界约束条件 运算结果输出等内容存储 以自定义的命令文件名存储于文件夹中 小例 求解二维无约束优化问题min 解 首先编制目标函数functionf li3mubiao fminunc x a 64516 hd pi 180 f a x 1 x 1 tan x 2 hd 2 x 1 sin x 2 hd 注意 保存时 要使保存的文件名与函数名一致再编制主函数x0 25 45 x fminunc fminunc li3mubiao fminunc x0 保存后运行得到优化结果 x 192 995860 0005fminunc 668 5656 9 2线性规划问题 一 线性规划数学模型 1 主要应用对象 1 在有限的资源条件下完成最多的任务 2 如何统筹任务以使用最少资源 2 数学模型形式 minfTXs t AX b 线性不等式约束条件 AeqX beq 线性等式约束条件 lb X ub 边界约束条件 约束条件 决策变量 目标函数 非负数 线性 3 MATLAB中函数调用格式 xopt fopt linprog f A b Aeq beq lb ub x0 options 最优解 最优值 目标函数各维变量系数向量 初始点 可选项 二 例题 生产规划问题 某厂利用a b c三种原料生产A B C三种产品 已知生产每种产品在消耗原料方面的各项指标和单位产品的利润 以及可利用的数量 试制定适当的生产规划使得该工厂的总利润最大 x1 x2 x3 2x1 4x2 3x3 3x1 4x2 2x3 2x1 x1 x2 3x2 2x3 2x3 3 确定约束条件 X x1 x2 x3 T 4 编制线性规划计算的M文件f 2 4 3 A 3 4 2 2 1 2 1 3 2 b 600 400 800 Aeq beq lb zeros 3 1 xopt fopt linprog f A b Aeq beq lb 二 例题 解 1 确定决策变量 max2x1 4x2 3x3 3x1 4x2 2x3 600 2x1 x2 2x3 400 x1 3x2 2x3 800 设生产A B C三种产品的数量分别是x1 x2 x3 决策变量 根据三种单位产品的利润情况 按照实现总的利润最大化 建立关于决策变量的函数 2 建立目标函数 根据三种资料数量限制 建立三个线性不等式约束条件 5 M文件运行结果 Optimizationterminatedsuccessfully xopt 0 000066 6667166 6667fopt 766 6667 x1 x2 x3 0 xopt fopt linprog f A b Aeq beq lb ub x0 options Linprog函数使用的拓展 求解线性规划 线性规划是一种优化方法 Matlab优化工具箱中有现成函数linprog对如下式描述的LP问题求解 解 编写M文件小xxgh1 m如下 c 0 4 0 28 0 32 0 72 0 64 0 6 A 0 010 010 010 030 030 03 0 02000 0500 00 02000 050 000 03000 08 b 850 700 100 900 Aeq beq vlb 0 0 0 0 0 0 vub x fval linprog c A b Aeq beq vlb vub 解 编写M文件xxgh2 m如下 c 634 A 010 b 50 Aeq 111 beq 120 vlb 30 0 20 vub x fval linprog c A b Aeq beq vlb vub 9 3二次规划问题 1 研究意义 1 最简单的非线性规划问题 2 求解方法比较成熟 2 数学模型形式 s t AX b 线性不等式约束条件 AeqX beq 线性等式约束条件 lb X ub 边界约束条件 一 二次规划问题数学模型 约束条件 决策变量 目标函数 二次函数 3 MATLAB中函数调用格式 xopt fopt quadprog H C A b Aeq beq lb ub x0 options 最优解 最优值 目标函数的海赛矩阵 初始点 可选项 目标函数的一次项系数向量 结果xopt 2 571 1 143 0 000 fopt 16 4898 二 例题 求解约束优化问题 s t 解 1 将目标函数写成二次函数的形式 其中 xopt fopt quadprog H C A b Aeq beq lb ub x0 options 2 编写求解二次规划的M文件 H 4 2 0 2 4 0 0 0 2 C 0 0 1 A 1 3 2 b 6 Aeq 2 1 1 beq 4 lb zeros 3 1 xopt fopt quadprig H C A b Aeq beq lb 例2minf x1 x2 2x1 6x2 x1 2 2x1 x2 2 x2 2s t x1 x2 2 x1 2x2 2x1 0 x2 01 写成标准形式 s t 2 输入命令 H 2 2 24 c 2 6 A 11 12 b 2 2 Aeq beq VLB 0 0 VUB x z quadprog H c A b Aeq beq VLB VUB 3 运算结果为 x 0 66671 3333z 8 2222 程序 编写M文件mainG m如下 H 1 1 12 f 2 6 A 11 12 b 2 2 Aeq beq lb 0 0 ub X fval exitflag quadprog H f A b Aeq beq lb ub 结果 X 0 66671 3333fval 8 2222exitflag 1 程序 编写M文件mainG m如下 H 2 2 24 f 4 12 A 11 12 21 b 2 2 3 lb zeros 2 1 x fval exitflag quadprog H f A b lb 结果 x 0 66671 3333fval 16 4444exitflag 1 9 4无约束非线性规划问题 无约束非线性规划问题的MATLAB函数有 fminbnd 要求目标函数为连续函数 只求解单变量问题 fminunc 可求解单变量和多变量问题 适用于简单优化问题 可求解复杂优化问题 fminsearch 三个函数 fminbnd fminunc fminsearch 三个都是解无约束非线性规划问题三者有相同点与不同点 1 Fminbnd是解单变量无约束非线性规划问题Fminunc和fminsearch可用于求解单变量或多变量的无约束非线性规划问题 2 fminbnd和fminunc要求目标函数为连续函数 3 fminbnd和fminsearch的优化算法比较简单 适用于比较简单无约束非线性规划问题 函数fminunc的优化算法较复杂 适用于求解比较复杂的优化问题 4 这三个函数只能输出局部最优解 1 使用格式 xopt fopt fminbnd fun x1 x2 options 9 4 1函数fminbnd 设置优化选项参数 迭代搜索区间 目标函数 返回目标函数的最优值 返回目标函数的最优解 2 例题 求解一维无约束优化问题f x x3 cosx xlogx ex 在区间 0 1 中的极小值 解 1 编制求解优化问题的M文件 求解一维优化问题fun inline x 3 cos x x log x exp x x 目标函数x1 0 x2 1 搜索区间 xopt fopt fminbnd fun x1 x2 2 编制一维函数图形的M文件 ezplot fun 0 10 title x 3 cosx xlogx e x gridon 9 4 1函数fminbnd 运行结果 xopt 0 5223fopt 0 3974 3 2简单实例例1 函数fminbnd实例 求解一维无约束优化问题f x x 1 x 2 2在区间 0 1 中的极小值 解 编制求解的M文件fun inline x 1 x 2 2 x x1 0 x2 1 xopt fopt fminbnd fun x1 x2 优化的结果 xopt 0 9999fopt 2 0002 1 使用格式 xopt fopt fminsearch fun x0 options 9 4 2函数fminsearch 设置优化选项参数 初始点 目标函数 返回目标函数的最优值 返回目标函数的最优解 2 例题 求解二维无约束优化问题f x x14 3x12 x22 2x1 2x2 2x12x2 6 的极小值 解 1 编制求解二维无约束优化问题的M文件 求解二维优化问题fun x 1 4 3 x 1 2 x 2 2 2 x 1 2 x 2 2 x 1 2 x 2 6 x0 0 0 初始点 xopt fopt fminsearch fun x0 2 讨论 将目标函数写成函数文件的形式 目标函数文件search mfunctionf search x f x 1 4 3 x 1 2 x 2 2 2 x 1 2 x 2 2 x 1 2 x 2 6 则命令文件变为 命令文件名称为eg9 4 mx0 0 0 初始点 xopt fopt fminsearch search x0 9 4 2函数fminsearch 运行结果 xopt 1 00002 0000fopt 4 0000 fun x 1 4 3 x 1 2 x 2 2 2 x 1 2 x 2 2 x 1 2 x 2 6 x0 0 0 xopt fopt fminsearch fun x0 优化结果xopt 1 00002 0000fopt 4 0000 讨论 目标文件的表达方式 f x x14 3x12 x22 2x1 2x2 2x12x2 6 1 字符串表示fun x 1 4 3 x 1 2 x 2 2 2 x 2 2 x 1 2 x 2 6 调用 xopt fopt fminsearch fun x0 2 内联函数表示fun inline x 1 4 3 x 1 2 x 2 2 2 x 2 2 x 1 2 x 2 6 x 调用 xopt fopt fminsearch fun x0 3 函数句柄 表示fun x x 1 4 3 x 1 2 x 2 2 2 x 2 2 x 1 2 x 2 6调用 xopt fopt fminsearch fun x0 4 M文件表示 目标函数比较复杂时需要用M文件进行表示 functionf fun x f x 1 4 3 x 1 2 x 2 2 2 x 2 2 x 1 2 x 2 6调用 xopt fopt fminsearch fun x0 或 xopt fopt fminsearch fun x0 1 使用格式 x fval exitflag output grad hessian fminunc fun x0 options P1 P2 9 4 3函数fminunc 设置优化选项参数 初始点 调用目标函数的函数文件名 目标函数在最优解的海色矩阵 返回目标函数在最优解的梯度 优化算法信息的一个数据结构 返回算法的终止标志 返回目标函数的最优值 返回目标函数的最优解 附加参数 matlab解多元函数无约束优化问题 fminsearch是用单纯形法寻优 fminunc的算法见以下几点说明 使用fminunc和fminsearch可能会得到局部最优解 3 fminunc为中型优化算法的步长一维搜索提供了两种算法 由options中参数LineSearchType控制 LineSearchType quadcubic 缺省值 混合的二次和三次多项式插值 LineSearchType cubicpoly 三次多项式插值 说明 1 fminunc为无约束优化提供了大型优化和中型优化算法 由options中的参数LargeScale控制 LargeScale on 默认值 使用大型算法LargeScale off 默认值 使用中型算法 2 fminunc为中型优化算法的搜索方向提供了3种算法 由options中的参数HessUpdate控制 HessUpdate bfgs 默认值 拟牛顿法的BFGS公式 HessUpdate dfp 拟牛顿法的DFP公式 HessUpdate steepdesc 最速下降法 例1minf x 4x12 2x22 4x1x2 2x2 1 ex1 1 编写M 文件fun m functionf fun x f exp x 1 4 x 1 2 2 x 2 2 4 x 1 x 2 2 x 2 1 2 输入M文件wliti m如下 x0 1 1 x fminunc fun x0 y fun x 3 运行结果 x 0 5000 1 0000y 1 3029e 10 用fminsearch函数求解 输入命令 f 100 x 2 x 1 2 2 1 x 1 2 x fval exitflag output fminsearch f 1 22 运行结果 x 1 00001 0000fval 1 9151e 010exitflag 1output iterations 108funcCount 202algorithm Nelder Meadsimplexdirectsearch 4 用fminunc函数 1 建立M 文件fun2 mfunctionf fun2 x f 100 x 2 x 1 2 2 1 x 1 2 2 简单计算 x fval exitflag output fminunc fun2 1 22 3 比较各种算法主程序compare m 基本假设 1 价格与销量成线性关系 2 成本与产量成负指数关系 模型建立 若根据大量的统计数据 求出系数b1 100 a11 1 a12 0 1 b2 280 a21 0 2 a22 2 r1 30 1 0 015 c1 20 r2 100 2 0 02 c2 30 则问题转化为无约束优化问题 求甲 乙两个牌号的产量x1 x2 使总利润z最大 为简化模型 先忽略成本 并令a12 0 a21 0 问题转化为求 z1 b1 a11x1 x1 b2 a22x2 x2的极值 显然其解为x1 b1 2a11 50 x2 b2 2a22 70 我们把它作为原问题的初始值 总利润为 z x1 x2 p1 q1 x1 p2 q2 x2 模型求解 1 建立M 文件fun m functionf fun x y1 100 x 1 0 1 x 2 30 exp 0 015 x 1 20 x 1 y2 280 0 2 x 1 2 x 2 100 exp 0 02 x 2 30 x 2 f y1 y2 2 输入命令 x0 50 70 x fminunc fun x0 z fun x 3 计算结果 x 23 9025 62 4977 z 6 4135e 003即甲的产量为23 9025 乙的产量为62 4977 最大利润为6413 5 9 5约束非线性规划问题 1 数学模型形式 minf X s t AX b 线性不等式约束 AeqX beq 线性等式约束 C X 0 非线性不等式约束条件 Ceq X 0 非线性等式约束 Lb X Ub 边界约束条件 约束条件 2 使用格式 x fval exitflag output grad hessian fmincon fun x0 A b Aeq beq Lb Ub Nlc options P1 P2 设置优化选项参数 初始点 调用目标函数的函数文件名 目标函数在最优解的海色矩阵 返回目标函数在最优解的梯度 优化算法信息的一个数据结构 返回算法的终止标志 返回目标函数的最优值 返回目标函数的最优解 附加参数 非线性约束条件的函数名 设计变量的下界和上界 线性等式约束的常数向量 线性等式约束的系数矩阵 线性不等式约束的常数向量 线性不等式约束的系数矩阵 无定义时以空矩阵符号 代替 说明 fmincon求多变量有约束非线性函数的最小值 该函数常用于有约束非线性优化问题 x fmincon fun x0 A b 给定初值x0 求解fun函数的最小值点x fun函数的约束条件为A x b x0可以是标量 向量或矩阵 x fmincon fun x0 A b Aeq beq 最小化fun函数 约束条件为A x b和Aeq x beq 若没有不等式存在 则设置A b x fmincon fun x0 A b Aeq beq lb ub 定义设计变量x的下界lb和上界ub 使得lb x ub 若无等式存在 则令Aeq beq x fmincon fun x0 A b Aeq beq lb ub nonlcon 在上面的基础上 在nonlcon参数中提供非线性不等式c x 或等式ceq x fmincon函数要求c x 0且ceq x 0 当无边界存在时 令lb 和 或 ub nonlcon参数该参数计算非线性不等式约束c x 0和非线性等式约束ceq x 0 nonlcon参数是一个包含函数名的字符串 该函数可以是M文件 内部文件或MEX文件 它要求输入一个向量x 返回两个变量 解x处的非线性不等式向量c和非线性等式向量ceq 例如 若nonlcon mycon 则M文件mycon m具有下面的形式 function c ceq mycon x c 计算x处的非线性不等式ceq 计算x处的非线性等式 两个约束条件都是线性的 在Matlab中实现 x0 10 10 10 A 1 2 2 122 b 0 72 x fval fmincon x 1 x 2 x 3 x0 A b x 24 000012 000012 0000fval 3456线性不等式约束条件的值 A x bans 720 x 5 00005 00005 0000fval 125 0000exitflag 1output iterations 7funcCount 38stepsize 1algorithm medium scale SQP Quasi Newton line search firstorderopt cgiterations 问题的解为x 1 x 2 x 3 5 0000m 最大体积为125 0000m3 exitflag 1 表示过程成功收敛于解x处 output输出变量显示了收敛过程中的迭代次数 目标函数计算次数 步长 算法等信息 x 0 65890 8682fval 6 6131问题的解为x 1 0 6589 x 2 0 8682 最小值为 6 6131 解 约束条件是线性约束 在Matlab中实现 x0 0 A 1 b 2 x fval fmincon 1 3 x 1 3 x0 A b x 2fval 0 3333 9 6多目标优化问题 9 6 1函数fgoalattain minvs t fi X wiv goalii 1 2 tAX b 线性不等式约束 AeqX beq 线性等式约束 C X 0 非线性不等式约束条件 Ceq X 0 非线性等式约束 Lb X Ub 边界约束条件 一 多目标优化问题数学模型 标量变量 各分目标函数 分目标函数的权重 各分目标函数的目标值 二 优化函数使用格式 x fval exitflag output grad hessian fgoalattain fun x0 goal w A b Aeq beq Lb Ub Nlc options P1 P2 设置优化选项参数 各分目标权重 各分目标期望值 目标函数在最优解的海色矩阵 返回目标函数在最优解的梯度 优化算法信息的一个数据结构 返回算法的终止标志 返回目标函数的最优值 返回目标函数的最优解 附加参数 非线性约束条件的函数名 设计变量的下界和上界 线性等式约束的常数向量 线性等式约束的系数矩阵 线性不等式约束的常数向量 线性不等式约束的系数矩阵 无定义时以空矩阵符号 代替 9 6 1函数fgoalattain 初始点 目标函数文件名 格式 x fgoalattain fun x0 goal weight x fgoalattain fun x0 goal weight A b x fgoalattain fun x0 goal weight A b Aeq beq x fgoalattain fun x0 goal weight A b Aeq beq lb ub x fgoalattain fun x0 goal weight A b Aeq beq lb ub nonlcon x fgoalattain fun x0 goal weight A b Aeq beq lb ub nonlcon options x fgoalattain fun x0 goal weight A b Aeq beq lb ub nonlcon options P1 P2 x fgoalattain fun x0 goal weight A b Aeq beq lb ub nonlcon 说明 fgoalattain求解多目标达到问题 x fgoalattain fun x0 goal weight 试图通过变化x来使目标函数fun达到goal指定的目标 初值为x0 weight参数指定权重 x fgoalattain fun x0 goal weight A b 求解目标达到问题 约束条件为线性不等式A x b x fgoalattain fun x0 goal weight A b Aeq beq 求解目标达到问题 除提供上面的线性不等式外 还提供线性等式Aeq x beq 当没有不等式存在时 设置A 和b x fgoalattain fun x0 goal weight A b Aeq beq lb ub 为设计变量x定义下界lb和上界ub集合 这样始终有lb x ub x fgoalattain fun x0 goal weight A b Aeq beq lb ub nonlcon 将目标达到问题归结为nonlcon参数定义的非线性不等式c x 或非线性等式ceq x fgoalattain优化的约束条件为c x 0和ceq x 0 若不存在边界 设置lb 和 或 ub x fgoalattain fun x0 goal weight A b Aeq beq lb ub nonlcon options 用opti

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论