运筹学问题用matlab解答,{运筹学}求助,用matlab实现对偶单纯形求解线性规划问题...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

在网上下载了用对matlab实现对偶单纯形的程序,但程序运算结果与我使用lingo计算的结果不一致,求大神解决,原程序如下:

function x=lindual(c,A,b)

[n1,n2]=size(A);

A=[-A,eye(n1)];c=[-c,zeros(1,n1)];

x1=[zeros(1,n2),b'];lk=[n2+1:n1+n2];

b=-b;

while(1)

x=x1(1:n2);

s1=[lk',b,A];

c;

x1;

cc=[];ci=[];

for i=1:n1

if b(i)<0

cc=[cc,b(i)];

ci=[ci,i];

end

end

nc=length(cc);

if nc==0

fprintf('达到最优解');

break

end

cliu=cc(1);

cl=ci(1);

for j=1:nc

if abs(cc(j))>abs(cliu)

cliu=cc(j);

cl=j;

end

end

cc1=[];ci1=[];

for i=1:n1+n2

if A(cl,i)<0

cc1=[cc1,A(cl,i)];

ci1=[ci1,i];

end

end

nc1=length(cc1);

if nc1==0

fprintf('无可行解');

break

end

cliu=c(ci1(1))/cc1(1);

cl1=ci1(1);

for j=1:nc1

if c(ci1(j))/cc1(j)

cliu=c(ci1(j))/cc1(j);

cl1=ci1(j);

end

end

b(cl)=b(cl)/A(cl,cl1);

A(cl,:)=A(cl,:)/A(cl,cl1);

for k=1:n1

if k~=cl

b(k)=b(k)-b(cl)*A(k,cl1);

A(k,:)=A(k,:)-A(cl,:).*A(k,cl1);

end

end

c=c-c(cl1).*A(cl,:);

x1(lk(cl))=0;

lk(cl)=cl1;

for kk=1:n1

x1(lk(kk))=b(kk);

end

x=x1(1:n2);

end

我的线性规划问题是

Max=x1+x2+x3+x4;

x2+x3+x4<=11.2;

x1+x2-x3-x4>=0;

x2-0.8*x1<0;

x1+x4<=9.5;

x1<=10;

x2<=10;

x3<=10;

x4<=10;

我应该怎么调用函数

是不是我的这个线性规划问题不是标准形式?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值