线性规划单纯型法MATLAB程序
线性规划单纯形法的MATLAB程序
3 Department of Guilin University of Electronic Technology
比方要求解:
maxz,2x,x 12
5x,15 2
6x,2x,24 s.t. 12
x,x,5 12
x1,x2,0
则:
转化成标准形式为:
maxz,2x,x,0x,0x,0x 12345
5x,x,15 23
6x,2x,x,24 s.t. 124
x,x,x,5 125
x1,x2,0 则用单纯形法:
令标准化约束条件系数的矩阵:
05100,,
,,A,62010 ,,
,,11001,,
基解B
15,,
,,B,24 ,,
,,5,,
目标系数举证:
,,C,21000 基解的目标初始系数是:
,,Cb,000
则基解对应的变量向量为:
,, X,345
用MATLAB程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
为:
data.mat:
simplex.m:
function [solution,solu_B,solu_X]=simplex(A,B,C,Cb,X)
%求出系数矩阵的行数和列数
% A为要求的标准化方程的举证
% B为初始时的基解向量
% C为待解的系数向量
% Cb为初始基解的系数向量
% X为x1、x2……xn等向量
%====================== SIZE=size(A);
m=SIZE(1);
n=SIZE(2);
%初始计算dada
for j=1:n
sum=0;
for i=1:1:m
sum=sum+Cb(i)*A(i,j);
end
deda(j)=C(j)-sum; end
Max_deda=max(deda); %循环计算体
while Max_deda > 0 %计算最大的deda所在的列
k=find(deda==Max_deda) %计算确定基换出确定变量thida,并找出其行位置l for i=1:m
thida(i)=B(i)/A(i,k); end
l=find(thida==min(thida)); %换出基变量的基
Cb(l)=C(k);
X(l)=k;
%做系数矩阵的变换
B(l)=B(l)/A(l,k);
m_Alk=A(l,k);
for j=1:n
A(l,j)=A(l,j)/m_Alk; end
for i=1:m
m_Aik=A(i,k);
if i~=l
B(i)=B(i)-B(l)*m_Aik;
for j=1:n
A(i,j)=A(i,j)-A(l,j)*m_Aik;
end
end
end
%再次计算dada
for j=1:n
sum=0;
for i=1:m
sum=sum+Cb(i)*A(i,j);
end
deda(j)=C(j)-sum;
end
Max_deda=max(deda); end
%计算最优目标解
if Max_deda<=0
s=0;
for i=1:m
s=s+Cb(i)*B(i);
end
max_z=s;
end
solution=max_z;solu_B=B;solu_X=X;
end
则运行结果为:
在MATLAB里运行:[solution,solu_B,solu_X]=simplex(A,B,C,Cb,X)
其结果为:
solution =
8.5000 即,目标函数最优解;
solu_B =
7.5000
3.5000
1.5000 即,即约束条件最优解;
solu_X =
3 1 2 即,最优解的x变量,对应
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示是x3,x1,x2,即x3=7.5;
x1=3.5;x2=1.5。