Вы находитесь на странице: 1из 2

���������� 2

script
%
% ���������� ������������ ����
% ������ �� ���������
%
% v.14.01.04
k = 5; %- ������� ����������� ���������������;
n = 13; %- ����� �������� �������;
m = 8; %- ����� �������� �������;
Md = 0; %- ����������� ���������� ���������� ������;
n0 = 2; %- ����� �������������� ����������
% ������� ��������� ��������� (������ m x n)
A = [1 1 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 1 1 1 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 1 1 1
0; 0 -1/4 -7/12 0 1/3 0 0 0 0 0 0 0 0; 0 0 0 0 -1/3 0 -2/3 1/3 0 0 0 0 0; 0 0 0 0 0
-1/4 0 0 -5/4 1 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 -1 0; -1/6 0 0 0 -1/6 0 0 0 0 0 -1/6 0
-1/6];
F = [0; 0; 0; 20; 16; 10; 10; 30]; % ������ �������� (������ n )

if n0 == 2
% ������� � ���� ��������������� ����������� (no = 2)
lz = [18; 13]; % ������ ������������� ������� ������� (������ n0)
% ������� ������������ ����������� (������ n x n0)
G = [1 0; 0 1; 0 1; 0 1; 1 0; 0 1; 1 0; 1 0; 0 1; 0 1; 1 0; 0 1; 1 0];
else
% ������� � ���� ��������������� ����������� (no = 7)
lz = [6; 7; 6; 6; 6]; % ������ ������������� ������� �������
% ������� ������������ ����������� (������ n x n0)
G = [1 0 0 0 0; 0 1 0 0 0; 0 1 0 0 0; 0 1 0 0 0; 0 0 1 0 0; 0 0 0 1 0; 0 0 1 0 0; 0
0 1 0 0; 0 0 0 1 0; 0 0 0 1 0; 0 0 0 0 1; 0 0 0 1 0; 0 0 0 0 1];
end
E = eye(n); Ao = zeros(m,n0); % ��������������� �������

% ---------------- ���������� ������������ ������ ����������� ------------------


% ����� ����� ���������� n0+n
f = [lz; zeros(n,1)]; Ab = -[G -E; G E]; b = zeros(2*n,1); Aeq = [Ao A]; beq = F;
LB = [Md*ones(n0,1); -Inf*ones(n,1)]; % ������ ������ ������ ����������
options = optimset('LargeScale','off');
[Xs,FVALs,EXITFLAG,output] = LINPROG(f,Ab,b,Aeq,beq,LB,[],[],options);
% ---------------- ������������� ������������ ������ ����������� ---------------
% ����� ����� ���������� 2*n+m
f = -[zeros(2*n,1); F]; Ab = [G' G' zeros(n0,m)]; b = lz;
Aeq = [E -E -A']; beq =zeros(n,1);
LB = [zeros(2*n,1); -Inf*ones(m,1)]; % ������ ������ ������ ����������
options = optimset('LargeScale','off');
[Xk,FVALk,EXITFLAG,output] = LINPROG(f,Ab,b,Aeq,beq,LB,[],[],options);

% ����� �����������
disp([' ����:' date])
disp('___���������� ���� � ������ ������������� ���������__________')
disp(['����� �������������� ����������: ', num2str(n0)])
disp(' ���������� ������������ ������')
disp(['�������� ������� �������: ', num2str(FVALs)])
disp('--- ����������� ���������� ������� ----')
fprintf(1,'%7d',1:n0), fprintf(1,'%s\n',' ')
fprintf(1,'%7.2f',Xs(1:n0)'), fprintf(1,'%s\n',' ')
disp('--- ��������� ������� � ������ ����������� ��������� ---')
fprintf(1,'%7d',1:n), fprintf(1,'%s\n',' ')
fprintf(1,'%7.2f',Xs(n0+1:n0+n)'), fprintf(1,'%s\n',' ')
fprintf(1,'%s\n','_______________________________________________________________')
disp(' ������������� ������������ ������')
disp(['�������� ������� �������: ', num2str(FVALk)])
disp('--- ������������� ������� ��������� ������� ���������� ----')
fprintf(1,'%7d',1:n), fprintf(1,'%s\n',' ')
fprintf(1,'%7.2f',Xk(1:n)'), fprintf(1,'%s\n',' ')
disp('--- ������������ ������� ��������� ������� ���������� ----')
fprintf(1,'%7d',1:n), fprintf(1,'%s\n',' ')
fprintf(1,'%7.2f',Xk(n+1:2*n)'), fprintf(1,'%s\n',' ')
disp('--- �������� ����������� ����� � ������ ����������� ��������� ---')
fprintf(1,'%7d',1:m), fprintf(1,'%s\n',' ')
fprintf(1,'%7.2f',Xk(2*n+1:2*n+m)'), fprintf(1,'%s\n',' ')
fprintf(1,'%s\n','_______________________________________________________________')

Вам также может понравиться