




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MATLAB语言课程论文MATLAB在最优化问题中的应用;姓名:黎飞飞学号:12010245380专业:通信工程班级:(1)班 指导老师:汤全武学院:物理电气信息学院完成日期:2011-12-24Matlab在最优化问题中的应用( 黎飞飞 12010245380 2010级通信班)【摘要】实际生活中我们有许多地方需要用到数学中的一些最值运算,而有些问题我们无法进行计算,因此就有了优化理论这门学科,优化理论是一门实践性很强的学科,广泛应用于生产管理、军事指挥和科学试验等各种领域。为了更好的学习这门课程,为我们所用,Matlab优化工具箱提供了对各种优化问题的一个完整的解决方案,可用于解决工程中的
2、最优化问题,包括非线性方程求解、极小值问题,最小二乘问题等。关键字 非线性优化 线形优化 二次优化 多目标优化 MATLAB语言一 、问题的提出在企业生产和日常生活中,人们总是希望用最少的人力、物力、财力和时间去办更多的事,这就是所谓的最优化问题。在企业生产过程中,生产计划安排直接影响到企业的经济效益,而生产计划本质就是在目标一定时,对于人力、时间和物质资源的优化配置问题。在优化问题中,根据变量、目标函数和约束函数的不同,可以将问题大致分为:线性优化 目标函数和约束函数均为线性函数。二次优化 目标函数为二次函数,而约束条件为线性方程。线性优化和二次优化统称为简单优化。非线性优化 目标函数为非二
3、次的非线性函数,或约束条件为非线性方程。多目标优化 目标函数并非一个时,称为多目标优化问题。二、单目标问题2.1 线性优化问题线性规划问题即目标函数和约束条件均为线性函数的问题。其标准形式为:min Cxsub. To 其中C, b, 0Rn,ARmn,均为数值矩阵,xRn。若目标函数为:max Cx,则转换成:min Cx。在Matlab中,线性规划问题由linprog函数求解。函数:linprog功能: 求解如下形式的线性规划问题:such that 其中f, x, b, beq, lb, ub为向量,A, Aeq为矩阵。格式:x = linprog(f,A,b)x = linprog(f
4、,A,b,Aeq,beq)x = linprog(f,A,b,Aeq,beq,lb,ub)x = linprog(f,A,b,Aeq,beq,lb,ub,x0)x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options)x,fval = linprog(.)x,fval,exitflag = linprog(.)x,fval,exitflag,output = linprog(.)x,fval,exitflag,output,lambda = linprog(.)1 求解下列优化问题:目标函数 约束条件 解:在Matlab命令窗口键入:f=-5;-4;-6; %建立目
5、标函数矩阵 A=1 -1 1;3 2 4;3 2 0; %建立系数矩阵b=20;42;30; %建立条件矩阵lb=zeros(3,1); %建立空矩阵 x,fval,exitflag,=linprog(f,A,b) %调用函数Exiting: One or more of the residuals, duality gap, or total relative error has stalled: the dual appears to be infeasible (and the primal unbounded). (The primal residual In quadprog at
6、267Optimization terminated.运行结果:x = 0.6667 1.3333fval = -8.2222exitflag = 1 由上可知,x1=0.6667,x2=1.3333时,函数f(x)达到最小值,结果是-8.2222, exitflag = 1表示过程正常收敛于解x处。2.3非线性优化问题函数:fmincon功能:求多变量有约束非线性函数的最小值。数学模型: Such that 其中,和为向量,和为矩阵,和为函数,返回标量。,和可以是非线性函数。格式:x = fmincon(fun,x0,A,b)x = fmincon(fun,x0,A,b,Aeq,beq)x
7、= fmincon(fun,x0,A,b,Aeq,beq,lb,ub)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options,P1,P2, .)x,fval = fmincon(.)x,fval,exitflag = fmincon(.)x,fval,exitflag,output = fmincon(.)x,fval,exitflag,output,
8、lambda = fmincon(.)x,fval,exitflag,output,lambda,grad = fmincon(.)x,fval,exitflag,output,lambda,grad,hessian = fmincon(.)4求表面积为常数150 m2的体积最大的长方体体积解:设长方体的长、宽、高分别为x1、x2和x3,根据题意得到下面的数学模型: 目标函数 min z= - x1 x2 x3 约束条件 2 (x2 x3 + x3 x1 + x1 x2) = 150由于约束条件是非线性等式约束,所以需要编写一个约束条件M文件Ex1012c.m:function c,ceq=E
9、x1012c(x) %建立文件ceq=x(2)*x(3)+x(3)*x(1)+x(1)*x(2)-75; %非线性条件在Matlab中实现:x0=4;5;6; %假定初值lb=zeros(3,1); %建立空矩阵 x,fval,exitflag,output,lambda=fmincon(-x(1)*x(2)*x(3),x0,lb,Ex1012c) %调用函数运行结果:x = 5.0000 5.0000 5.0000fval = -125.0000exitflag = 1output = iterations: 7 funcCount: 38 stepsize: 1 algorithm: me
10、dium-scale: SQP, Quasi-Newton, line-search firstorderopt: cgiterations: lambda = lower: 3x1 double upper: 3x1 double eqlin: 0x1 double eqnonlin: 2.5000 ineqlin: 0x1 double ineqnonlin: 0x1 double优化结果显示过程成功收敛,搜索方向小于两倍options.TolX,最大违约值小于options.TolCon,主动约束为1个。问题的解为x (1) = x (2) = x (3) = 5.0000m,最大体积为
11、125.0000m3。exitflag = 1,表示过程成功收敛于解x处。output输出变量显示了收敛过程中的迭代次数、目标函数计算次数、步长、算法等信息。lambda则包含模型信息。5求解下列优化问题: 目标函数 min 约束条件 初始点x0 = 0; 0.75。解:由于约束条件中有非线性不等式,所以需要编写一个约束条件M文件Ex1013c.m:function c,ceq=Ex1013c(x) %编写文件c=2*x(1)2-x(2); %非线性条件在Matlab中实现:x0=0;0.75; %给出初始点A=1 ;5; %建立约束条件系数矩阵b=5; %约束条件lb=zeros(2,1);
12、 %建立空矩阵x,fval,exitflag,output,lambda=fmincon(2*x(1)2+2*x(2)2-2*x(1)*x(2)-4*x(1)-6*x(2),x0,A,b,Ib,Ex1013c(x) %调用函数运行结果:x = 0.6589 0.8682fval = -6.6131exitflag = 1output = iterations: 6 funcCount: 27 stepsize: 1 algorithm: medium-scale: SQP, Quasi-Newton, line-search firstorderopt: cgiterations: lambd
13、a = lower: 2x1 double upper: 2x1 double eqlin: 0x1 double eqnonlin: 0x1 double ineqlin: 0.9419 ineqnonlin: 0.8192问题的解为x (1) = 0.6589,x (2) = 0.8682,最小值为 -6.6131。三、多目标问题3.1多目标优化问题前面介绍的最优化方法只有一个目标函数,是单目标最优化方法。但是,在许多实际工程问题中,往往希望多个指标都达到最优值,所以它有多个目标函数。这种问题称为多目标最优化问题。多目标最优化问题的数学模型为 Such that 其中为目标函数向量。此优化
14、问题在Matlab中主要由函数fgoalattain来实现。此问题在控制系统中有广泛的应用。函数:fgoalattain功能:求解多目标达到问题。数学模型: Such that 其中,weight,goal,b,beq,lb和ub为向量,A和Aeq为矩阵,c (x),ceq (x)和F (x)为函数,返回向量。F (x),c (x) 和ceq (x)可以是非线性函数。格式:x = fgoalattain(fun,x0,goal,weight)x = fgoalattain(fun,x0,goal,weight,A,b)x = fgoalattain(fun,x0,goal,weight,A,b
15、,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,fval = fgoalattain(.)x,fval,atta
16、infactor = fgoalattain(.)x,fval,attainfactor,exitflag = fgoalattain(.)x,fval,attainfactor,exitflag,output = fgoalattain(.)x,fval,attainfactor,exitflag,output,lambda = fgoalattain(.)6 某化工厂拟生产两种新产品A和B,其生产设备费用分别为:A,2万元/吨;B,5万元/吨。这两种产品均将造成环境污染,设由公害所造成的损失可折算为:A,4万元/吨;B,1万元/吨。由于条件限制,工厂生产产品A和B的最大生产能力各为每月5吨
17、和6吨,而市场需要这两种产品的总量每月不少于7吨。试问工厂如何安排生产计划,在满足市场需要的前提下,使设备投资和公害损失均达到最小。该工厂决策认为,这两个目标中环境污染应优先考虑,设备投资的目标值为20万元,公害损失的目标为12万元。解:设工厂每月生产产品A为x1吨,B为x2吨,设备投资费为f1(x),公害损失费为f2(x),则这个问题可表达为多目标优化问题: min f1 (x) = 2x1+5x2 min f2 (x) = 4x1+x2约束条件如下: 需要编写目标函数的M文件Ex1015.m,返回目标计算值:function f=Ex1015(x) %建立文件f(1)=2*x(1)+5*x
18、(2); %目标函数f(1)f(2)=4*x(1)+x(2); %目标函数f(2)给定目标,权重按目标比例确定,给出初值,在Matlab中实现为:goal=20; 12; %给定目标 weight=20 ;12; %按目标比例确定 x0=2;5; %给出初值A=1 ,0;0 ,1; -1 ,-1; %建立系数矩阵b=5; 6 ;-7; %建立条件系数向量lb=zeros(2,1); %建立空矩阵x,fval,attainfactor,exitflag=fgoalattain(Ex1015,x0,goal,weight,A,b,lb, ) %调用函数运行结果:x = 2.9167 4.0833f
19、val = 26.2500 15.7500attainfactor = 0.3125exitflag = 1故工厂每月生产产品A为2.9167吨,B为4.0833吨。设备投资费和公害损失费的目标值分别为26.250万元和15.750万元。达到因子为0.3125,计算收敛。7 某工厂因生产需要欲采购一种原材料,市场上的这种原料有两个等级,甲级单价2元/kg,乙级单价1元/kg。要求所花总费用不超过200元,购得原料总量不少于100kg,其中甲级原料不少于50kg,问如何确定最好的采购方案。解:设x1和x2分别为采购甲级和乙级原料的数量(kg),要求采购总费用尽量少,采购总量尽量多,采购甲级原料尽
20、量多。由题意建立下面的数学模型: min z1 = 2x1+x2 max z2 = x1+x2 max z3 = x1 约束条件: 需要编写目标函数的M文件Ex1016.m,返回目标计算值:function f=Ex1016(x) %建立文件f(1)=2*x(1)+x(2); %目标文件f(1)f(2)=-x(1)-x(2); %目标文件f(2)f(3)=-x(1); %目标文件f (3)给定目标,权重按目标比例确定,给出初值,在Matlab中实现:goal=200; -100 ;-50; %给定目标weight=200 ;-100 ;-50; %按目标比例确定权重x0=50; 50; %给出
21、初值A=2 ,1;-1, -1;-1, 0; %建立系数矩阵b=200 ;-100 ;-50; %建立条件系数矩阵lb=zeros(2,1); %建立空矩阵x,fval,attainfactor,exitflag=fgoalattain(Ex1016,x0,goal,weight,A,b,lb,) %调用函数运行结果:x = 50 50fval = 150 -100 -50attainfactor = 0exitflag = 1所以,最好的采购方案是采购甲级原料和乙级原料各50kg。此时采购总费用为150元,总重量为100kg,甲级原料总重量为50kg。四、 结论从以上利用MATLAB语言对4种优化问题
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年餐饮企业特色美食研发与市场推广合同范本
- 二零二五年度建筑照明材料购销合同规范
- 二零二五年度农产品深加工采购合同
- 二零二五年化工原料采购保密合同范本
- 二零二五版影视基地场地租赁合同范本
- 2025年度茶叶品牌形象设计与品牌故事创作合同
- 惠农物资发放管理办法
- 战略并购投后管理办法
- 扬州拆迁管理暂行办法
- 技改项目考核管理办法
- 消费者权益保护培训课件
- 2025全员安全生产责任制范本
- 林业行政执法培训
- 高中英语必背3500单词表完整版
- 国民经济行业分类代码(2024年版)
- 电网工程设备材料信息参考价2025年第一季度
- 大连农商银行2024年招聘172人管理单位遴选500模拟题附带答案详解
- 安徽省工伤职工停工留薪期分类目录
- 张开式射孔器材介绍
- 企业员工职业规划培训PPT课件.ppt
- 农药化工项目可行性研究报告模板-用于立项备案拿地
评论
0/150
提交评论