单纯形法求最大化问题matlab仿真程序.docx

单纯形法求最大化问题matlab仿真程序.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

%本程序是用单纯形方法求解最大化问题clear

closeallclc

A=[12210;34101];b=[8;7];

c=[523-11];

[row,col]=size(A);

cb=c(:,col-row+1:col);

cn=c(:,1:col-row);

N=A(:,1:1:col-row);jian=cn-cb*N; %检验数j=1;

fori=1:col-rowif(jian(:,i)jian(:,j))

j=i;

end

end

ifjian(:,j)0flag=1;

end

xb=[col-row+1:col];%xb用来记录基变量的下标值

xn=[1:col-row];%xn用来记录非基变量的下标值whileflag==1

down1=j;max=jian(:,j);

[min1,down2]=min(b./A(:,down1));%down2为出基变量在xb中的位置

chu=xb(down2); %chu为出基变量的下标值[v1,v2]=size(xb);

fori=1:col-rowif(xn(i)==down1)

xn(i)=chu;

end

endcb=c(:,xb);

A1=[A,b];

%进行旋转变化,同时将B单位化fori=1:v2

temp=A1(:,xb(i));A1(:,xb(i))=A1(:,col-row+i);A1(:,col-row+i)=temp;

endtemp=A1(:,chu);

A1(:,chu)=A1(:,down1);A1(:,down1)=temp;

temp=A1(:,1:row);A1(:,1:row)=A1(:,col-row+1:col);A1(:,col-row+1:col)=temp;

A1=rref(A1);temp=A1(:,col-row+1:col);

A1(:,col-row+1:col)=A1(:,1:row);A1(:,1:row)=temp;

temp=A1(:,down1);A1(:,down1)=A1(:,chu);A1(:,chu)=temp;

fori=1:v2

temp=A1(:,col-row+i);A1(:,col-row+i)=A1(:,xb(i));

A1(:,xb(i))=temp;

endxb(down2)=down1;

A=A1(:,1:col);

b=A1(:,col+1);

N=[A(:,xn(1))];

cn=[c(:,xn(1))];ifcol-row1

fori=2:col-rowN=[N,A(:,xn(i))];

cn=[cn,c(:,xn(i))];

end

end

jian=cn-cb*N;

j=1;

fori=1:col-rowif(jian(:,i)jian(:,j))

j=i;

end

end

ifjian(:,j)0 %若检验数大于零,则flag=1,否则等于0

flag=1;

else

flag=0;

endend

x=zeros(1,col);

fori=1:v2

x(xb(i))=b(i);

endx

z=cb*b

文档评论(0)

hao187 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档