单纯形法matlab程序Word文档下载推荐.doc
- 文档编号:1453315
- 上传时间:2023-04-30
- 格式:DOC
- 页数:4
- 大小:15KB
单纯形法matlab程序Word文档下载推荐.doc
《单纯形法matlab程序Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《单纯形法matlab程序Word文档下载推荐.doc(4页珍藏版)》请在冰点文库上搜索。
,1:
n-1);
%参数包括目标函数系数(C),约束条件的系数矩阵(A),
%其中A的最后一列为约束条件的右端值b,初始基向量的位置(N)。
sigma=c-CB*A;
%计算检验数sigma。
display('
初始单纯形表为:
'
);
%输出初始的单纯形表
table=[nan,nan,nan,c;
CB'
N'
b,A;
nan,nan,nan,sigma]
opt=1;
step=0;
whileopt
step=step+1;
%定义循环,直到第“step”步找到最优解(opt=0)。
ifsum(sigma>
0)==0%利用检验数判断是否得到最优解,并给出提示。
display('
没有得到最优解,继续迭代.'
opt=0;
else
inb=find(sigma==max(sigma));
%利用单纯形方法找到入基变量的位置
num=length(inb);
Inb=inb(num)
flag=0;
fori=1:
m%利用单纯形方法找出出基变量的位置
ifA(i,inb)>
theta(i)=b(i)/A(i,inb);
else
theta(i)=inf;
end
end
outb=find(theta==min(theta));
num=length(outb);
%判断足否出现退化现象,如出现退化,给il{语言提示,并取最后出现的符合出基条件的变量为出基变量。
ifnum~=1
display('
出现退化情况.'
outb=outb(num);
fori=1:
m%将单纯形表进行“转轴”运算,得到新的单纯形表。
forj=1:
n-1
ifi==outb
Anew(i,j)=A(outb,j)/A(outb,inb);
bnew(i)=b(outb)/A(outb,inb);
else
Anew(i,j)=A(i,j)-A(outb,j)/A(outb,inb)*A(i,inb);
bnew(i)=b(i)-b(outb)/A(outb,inb)*A(i,inb);
end
end
end
display('
主元素为:
),a=[A(outb,inb),outb,inb]%输出主元素,计算新单纯形表的检验数。
A=Anew;
b=bnew;
N(outb)=inb;
fori=1:
l
CB(i)=c(N(i));
end
sigma=c-CB*A;
迭代得到的单纯形表为:
%输出得到的新单纯形表。
并给出提示语句。
table=[nan,nan,nan,c;
b'
A;
得到最优解:
Z=CB*b'
;
%计算检验数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单纯 matlab 程序