欢迎来到天天文库
浏览记录
ID:22287646
大小:205.26 KB
页数:13页
时间:2018-10-28
《实验二matlab编程单纯形法求解》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、北京联合大学实验报告项目名称:运筹学专题实验报告学院:自动化专业:物流工程班级:1201B学号:2012100358081姓名:管水城成绩:2015年5月6日实验二:MATLAB编程单纯形法求解一、实验目的:(1)使学生在程序设计方面得到进一步的训练;,掌握Matlab(C或VB)语言进行程序设计中一些常用方法。(2)使学生对线性规划的单纯形法有更深的理解.二、实验用仪器设备、器材或软件环境计算机,MatlabR2006三、算法步骤、计算框图、计算程序等本实验主耍编写如T线性规划问题的计算程序:Ax0,/?>0Jt屮初始可行基为松弛变量对应的列组成.对于一minex般准线性规
2、划问题:[x>0,b>01.求解上述一般标准线性规划的单纯形算法(修正)步骤如下:对于一般的标准形式线性规划问题(求极小问题),首先给定一个初始基木可行解。设初始基为B,然后执行如下步骤:(1)解公='求得=忍…,令二0,计算目知、•函数值f以bJZ=1,2,...,/?0记5_1/?的第/个分量(2).计算单纯形乘子w,=°〃,得到对于非基变量,计算判别数CT,=Z•-C;.可直接计算(7=CuB'A-c令ok=max{(j},R为非基变量集合若判别数,则得到一个最优基木可行解,运算结朿;否则,转到下一⑶.解~='得到力=B,^;若力Q,即力的每个分量均非正数,则停止计算,问题不存
3、在宥限最优解,否则,进行步骤(4).确定卜*标^使&为进基变量,用pk替换&,得到新的基矩阵B,还hl步骤(1).2、计算框图为:开始初始可行基B令〜=B~、b,xN=^f=cBxR计算单纯性乘子川=^圹,计算判别数=WPj-CjjE/?(非基变量)令crk=maxfcTpjeR}A.y,.kb:min^
4、>0为退基变量,人进基变量,以h代啓/,得到新的基矩阵《图13.计算程序(Matlab):A=input('A=');b=input('b=');c=input('c=’);formatrat%#以让结果用分数输岀F=n-m+l:n;F=F1D=[E,F];X=zeros(l,n
5、);if(n6、。Ofprintf('b''./(B\A(:,%d))为1,k);b'./(BA(:zk))if(z<0.000000001)flag=0;%所有判別数都小于0时达到最优解。。fprintf('已找到最优解!');xB=(Bb*)';f=cB*xB1;fori=l:nmark=0;forj=l:mif(D(j#2)==i)mark=l;X(i)=xB(D(j,1));%利用D找!lixWjX之间的关系。。endendifmark==0X(i)=0;%如果D屮没有X(i),则X(i)为非基变:W:,所以X(i)=0。。endendfprintf('基ikl.S为:');Xfp7、rintf(1目你函数位为:*);felseif(BA(:,k)<=0)%如果BA(;,k)中的每一个分S都小于零。。flag=0;fprintf('此fuj题不存在最优解!1);%gBA(:,k)的弟k列均不大于0,则该问题不存在最优解。。elsebl=Bbf;temp=inf;fori=l:mif((A(i,k)>0)&&(bl(i)/(A(i,k)+eps))8、);cB(r)=c(k);%确定进基退基变量后,和应的基矩阵及新基对应的目标值的c也相应改变D(rz2)=k;%改变D屮的映射大系endendendend程序保存力danchunxin.m文件四.数值实验及其结果:打开matlab软件,点击运行danchunxin.m,出现命令符要求输入相应矩阵命令。1.求解:maxZ=7X1+12X2广9X^4X2^360J4X^5X2^200ISX^IOX^SOOX^O,X2^0输入数据矩阵如下:A=[94100;45
6、。Ofprintf('b''./(B\A(:,%d))为1,k);b'./(BA(:zk))if(z<0.000000001)flag=0;%所有判別数都小于0时达到最优解。。fprintf('已找到最优解!');xB=(Bb*)';f=cB*xB1;fori=l:nmark=0;forj=l:mif(D(j#2)==i)mark=l;X(i)=xB(D(j,1));%利用D找!lixWjX之间的关系。。endendifmark==0X(i)=0;%如果D屮没有X(i),则X(i)为非基变:W:,所以X(i)=0。。endendfprintf('基ikl.S为:');Xfp
7、rintf(1目你函数位为:*);felseif(BA(:,k)<=0)%如果BA(;,k)中的每一个分S都小于零。。flag=0;fprintf('此fuj题不存在最优解!1);%gBA(:,k)的弟k列均不大于0,则该问题不存在最优解。。elsebl=Bbf;temp=inf;fori=l:mif((A(i,k)>0)&&(bl(i)/(A(i,k)+eps))8、);cB(r)=c(k);%确定进基退基变量后,和应的基矩阵及新基对应的目标值的c也相应改变D(rz2)=k;%改变D屮的映射大系endendendend程序保存力danchunxin.m文件四.数值实验及其结果:打开matlab软件,点击运行danchunxin.m,出现命令符要求输入相应矩阵命令。1.求解:maxZ=7X1+12X2广9X^4X2^360J4X^5X2^200ISX^IOX^SOOX^O,X2^0输入数据矩阵如下:A=[94100;45
8、);cB(r)=c(k);%确定进基退基变量后,和应的基矩阵及新基对应的目标值的c也相应改变D(rz2)=k;%改变D屮的映射大系endendendend程序保存力danchunxin.m文件四.数值实验及其结果:打开matlab软件,点击运行danchunxin.m,出现命令符要求输入相应矩阵命令。1.求解:maxZ=7X1+12X2广9X^4X2^360J4X^5X2^200ISX^IOX^SOOX^O,X2^0输入数据矩阵如下:A=[94100;45
此文档下载收益归作者所有