资源简介
matlab编写单纯形法。完全按照最优控制指导教材上的单纯形法的理论步骤编写的。每一步的结果都有给出,很详细的。没有错误。
代码片段和文件信息
function[ANnabmflagmAnA]=simplex(Ambc)%A为初矩阵,N为A的最后一行,n为初始进基变量,a为出基,b为进基,m为最后基变量,flag为cj标志,mA,nA为A的行数,列数%此处求的最小极值;
A=[2 1 1;1 2 3;2 2 1];
b=[2;5;6];
c=[-3 -1 -3];
%b=[4;12;3];
%c=[-4-1];
%A=[-1 2;2 3;1 -1];
%化成标准型;
[a1 a2]=size(A) %取A的行数a1列数a2;
B=eye(a1) %取与行数相等的单位阵;
A1=[A B] %标准单纯形自变量系数矩阵;
m=[(a2+1):(a1+a2)] %列出基变量的下标号;
mm=[1:a2] %列出非基变量下标;
m1=zeros(1((a1+a2)-size(c2)))%给c补充0向量;
c1=[c m1] %生成完整的c向量;
AA1=[A1 b]
flag=1;
k=0;
rl=0;
r=1;
while flag==1
b=AA1(:a1+a2+1)
for i=1:a1
if m(i)==rl
m(i)=k;
end
end
for i=1:a2
if mm(i)==k
mm(i)=rl;
end
end
B=AA1(:m)
%建立初始单纯形表;
cb=c1(m(1));
xb=(inv(B))*b
for i=2:a1
cb=[cb c1(m(i))]%取基向量cb;
end
z0=cb*xb %计算目标函数即基本可行解;
rr=zeros(1a1+a2)
%计算检验数;
for j=1:a2 %计算检验数;
cy=0;
for i=1:a1
cy=cy+c1(m(i))*AA1(imm(j));
end
z(mm(j))=cy
rr(mm(j))=c1(mm(j))-z(mm(j))
end
AA2=[rr -z0]
AA=[AA1;AA2] %生成初始单纯形表;
if (min(rr))>=0 %判断是否是最优解,如果是则显示变量取值x以及最优值z;
z=z0
x(m)=xb
disp(‘变量最优解为:x*=‘)
disp(x)
disp(‘最优解值为:z*=‘)
disp(z)
flag=0;
break;
end
%决定进基矢量ak;
k=min(find(rr==min(rr(find(rr<0)))))
ak=AA1(:k)
%决定离基矢量ar和主元素yrk;
if max(AA1(:k))<=0 %如果yik中有小于等于0的值则目标函数是无界的,无最优解;
disp(‘无有限最优解‘)
flag=0;
break;
end
for i=1:a1
NN(i)=(AA1(ia1+a2+1))/(AA1(ik))
end
r=find(NN==min(NN(find(NN>0))))
yrk=AA1(rk) %主元素为yrk;
rl=m(r) %离基矢量下标为rl;
ar=AA1(:rl) %离基矢量为ar;
%根据列主元Gauss消元法解线性方程组
for i=1:a1
if i~=r
AA1(i:)=AA1(i:)-AA1(r:)*AA1(ik)/AA1(rk)
else
AA1(r:)=AA1(r:)/yrk;
end
end
AA1
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2109 2010-12-27 23:17 单纯形程序\simplex.m
文件 2090 2010-12-27 23:21 单纯形程序\单纯形法.txt
目录 0 2011-06-12 13:45 单纯形程序
----------- --------- ---------- ----- ----
4199 3
- 上一篇:复合非线性反馈积分滑模控制器的设计
- 下一篇:libsvm数据格式转换程序
相关资源
- libsvm数据格式转换程序
- 基于卡尔曼滤波的三种经典室内定位
- emd和eemd算法的matlab源程序
- 基于MATLAB GUI的多功能计算器
- 用MATLAB做的基于霍夫曼编码的图像压
- 互信息 matlab
- 使用matlab实现ICP点云匹配
- 找出两点间所有最短路径
- MATLAB 夜间车牌识别
- matlab使用有限元方法求解偏微分方程
- matlab纹理特征提取源代码
- 中央大学 EMD HHT Matlab 源代码
- 方崇智《过程辨识》一书中各种辨识
- 求取图像的平均梯度---matlab ---M文件
- matlab潮流程序牛顿拉夫逊+PQ分解法有
- MATLAB 4f光学系统仿真
- 基于肤色模型的人脸检测MATLAB代码
- 自动寻峰算法matlab源文件
- matlab时间序列分析工具程序
- 灰色预测模型及Matlab实现附参考论文
- MSE+ 一对一多类技术的matlab实现
- MIMO-OFDM无线通信技术及MATLAB实现
- MEEM视觉跟踪matlab代码
- MATLAB神经网络43个案例分析源代码
- 数字滤波器的MATLAB与FPGA实现——杜勇
- MATLAB图像与视频处理实用案例详解代
- 轴承故障诊断matlab代码四种方法
- EM算法(MATLAB实现)289407
- MATLAB应用程序接口用户指南pdf文档
- matlab图像压缩感知
评论
共有 条评论