- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单纯形法:SimpleMthd
单纯形法函数:SimpleMthd
用单纯形算法解如下线性规划问题的步骤如下:
确定初始基变量矩阵;求解方程;
令,计算;其中和分别代表基变量和非基变量的值,表示基变量在目标函数中的系数;
求解方程,对于所有非基变量计数判别数,其中为非基变量在约束系数矩阵中相对应的列,令,如果,则停止计算,输出最优解,否则转步骤4;
求解方程,若的每个分量均大于0,则问题不存在最优解,否则转步骤5;
令,其中,用代替,得到新的基变量矩阵再转步骤2计算。
调用格式:
其中,:约束矩阵;
:目标函数系数向量;
:约束右端向量;
:初始向量,basic;
:目标函数取最小值时自由变量值;
:目标函数的最小值;
单纯形法函数的MATLAB程序代码如下:
function [x,minf]=SimpleMthd(A,c,b,baseVector)
%约束矩阵:A;
%目标函数系数向量:c;
%约束右端向量:b;
%初始基向量:baseVector;
%目标函数取最小值时的自变量值:x;
%目标函数最小值:minf;
sz=size(A);
nVia=sz(2);
n=sz(1);
xx=1:nVia;
nobase=zeros(1,1);
m=1;
for i=1:nVia
if(isempty(find(baseVector==xx(i),1)))
nobase(m)=i;
m=m+1;
else
;
end
end
bCon=1;
M=0;
while bCon
nB=A(:,nobase); %非基变量矩阵
ncb=c(nobase); %非基变量系数
B=A(:,baseVector);%基变量矩阵
cb=c(baseVector); %基变量系数
xb=inv(B)*b;
f=cb*xb;
w=cb*inv(B);
for i=1:length(nobase)
sigma(i)=w*nB(:,i)-ncb(i);
end
[maxs,ind]=max(sigma); %ind为进基变量下标
if maxs=0 %最大值小于零,输出最优解
minf=cb*xb;
vr=find(c~=0,1,last);
for l=1:vr
ele=find(baseVector==l,1);
if(isempty(ele))
x(l)=0;
else
x(l)=xb(ele);
end
end
bCon=0;
else
y=inv(B)*A(:,nobase(ind));
if y=0 %不存在最优解
disp(不存在最优解!);
x=NaN;
minf=NaN;
return;
else %寻找出基变量
minb=inf;
chagB=0;
for j=1:length(y)
if y(j)0
bz=xb(j)/y(j);
if bzminb
minb=bz;
chagB=j;
end
end
end
tmp=baseVector(chagB);%更新基矩阵和非基矩阵
baseVector(chagB)=nobase(ind);
noase(ind)=tmp;
end
end
M=M+1;
if (M==1000000) %迭代步数限制
disp(找不到最优解);
x=NaN;
minf=NaN;
文档评论(0)