ImageVerifierCode 换一换
格式:DOCX , 页数:47 ,大小:158.33KB ,
资源ID:1938621      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1938621.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第10章Matlab在最优化问题中的应用.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第10章Matlab在最优化问题中的应用.docx

1、第10章Matlab在最优化问题中的应用第10章 Matlab在最优化问题中的应用 优化理论是一门实践性很强的学科,广泛应用于生产管理、军事指挥和科学试验等各种领域,Matlab优化工具箱提供了对各种优化问题的一个完整的解决方案。在数学上,所谓优化问题,就是求解如下形式的最优解: Min fun (x) Sub. to C.E. B.C.其中fun (x)称为目标函数,“Sub. to”为“subject to”的缩写,由其引导的部分称为约束条件。C.E.表示Condition Equations,即条件方程,可为等式方程,也可为不等式方程。B.C.表示Boundary Conditions,

2、即边界条件,用来约束自变量的求解域,以lbxub的形式给出。当C.E.为空时,此优化问题称为自由优化或无约束优化问题;当C.E.不空时,称为有约束优化或强约束优化问题。在优化问题中,根据变量、目标函数和约束函数的不同,可以将问题大致分为:线性优化 目标函数和约束函数均为线性函数。二次优化 目标函数为二次函数,而约束条件为线性方程。线性优化和二次优化统称为简单优化。非线性优化 目标函数为非二次的非线性函数,或约束条件为非线性方程。多目标优化 目标函数并非一个时,称为多目标优化问题。本章将对以上几类优化问题在Matlab中的实现作比较详细的讲解。另外还将介绍两个利用优化方法解非线性方程的函数。通过

3、本章的介绍,用户可以不必掌握艰涩的各种优化算法而轻易地解决一些常用的最优化问题了。10.1 线性规划问题线性规划问题即目标函数和约束条件均为线性函数的问题。其标准形式为:min Cxsub. To Ax = b x0其中C, b, 0Rn,ARmn,均为数值矩阵,xRn。若目标函数为:max Cx,则转换成:min Cx。标准形式的线性规划问题简称为LP(Linear Programming)问题。其它形式的线性规划问题经过适当的变换均可以化为此种标准形。线性规划问题虽然简单,但在工农业及其他生产部门中应用十分广泛。在Matlab中,线性规划问题由linprog函数求解。函数:linprog

4、%求解如下形式的线性规划问题: such that 其中f, x, b, beq, lb, ub为向量,A, Aeq为矩阵。格式:x = linprog(f,A,b)x = linprog(f,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(.

5、)x,fval,exitflag,output,lambda = linprog(.)说明:x = linprog(f,A,b) 求解问题 min f*x,约束条件为A*x0 表示目标函数收敛于解x处;=0 表示已经达到函数评价或迭代的最大次数; f=-5;-4;-6; A=1 -1 1;3 2 4;3 2 0; b=20;42;30; lb=zeros(3,1); x,fval,exitflag,output,lambda=linprog(f,A,b,lb)Optimization terminated successfully.x = 0.0000 15.0000 3.0000fval =

6、 -78.0000exitflag = 1output = iterations: 6 cgiterations: 0 algorithm: lipsollambda = ineqlin: 3x1 double eqlin: 0x1 double upper: 3x1 double lower: 3x1 double lambda.ineqlinans = 0.0000 1.5000 0.5000 lambda.lowerans = 1.0000 0.0000 0.0000lambda向量中的非零元素表示哪些约束是主动约束。本例中,第2个和第3个不等式约束,第1个下界约束是主动约束(如这些解位

7、于约束边界上)。exitflag = 1表示过程正常收敛于解x处。例10-2 生产决策问题。某厂生产甲乙两种产品,已知制成一吨产品甲需资源A 3吨,资源B 4m3;制成一吨产品乙需资源A 2吨,资源B 6 m3;资源C 7个单位。若一吨产品甲和乙的经济价值分别为7万元和5万元,三种资源的限制量分别为90吨、200 m3和210个单位,试决定应生产这两种产品各多少吨才能使创造的总经济价值最高?解:令生产产品甲的数量为x1,生产产品甲的数量为x2。由题意可以建立下面的数学模型: sub. to 该模型中要求目标函数最大化,需要按照Matlab的要求进行转换,即目标函数为 在Matlab中实现: f

8、=-7;-5; A=3 2;4 6;0 7; b=90;200;210; lb=0;0; x,fval,exitflag,output,lambda=linprog(f,A,b,lb)Optimization terminated successfully.x = 14.0000 24.0000fval = -218.0000exitflag = 1output = iterations: 5 cgiterations: 0 algorithm: lipsollambda = ineqlin: 3x1 double eqlin: 0x1 double upper: 2x1 double low

9、er: 2x1 double由上可知,生产甲种产品14吨、乙种产品24吨可使创造的总经济价值最高为218万元。exitflag = 1表示过程正常收敛于解x处。例10-3 厂址选择问题。考虑A、B、C三地,每地都出产一定数量的原料也消耗一定数量的产品(见下表)。已知制成每吨产品需3吨原料,各地之间的距离为:AB:150km,AC:100km,BC:200km。假定每万吨原料运输1km的运价是5000元,每万吨产品运输1km的运价是6000元。由于地区条件的差异,在不同地点设厂的生产费用也不同。问究竟在哪些地方设厂,规模多大,才能使总费用最小?另外,由于其它条件限制,在B处建厂的规模(生产的产品

10、数量)不能超过5万吨。A、B、C三地出产原料、消耗产品情况表地点年产原料(万吨)年销产品(万吨)生产费用(万元/万吨)A207150B1613120C240100解:令为由i地运到j地的原料数量(万吨),为由i地运到j地的产品数量(万吨),i,j = 1,2,3(分别对应A、B、C三地)。根据题意,可以建立问题的数学模型(其中目标函数包括原料运输费、产品运输费和生产费用(万元):min sub.to 在Matlab中实现: f=75;75;50;50;100;100;150;240;210;120;160;220; A=1 -1 1 -1 0 0 3 3 0 0 0 0 -1 1 0 0 1

11、-1 0 0 3 3 0 0 0 0 -1 1 -1 1 0 0 0 0 3 3 0 0 0 0 0 0 0 0 1 1 0 0; b=20;16;24;5; Aeq=0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1; beq=7;13; lb=zeros(12,1); x,fval,exitflag,output,lambda=linprog(f,A,b,Aeq,beq,lb)Optimization terminated successfully.x = 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 7.0000 0.0000 0.0000 5.0000 0.0000 8.0000fval = 3.4850e+003exitflag = 1output = iterations: 8 cgiterations: 0 algorithm: lipsollambda = ineqlin: 4x1 double eqlin: 2x1 double upper: 12x1 double lower: 12x1 doubl

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1