matlab做线性规划图,线性规划(matlab实现)

那天上了线性规划,老师总是说,编程怎么实现,一本天大出的薄薄的最优化方法的书,还有程序设计的步骤,我晚上就试了试,这个数组设置,是按照书上的一个例题。高兴的是单纯型表的遍历正确,但还没有最后输出最有值,当时有点困了。

B=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1];

b=[6;8;4;3];

CB=[0;0;0;0];

C=[-2;-3;0;0;0;0];

a=[ ];

A=[1 1 1 0 0 0;1 2 0 1 0 0;1 0 0 0 1 0;0 1 0 0 0 1];

Bin=inv(B);

TB=[ ];%单纯型表

TB(1:4,1)=Bin*b;

TB(1:4,2:7)=A;

TB(1:4,8)=[inf;inf;inf;inf];

TB(5,1)=inf;

TB(5,2:7)=C'-CB'*Bin*A;

TB(5,8)=inf;

display(TB)%单纯型表制造完毕

while 1

p=find(TB(5,2:7)<0);%step2

if(isempty(p))

check=1;

break;

else

[out_mean,out_order]=min(TB(5,2:7));

q=find(TB(1:4,out_order+1)>0);

if(isempty(q))%step3

check=0;

break;

end

end

for i=1:4

s=out_order+1;

if TB(i,s)>0

TB(i,8)=TB(i,1)/TB(i,s)

else

TB(i,8)=inf

end

end

[in_mean,in_order]=min(TB(1:4,8));

TB(in_order,:)=TB(in_order,:)/TB(in_order,s);

for i=1:4

if i~=in_order

TB(i,1)=TB(i,1)-TB(in_order,1)*TB(i,s)/TB(in_order,s);

end

end

z=TB(5,s);

for j=2:7

TB(5,j)=TB(5,j)-z*TB(in_order,j)/TB(in_order,s);

end

for i=1:4

if i~=in_order

TB(i,2:7)=TB(i,2:7)-TB(in_order,2:7).*TB(i,s)

end

end

end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值