单纯形算法 matlab

本文介绍了一种使用单纯形法解决线性规划问题的MATLAB实现过程。通过迭代更新基变量与非基变量,逐步寻找最优解。文章详细展示了如何利用单纯形法进行目标函数标准化,并给出了具体的计算步骤。
%单纯形

%目标函数标准化
% min x1-3x2+2x3

%输入参量
N=[3 -1 2;-2 4 0;-4 3 8];
B=eye(3);
A=[N B];
cn=[1;-3;2];
cb=zeros(3,1);
c=[cn;cb];

b=[7;12;10];


while(1)

    invb=inv(B);
    cn=cn-N'*invb'*cb;
    if cn>=0
        xb=B\b;
        disp('find')
        xb
        break
    else
        p=(find(cn==min(cn)));%enter to B
        b=B\b;
        a=A(:,p);
        a=B\a;
        m=b./a;
        q=(find(m==min(m(m>0))));%out of B
        %swap
        t=B(:,q);
        B(:,q)=N(:,p);
        N(:,p)=t;
        
        t=cb(q);
        cb(q)=cn(p);
        cn(p)=t;
    
    end
end

B
n=size(A,2); %提取A的列数
a=zeros(size(A'));
for i=1:n
    a(i,:)=A(:,i);
end
x=zeros(1,6);
for i=1:n
    for j=1:3
        if a(i,:)==B(:,j)'
        
        x(i)=xb(j);
        end
    end
end
x

  

转载于:https://www.cnblogs.com/wander-clouds/p/9239248.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值