PB13204065买热哈巴·买买提明《运筹学》实验报告 下载本文

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