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

资源简介

matlab编写单纯形法。完全按照最优控制指导教材上的单纯形法的理论步骤编写的。每一步的结果都有给出,很详细的。没有错误。

资源截图

代码片段和文件信息

function[ANnabmflagmAnA]=simplex(Ambc)%A为初矩阵,N为A的最后一行,n为初始进基变量,a为出基,b为进基,m为最后基变量,flag为cj标志,mA,nA为A的行数,列数%此处求的最小极值;
A=[2 1 1;1 2 3;2 2 1];
b=[2;5;6];
c=[-3 -1 -3];
%b=[4;12;3];
%c=[-4-1];
%A=[-1 2;2 3;1 -1];
 %化成标准型;
[a1 a2]=size(A)    %取A的行数a1列数a2;
B=eye(a1)        %取与行数相等的单位阵;
A1=[A B]         %标准单纯形自变量系数矩阵;
m=[(a2+1):(a1+a2)] %列出基变量的下标号;
mm=[1:a2]         %列出非基变量下标;
m1=zeros(1((a1+a2)-size(c2)))%给c补充0向量;
c1=[c m1]                %生成完整的c向量;
AA1=[A1 b]
flag=1;
k=0;
rl=0;
r=1;
while flag==1
b=AA1(:a1+a2+1)
for i=1:a1
    if m(i)==rl
        m(i)=k;
    end
end
for i=1:a2
    if mm(i)==k
        mm(i)=rl;
    end
end
B=AA1(:m)
%建立初始单纯形表;
cb=c1(m(1));
xb=(inv(B))*b
for i=2:a1
    cb=[cb c1(m(i))]%取基向量cb;
end
z0=cb*xb          %计算目标函数即基本可行解;
rr=zeros(1a1+a2)
%计算检验数;
for j=1:a2                          %计算检验数;
    cy=0;
    for i=1:a1
        cy=cy+c1(m(i))*AA1(imm(j));
    end
    z(mm(j))=cy
    rr(mm(j))=c1(mm(j))-z(mm(j))
end
AA2=[rr -z0]
AA=[AA1;AA2]    %生成初始单纯形表;
if (min(rr))>=0    %判断是否是最优解,如果是则显示变量取值x以及最优值z;
    z=z0
    x(m)=xb
    disp(‘变量最优解为:x*=‘)
    disp(x)
    disp(‘最优解值为:z*=‘)
    disp(z)
    flag=0;
    break;
end
%决定进基矢量ak;
k=min(find(rr==min(rr(find(rr<0)))))     
ak=AA1(:k)
%决定离基矢量ar和主元素yrk;
if max(AA1(:k))<=0        %如果yik中有小于等于0的值则目标函数是无界的,无最优解;
    disp(‘无有限最优解‘)
    flag=0;
    break;
end  
for i=1:a1
    NN(i)=(AA1(ia1+a2+1))/(AA1(ik))
end
r=find(NN==min(NN(find(NN>0))))
    yrk=AA1(rk)            %主元素为yrk; 
    rl=m(r)                %离基矢量下标为rl;
    ar=AA1(:rl)          %离基矢量为ar;
%根据列主元Gauss消元法解线性方程组
for i=1:a1
    if i~=r
        AA1(i:)=AA1(i:)-AA1(r:)*AA1(ik)/AA1(rk)
    else
        AA1(r:)=AA1(r:)/yrk;
    end
end
AA1
end



   
    
    

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2109  2010-12-27 23:17  单纯形程序\simplex.m

     文件       2090  2010-12-27 23:21  单纯形程序\单纯形法.txt

     目录          0  2011-06-12 13:45  单纯形程序

----------- ---------  ---------- -----  ----

                 4199                    3


评论

共有 条评论