{能源化工管理}基于MATLAB优化工具箱的优化计算

上传人:卓****库 文档编号:140962933 上传时间:2020-08-03 格式:PPTX 页数:75 大小:754.33KB
返回 下载 相关 举报
{能源化工管理}基于MATLAB优化工具箱的优化计算_第1页
第1页 / 共75页
{能源化工管理}基于MATLAB优化工具箱的优化计算_第2页
第2页 / 共75页
{能源化工管理}基于MATLAB优化工具箱的优化计算_第3页
第3页 / 共75页
{能源化工管理}基于MATLAB优化工具箱的优化计算_第4页
第4页 / 共75页
{能源化工管理}基于MATLAB优化工具箱的优化计算_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《{能源化工管理}基于MATLAB优化工具箱的优化计算》由会员分享,可在线阅读,更多相关《{能源化工管理}基于MATLAB优化工具箱的优化计算(75页珍藏版)》请在金锄头文库上搜索。

1、第9章 基于MATLAB优化工具箱的优化计算,9.1 MATLAB优化工具箱,一、常用的优化功能函数 求解线性规划问题的主要函数是linprog。 求解二次规划问题的主要函数是quadprog。 求解无约束非线性规划问题的主要函数是fminbnd、fminunc和fminsearch。 求解约束非线性规划问题的主要函数是fgoalattain和fminimax。,1、线性规划数学模型,数学模型形式: min f TX s.t. AXb (线性不等式约束条件) AeqX=beq (线性等式约束条件) lb X ub (边界约束条件) 常用的简化模型: min f TX s.t. AXb (线性不

2、等式约束条件),数学模型形式: s.t. AXb (线性不等式约束条件) AeqX=beq (线性等式约束条件) lb X ub (边界约束条件),2、二次规划问题数学模型,二次函数,目标函数,1. 数学模型形式: min f (X) s.t. AXb (线性不等式约束) AeqX=beq (线性等式约束) C(X)0 (非线性不等式约束条件) Ceq(X)=0(非线性等式约束) Lb X Ub (边界约束条件),约束条件,3、无约束非线性规划 数学模型形式: min f (X),例1:求解二维无约束优化问题 f(x)=(x14+3x12+x22-2x1-2x2-2x12x2 +6)的极小值。

3、,例2:求解二维无约束优化问题 min,例13 求 在0x8中的最小值与最大值,数学模型形式: min f (X)(函数为f(x)非线性函数) s.t. AXb (线性不等式约束) AeqX=beq (线性等式约束) C(X)0 (非线性不等式约束条件) Ceq(X)=0(非线性等式约束) Lb X Ub (边界约束条件),约束条件,4. 约束线性规划,3.1 matlab优化函数,二、一般步骤,建立目标函数文件,针对具体工程问题建立优化设计的数学模型,不等式约束条件表示成g(X)0的形式,建立调用优化工具函数的命令文件,文件内容:必须的输入参数、描述标函数表达式等 存储:以自定义的目标函数文

4、件名存储在文件夹中,建立约束函数文件,文件内容:必须的输入参数、约束函数表达式等 存储:以自定义的约束函数文件名存储在文件夹中,将优化设计的命令文件复制到MATLAB命令窗口中进行运算求解。,分析优化设计的数学模型,选择适用的优化工具函数 文件内容:初始点,设计变量的边界约束条件, 运算结果输出等内容 存储:以自定义的命令文件名存储于文件夹中。,小例:求解二维无约束优化问题min,解:首先编制目标函数 function f=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)

5、; 注意:保存时,要使保存的文件名与函数名一致 再编制主函数 x0=25;45; x,fminunc=fminunc(li3mubiao_fminunc,x0) 保存后运行得到优化结果: x = 192.9958 60.0005 fminunc = 668.5656,9.2 线性规划问题,一、线性规划数学模型,1.主要应用对象: (1)在有限的资源条件下完成最多的任务; (2)如何统筹任务以使用最少资源。 2.数学模型形式: min f TX s.t. AXb (线性不等式约束条件) AeqX=beq (线性等式约束条件) lb X ub (边界约束条件),约束条件,决策变量,目标函数,非负数

6、,线性,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,x3T,

7、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+2x3600,2x1+x2+2x3400,x1+3x2+2x3800,设生产A、B、C三种产品的数量分别是x1,x2,x3,决策变量:,根据三种单位产品的利润情况,按照实现总的利润最大化,建立关于决策变量的函数:,2.建立目标函数:,根据三种资料数量限制,建立三个线性不

8、等式约束条件,5.M文件运行结果: Optimization terminated successfully. xopt =0.0000 66.6667 166.6667 fopt=-766.6667,x1,x2,x30,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

9、-0.6; A=0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.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=6 3 4; A=0 1 0; b=50; Aeq=1 1 1; beq=120; vlb=30,0,20; vub=; x,fval=linprog(c,A,b,Aeq,beq,vlb,

10、vub),9.3 二次规划问题,1.研究意义: (1)最简单的非线性规划问题; (2)求解方法比较成熟。 2.数学模型形式: s.t. AXb (线性不等式约束条件) 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 fop

11、t=-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),例2 min f(x1,x2)=-2x1-6x2+x12-2x1*x2+2*x22 s.t

12、. x1+x22 -x1+2x22 x10, x20 1、写成标准形式:,s.t,2、 输入命令: H=2 -2; -2 4; c=-2 ;-6;A=1 1; -1 2;b=2;2; Aeq=;beq=; VLB=0;0;VUB=; x,z=quadprog(H,c,A,b,Aeq,beq,VLB,VUB) 3、运算结果为: x =0.6667 1.3333 z = -8.2222,程序:编写M文件mainG.m如下: H=1 -1;-1 2; f=-2;-6; A=1 1;-1 2; b=2;2; Aeq=;beq=; lb=0;0;ub=; X,fval,exitflag=quadprog

13、(H,f,A,b,Aeq,beq,lb,ub) 结果: X = 0.6667 1.3333 fval = -8.2222 exitflag = 1,程序:编写M文件mainG.m如下: H=2 -2;-2 4; f=-4;-12; A=1 1;-1 2;2 1;b=2;2;3; lb=zeros(2,1); x,fval,exitflag=quadprog(H,f,A,b,lb) 结果: x = 0.6667 1.3333 fval = -16.4444 exitflag = 1,9.4 无约束非线性规划问题,无约束非线性规划问题的MATLAB函数有,fminbnd,要求目标函数为连续函数,只

14、求解单变量问题,fminunc,可求解单变量和多变量问题,适用于简单优化问题,可求解复杂优化问题,fminsearch,三个函数:fminbnd, fminunc, fminsearch. 三个都是解无约束非线性规划问题 三者有相同点与不同点: (1)Fminbnd 是解单变量无约束非线性规划问题 Fminunc和fminsearch可用于求解单变量或多变量的无约束非线性规划问题 (2)fminbnd和fminunc要求目标函数为连续函数 (3)fminbnd和fminsearch的优化算法比较简单,适用于比较简单无约束非线性规划问题,函数fminunc的优化算法较复杂,适用于求解比较复杂的优

15、化问题 (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(x3+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(x3+cosx+xlogx)/ex) grid on,9.4.1函数fminbnd,运行结果: xopt = 0.5223 fopt =

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

当前位置:首页 > 商业/管理/HR > 企业文档

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