线性规划单纯形法matlab解法由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“线性规划单纯形解法”。
线性规划单纯形法matlab解法
%单纯形法matlab程序-implex % 求解标准型线性规划:max c*x;s.t.A*x=b;x>=0 % 本函数中的A是单纯初始表,包括:最后一行是初始的检验数,最后一列是资源向量b % N是初始的基变量的下标
% 输出变量sol是最优解, 其中松弛变量(或剩余变量)可能不为0 % 输出变量val是最优目标值,kk是迭代次数 % 例:max 2*x1+3*x2 % s.t.x1+2*x2=0 % 加入松驰变量,化为标准型,得到 % A=[1 2 1 0 0 8;% 4 0 0 1 0 16;% 0 4 0 0 1 12;% 2 3 0 0 0 0];% N=[3 4 5];% [sol,val,kk]=implex(A,N)% 然后执行 [sol,val,kk]=implex(A,N)就可以了。function [sol,val,kk]=implex(A,N)[mA,nA]=size(A);kk=0;% 迭代次数 flag=1;while flag kk=kk+1;if A(mA,:)0&A(1:mA-1,i)temp temp=A(mA,i);inb=i;% 进基变量的下标 end end sita=zeros(1,mA-1);for i=1:mA-1 if A(i,inb)>0 sita(i)=A(i,nA)/A(i,inb);end end temp=inf;for i=1:mA-1 if sita(i)>0&sita(i)
A(outb,:)=A(outb,:)/A(outb,inb);for i=1:mA if i~=outb A(i,:)=A(i,:)-A(outb,:)*A(i,inb);End End End End end