第十一章 MATLAB求解线性规划问题-2014120809203072

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.完成实验报告。

设生产A产品 x1 件,生产B产品 x2 件, z 为所获利 润,我们将问题归结为如下的线性规划问题:
min {(7000x1 10000 x2 )}
8 x1 6 x2 380 s.t. 4 x1 8 x2 300 4 x 6 x 220 2 1
接着写出MATLAB程序如下: clear f=-[7000,10000]; A=[8,6;4,8;4,6]; b=[380,300,220]; [X,fval]=linprog(f,A,b)

这里 z f1 x1 f 2 x2 f n xn 称为目标函数, f j 称为 价值系数,f ( f1 , f 2 ,, f n )T 称为价值向量, x j 为求 解的变量,由系数aij 组成的矩阵
a11 A a s1 a1n asn

解决上述问题的MATLAB程序为: clear f=-[5,4,6]; A=[1,-2,1;3,2,4;3,2,0]; b=[20,42,30]; LB=[0;0;0]; [X,fval,exitflag,output,lambda]=linprog(f,A,b,[],[ ],LB)

求解线性规划问题已有一些成熟的方法,我们这里 介绍利用MATLAB来求解线性规划问题的求解。
在MATLAB中有一个专门的函数linprog()来解决这 类问题,我们知道,极值有最大和最小两种,但求 z的极大就是求-z的极小,因此在MATLAB中以求 极小为标准形式,函数linprog()的具体格式如下: X=linprog(f,A,b) [X,fval,exitflag,output,lamnda]=linprog(f,A,b,Ae q,Beq,LB,UB,X0,options)

运行结果为: >> Optimization terminated successfully. X =40.0000 10.0000 fval = -3.8000e+005


例2:求解下面的线性规划问题: min {5x1 4 x2 6 x3}
x1 x2 x3 20 3 x 2 x 4 x 42 1 2 3 s.t. 3 x1 2 x2 30 0 x1 , 0 x2 , 0 x3


a11 x1 a12 x2 a1n xn b1 a s1 x1 a s 2 x2 a sn xn bs c11 x1 c12 x2 c1n xn d1
ct1 x1 ct 2 x2 ctn xn dt x1 , x2 ,, xn 0

例1:某工厂生产A,B两种产品,所用原料均为甲、 乙、丙三种:生产一件产品所需原料和所获利润以 及库存原料情况如下所示:
原料甲 原料乙 (公斤) (公斤) 8 4 6 8 原料丙 利润(元) (公斤) 4 7000 6 10000
产品A 产品B
库存原料量

380
300
220
在该厂只有表中所列库存原料的情况下,如何安排 A,B两种产品的生产数量可以获得最大利润?

lambda = ineqlin: [3x1 double] eqlin: [0x1 double] upper: [3x1 double] lower: [3x1 double] 在使用linprog()命令时,系统默认它的参数至少为 3个,但如果我们需要给定第5个参数,则第4个参 数也必须给出,否则系统无法认定给出的是第5个 参数。遇到无法给出时,则用空矩阵“[]”替代。

三、实验内容

1.求解线性规划问题 min f ( x) 3x1 2 x2 8x3 5x4
x1 8 x2 x3 x4 2 3 x 6 x 5 x 2 x 3 1 2 3 4 s.t. 7 x1 3 x2 x3 3 x4 1 x1 0 x3 0
数学实验
第十一章 MATLAB 求解线性规划问题
一、实验目的

了解MATLAB的优化工具箱,能利用MATLAB求解线 性规划问题。
二、相关知识
线性规划是运筹学中研究得比较早,理论上已趋于 成熟,在方法上非常有效,并且应用广泛的一个重 要分支。 线性规划的数学模型有各种不同的形式,其一般形 式可以写为: 目标函数为 min z f1 x1 f 2 x2 f n xn ,约束条件为:



cgiterations表示PCG迭代次数,
algorithm表示优化所采用的运算规则。
பைடு நூலகம்
lambda有4个分量, ineqlin是线性不等式约束条件,
eqlin是线性等式约束条件,
upper是变量的上界约束条件, lower是变量的下界约束条件。 它们的返回值分别表示相应的约束条件在约束条件 在优化过程中是否有效。

程序运行的结果为: Optimization terminated successfully. X = 0.0000 15.0000 3.0000 fval = -78.0000 exitflag = 1 output = iterations: 6 cgiterations: 0 algorithm: 'lipsol'


这里X是问题的解向量, f是由目标函数的系数构成的向量,
A是一个矩阵,b是一个向量,A,b和变量 x={x1,x2,…,xn}一起,表示了线性规划中不等式约 束条件,A,b是系数矩阵和右端向量。 Aeq和Beq表示了线性规划中等式约束条件中的系 数矩阵和右端向量。LB和UB是约束变量的下界和 上界向量,X0是给定的变量的初始值,
options为控制规划过程的参数系列。返回值中fval 是优化结束后得到的目标函数值。



exitflag=0表示优化结果已经超过了函数的估计值 或者已声明的最大迭代次数; exitflag>0表示优化过程中变量收敛于解X, exitflag<0表示不收敛。output有3个分量, iterations表示优化过程的迭代次数,

一个满足约束条件的向量 x ( x1 , x2 ,, xn )T ,称为可
行解或可行点,所有可行点的集合称为可行区域,
达到目标函数值最大的可行解称为该线性规划的最
优解,相应的目标函数值称为最优目标函数值,简 称最优值。

求解线性规划问题已有一些成熟的方法,我们这里
介绍利用MATLAB来求解线性规划问题的求解。

2.求解线性规划问题
min f ( x) x1 x2 x3 x4 x5
x3 6 x5 9 x 4x 2x 2 1 2 5 s.t. 2 x2 x4 2 x5 9 xi 0 (i 1, 2,3, 4,5)


称为不等式约束矩阵,由系数 cij 组成的矩阵
c11 C ct1 c1n ctn

称为等式约束矩阵,

列向量 b (b1 , b2 ,, bn )T 和 d (d1 , d 2 ,, d n )T为右端向 量,条件 x j 0 称为非负约束。
相关文档
最新文档