• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: Matlab
  • 标签: matlab  单纯形法  

资源简介

用matlab解决单纯形法,免费下载,适合应付运筹学作业,内涵超详细注释,免费下载下就完事了,写了好久我,麻烦别私下互传,在这帮我贡献一个下载量就好QAQ

资源截图

代码片段和文件信息

function [CRBANS]=AZ(abc)
ST=zeros(1length(b));%⊙seita值
b=b(:);%基解
times=0;%debug用的,检测循环过几次
flag=1;%用于标记是否继续迭代的值
ZH=0;%换入基变量列和换出基变量行的相交值
H=0;%换入基变量所在的航
L=0;%换入基变量所在的列
A=[a eye(length(b))];%基变量和非基变量系数
C=[c zeros(1length(b))];%没什么好说的
g=zeros(length(C)1);%A和F的积
f=C;%单纯性法中的-z检验数
F=zeros(length(b)1);%单纯性的CR有的地方叫CB我叫他CR
RES=0;%MAXZ结果值
while (flag)%进行无限迭代(后面有写跳出条件)
times=times+1;%每次迭代times+1
%%%%%%%确定-Z%%%%%%%%%
for i=1:length(C)
    for ii=1:length(F)
g(i)=g(i)+A(iii)*F(ii);
    end  
f(i)=C(i)-g(i);
end
g=zeros(length(C)1);%把临时变量g归零
%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%找出A中换入基变量的列数%%%%%
CHU=max(f);%找到-Z中最大的数
for i=1:length(C)
    for ii=1:length(F)
g(i)=g(i)+A(iii)*F(ii);
    end  
f(i)=C(i)-g(i);
    if(f(i)==CHU)
    L=i;
    end
end
g=zeros(length(C)1);%把临时变量g归零
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%确定换出基变量%%%%%%%%%
for i=1:length(F)
    ST(i)=b(i)/A(iL);
    if(ST(i)<0)
        ST(i)=inf;
    end
end
RU=min(ST);%找到seit

评论

共有 条评论