今天刚好写完了作业闲的没事干所以来分享一下代码:
这次是单纯形法的matlab代码,和常见的代码不是很一样,没有选主元的过程,虽然繁琐了一些但是写起代码来还是比较容易。
A matrix b列向量 c列向量
给大家一个这种单纯形法的例题感受一下:
是不是很有意思,所以我们来看代码:
function [x,z] = SM(A,b,c)
[m,n]=size(A);
fullA=zeros(m,m+n); %改变这几个矩阵的样式
fullA(:,1:n)=A;
fullA(:,n+1:n+m)=eye(m);
fullc=zeros(n+m,1);
fullc(1:n)=c;
JB=[n+1:n+m]; %构建JB和JD
B=fullA(:,JB);
JD=[1:n];
D=fullA(:,JD);
xB=zeros(n+m,1);
xB(JB)=inv(B)*b;
e=fullc(JD)'-fullc(JB)'*inv(B)*D;
[emin,k]=min(e);
while emin<0 %这里开始进入循环了嗷
jenter=JD(k);
y=inv(B)*fullA(:,JD(k));
Y=find(y>0);
X=xB(