题目
引入松弛变量x3,x4,x5将其化为标准型
以下是计算代码
clear
clc
A=[-1,1,1,0,0;1,2,0,1,0;3,1,0,0,1;];
c=[-2,-3,0,0,0];
b=[2,10,15,0]';
%A为系数矩阵
%b为常数约束矩阵
%c为目标函数系数矩阵
for i=1:length(c)
if c(i)<0 %选择底行c从左往右数第一个负数
xishu=zeros(length(A(:,1)),1)+10000; %初始化为大数以避免影响最小值
for j=1:length(A(:,1))
if A(j,i)>0
xishu(j,1)=b(j,1)/A(j,i); %把整数行的比值存起来
end
end
[R,C]=find(xishu==min(xishu)); %找到比值最小的行数R
h=1/A(R,i);
A(R,:)= A(R,:).*h; %把A对应行的化为1
b(R)=b(R)*h; %把b对应行做变换
for z=1:length(b)-1 %把A中其他行对应的化为0
if z~=R
h=A(z,i);
A(z,:)=A(z,:)-A(R,:)*h;
b(z)=b(z)-b(R)*h;
end
end
h=c(1,i);
c(1,:)=c(1,:)-h*A(R,:); %处理c行化为0
b(length(b))=b(length(b))-h*b(R);%处理c行对应的b
end
end
A
c
b
disp("最优解为:") %从A和b中看出最优解
disp([4,3]')
disp("最优值为:")
disp(-b(length(b))) %从c中得最优值
结果如下: