C =
0.6667 -0.3333 -0.3333 0.6667 四、实验结果分析与评价
这次实验让我大概熟悉了MATLAB的操作方式。
9
实验二 一、实验目的
1.线性规划求解的编程实现
2.编写MATLAB程序(不能使用数学规划求解函数)实现线性规划的单纯型求解方法。 二、实验内容
minz??3x1?x2?x3?x1?2x2?x3?111)计算??4x1?x2?2x3??3 st??2x1?x3??1?2,3?xi?0,i?1,
(2)计算
三、实验步骤
function [X,f]=DANCHUN(A,b,c) %x:最优解
10
?maxz?x1?x2?t.x1?2x2?4?s.?x1?2x2?8??x1,x2?0?
%f:目标函数最优值 %c:目标函数系数向量 %A:系数矩阵 %b:m维列向量
format rat %可以让结果用分数输出 [m,n]=size(A);
E=1:m;E=E'; F=n-m+1:n;F=F'; D=[E,F];
X=zeros(1,n); %初始化X
if(n 11 flag=1; B=A(:,n-m+1:n); %找基矩阵 cB=c(n-m+1:n); %基矩阵对应目标值的c while flag w=cB/B; %计算单纯形乘子,cB/B=cB*inv(B) panbieshu=w*A-c; %计算判别数 [z,k]=max(panbieshu); % k作为进基变量下标 。。 % fprintf('b''./(B\\\\A(:,%d))为',k); b'./(B\\A(:,k)); if(z<0.000000001) flag=0; %所有判别数都小于0时达到最优解 fprintf(' 已找到最优解!\\n'); xB=(B\\b')'; f=cB*xB'; for i=1:n 12