1、最优解时x=.minf :输出线性规划问题的最优值,当线性规划问题没有可行解时minf=,当线性规划问题有可行解无最优解时minf=-Inf。flag :线性规划问题的求解结果标志值,当线性规划问题有最优解时flag=1,当线性规划问题有可行解无最优解时flag=0,当线性规划问题没有可行解时flag=-1.cpt:输出最优解对应的单纯性表,当线性规划问题没有可行解或有可行解无最优解时cpt=.三、 Linp函数%此函数是使用两阶段算法求解线性规划问题function x,minf,flag,cpt=linp(A,b,c);for i=1:p %判断b是否将b转换成大于0; if b(i)0)
2、;while isempty(dyl) firstnum=dyl(1); dll=dcxb(3:m+2,firstnum); youduanb=dcxb(3:m+2,m+n+1); look=find(dll if isempty(look) dcxb(2,firstnum)=0; else min=Inf; for i=3: if dll(i-2)0&youduanb(i-2)/dll(i-2) fprintf(g0,此问题没有可行解 x=; minf=inf; cpt=; flag=-1; returnlook1=find(jxln);if dcxb(2,m+n+1)=0 %等于0,判断基
3、变量中是否有人工变量; if isempty(look1)%存在时进行处理 while isempty(look1) line2=look1(1)+2; chdy0=find(dcxb(line2,1:n)=0); if isempty(chdy0)%存在人工变量都为零的那一行,去掉该行 dcxb(line2,:)=; look1(1)=; jxl(line2-2)=; else%否则进行换基迭代 secondnum=chdy0(1);)=dcxb(line2,:)/dcxb(line2,secondnum); jxl(line2-2)=secondnum; if i=line2)+(-1*d
4、cxb(i,secondnum)*dcxb(line2,: end;%去掉人工变量,得到单纯性的第一张表dcxb(:,n+1:n+m)=;%有可行解,判断zdcxb2=dcxb;look2=find(dcxb2(1,1:n)while isempty(look2) thirdnum=look2(1); duilie=dcxb2(2:m+1,thirdnum); youduanb1=dcxb2(2:m+1,n+1); look3=find(duilie if isempty(look3)此问题有可行解,但没有最优解 x=zeros(n,1); mi,n1=size(jxl);n1 x(jxl(i
5、)=dcxb2(i+1,n+1); 可行解为 x minf=-Inf cpt= flag=0 min1=Inf;m if duilie(i)youduanb1(i)/duilie(i) x,minf,flag,cpt=linp(A,b,c) 请一次输入系数矩阵A;输入右端向量b; 输入所求问题的向量cdcxb = -4.0000 0 -3.0000 0 0 0 0 2.0000 1.0000 1.2500 -0.6667 0 0 5.0000 0.5000 1.0000 0.5000 -0.6667 1.0000 0 2.0000 1.5000 0 0.7500 0 0 1.0000 3.00
6、00 0 0 -1.0000 0 0 2.6667 8.0000 0 1.0000 0.2500 -0.6667 0 -1.3333 1.0000 0 1.0000 0.2500 -0.6667 1.0000 -0.3333 1.0000 1.0000 0 0.5000 0 0 0.6667 2.0000 0 0 0 0 -1.0000 -1.0000 0最优解已找到!x = 2 1 0minf = 8cpt = 0 0 -1.0000 0 8.0000 0 1.0000 0.2500 -0.6667 1.0000 1.0000 0 0.5000 0 2.0000flag =ans =例题2
7、A=1/2 1 1/2 -2/3; 3/2 0 3/4 0;3 -6 0 4; 3;0;运行结果 Columns 1 through 6 -4.0000 0 -3.0000 0 0 0 5.0000 -5.0000 1.2500 3.3333 0 0 0.5000 1.0000 0.5000 -0.6667 1.0000 0 1.5000 0 0.7500 0 0 1.0000 3.0000 -6.0000 0 4.0000 0 0 Columns 7 through 8 0 0 0 5.0000 0 2.0000 0 3.0000 1.0000 0 0 -8.0000 -3.0000 5.3333 0 0 0 5.0000 1.2500 -3.3333 0 0 0 2.0000 0.5000 -1.3333 1.0000 0 0 3.0000 0.7500 -2.0000 0 1.0000 1.0000 -2.0000 0 1.3333 0 0 Columns 7 through
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1