1、北京联合大学实验报告项目名称: 运筹学专题实验报告 学 院: 自动化 专 业: 物流工程 班 级: 1201B 学 号:2012100358081 姓 名: 管水城 成 绩: 2015 年 5 月 6 日实验一:用 matlab 的 linprog 求解简单线性规划问题一、实验目的:(1)使学生在程序设计方面得到初步的训练;,学习 Matlab (C 或 VB)语言进行程序设计中一些常用方法。二、实验用仪器设备、器材或软件环境计算机, Matlab R2006a三、算法步骤、计算框图、计算程序等1. 线性规划模型的一般形式,目标函数和所有的约束条件都是设计变量的线性函数:.2. 用 MATLA
2、B 优化工具箱解线性规划:命令:x=linprog (c, A, b)命令:x=linprog (c,A ,b,Aeq,beq)注意:若没有不等式: 存在,则令 A= ,b= .命令:1 x=linprog(c,A,b,Aeq,beq, VLB,VUB)2 x=linprog(c,A,b,Aeq,beq, VLB,VUB, X0)注意:1 若没有等式约束, 则令 Aeq= , beq= .2其中 X0 表示初始点3.求解简单线性规划问题1. 求解:打开 matlab2006a 软件,如图所示,点击 file,新建 script 文件 hh1 并输入程序代码。图 1程序代码:c=-0.4 -0.
3、28 -0.32 -0.72 -0.64 -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)运行该程序,结果如下图:图 2由实验结果可知,该问题的最优解是 x1=135,x2=20,x3=300,x3=0,x5=0,x6=0,最大值为 250。2.求解:若 x,y 满足: 求 z=2x+y
4、的最大值。43,52.1xy打开 matlab2006a 软件,点击 file,新建 script 文件 hh2 并输入程序代码:c=-2 -1;A=1 -4;3 5 ;b=-3 25;Aeq=;beq=;vlb=1;vub=; x,fval=linprog(c,A,b,Aeq,beq,vlb,vub)运行该程序,结果如下图:图 3由实验结果可知,该问题的最优解是 x=5,y=2,最大值为 12。3.求解:某校食堂以面食和米食为主,面食每百克含蛋白质 6 个单位,含淀粉 4 个单位,售价 0.5 元;米食每百克含蛋白质 3 个单位,含淀粉 7 个单位,售价 0.4元学校要给学生配制成盒饭,每盒
5、至少有 8 个单位的蛋白质和 10 个单位的淀粉,应如何配制盒饭,才既科学又使费用最少?解:由题意将该问题转化为线性规划问题如下:设配置 x 百克面食和 y 百克米饭Minz=0.5x+0.4ySt. 6x+3y=84x+7y=10X,y=0打开 matlab2006a 软件,点击 file,新建 script 文件 hh3 并输入程序代码:c=0.5 0.4;A=-6 -3;-4 -7;b=8 10;Aeq=;beq=;vlb=;vub=; x,fval=linprog(c,A,b,Aeq,beq,vlb,vub)运行该程序,结果如下图:图 4由实验结果可知,应当配置 0.8667 百克的面食和 0.9333 百克的米饭能使满足营养需求,又能使得总费用最小,最小费用为 0.8067 元。四、实验总结本次做的只是最简单的线性规划问题,面对以后更大的、更复杂的问题奠定基础,所以我非常认真对待这次实验,做完本次实验,使我对单纯形方法,更加熟练,对 matlab 程序设计也更加熟悉。