- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单纯形法程序整理.txt
%% 单纯形法
%% 主程序
%————————————————%
%% 单纯形法
% 求解线性规划问题
% 编程:范中允
%% 标准矩阵A
% 输入标准形式的约束条件系数矩阵A、右端列向量b、约束条件未知数对应目标函数的系数
c;
% 有需要可以指定迭代的初始单位阵(一组基本可行解);
A=[1,1,2,1,0;
1,4,-1,0,1;
];
c=[-2,-1,1,0,0];
b=[6;4];
Table=[A,b;c,0];%初始表
[h,l]=size(A);
%% 给出初始基本主元
B=[1,1;2,4];
BK=B;
TableK=Table;
%% 迭代
for j=1:100
[TableK,BK]=SubFc_DieDai(TableK,BK,h,l);
t=0;
disp([第,num2str(j),次迭代]);
for i=1:l
if(TableK(h+1,i)=t)
t=TableK(h+1,i);%记录判别数最小值
s=i;%记录下标
end
end
if(t==0)
disp(迭代结束);
break;
end
end
if(j==100)
sprintf(迭代100次未收敛);
end
disp(最终的标准型表:);
disp(TableK);
disp(最优解的目标函数:);
disp(-TableK(h+1,l+1));
disp(基本可行解下标:);
disp(BK(:,2));
disp(基本可行解系数:);
disp(TableK(1:h,l+1));
%————————————————%
%% 子程序-初等行变换
function [ A ] = SubFc_ChuDengHangBianHuan( A,B )
%初等行变换
% 将矩阵指定的主元对应列,由初等行变换,化为主元为1其他元为0
% A为需要变换的矩阵,B为用于指定主元位置的矩
[hA,lA]=size(A);%测算A的行、列数
第 1 页
单纯形法程序整理.txt
[hB,lB]=size(B);%测算B的行、列数
for j=1:hB
if(A(B(j,1),B(j,2))~=1)%如果主元不为1,将对应行除以主元化为1
A(B(j,1),:)=A(B(j,1),:)/A(B(j,1),B(j,2));
end
for i=1:hA%将其他元化为零
if(i==B(j,1))
continue;
end
A(i,:)=A(i,:)-A(B(j,1),:)*A(i,B(j,2));
end
end
end
%————————————————%
%% 子程序-选主元
function [r,s]=SubFc_XuanZhuYuan(TableK,h,l)
%选主元素
% 选出表矩阵TableK中的主元素
%% 选列主元
t=0;
for i=1:l
if(TableK(h+1,i)=t)
t=TableK(h+1,i);%记录判别数最小值
s=i;%记录下标
end
end
if(t==0)
error(判别数全为正);
end
%% 选行主元
for i=1:h%检查元素是否为负,并赋予t初值
if(TableK(i,s)0)
t=TableK(i,l+1)/TableK(i,s);
break;
end
if(i==h)%若元素全为负,则报错
error(主列元素全为非正,规划问题有无界解!);
end
end
%k=1;
for i=1:h
%若未知数出现负值,则是初始迭代标准性表产生的,应更换初始主元;
if(TableK(i,l+1)0)
error(b向量出现负值,更换初始主元);
文档评论(0)