;
CT (j, i +1) =-FG (j-1, i/2);
end
end
В
% Формування S-рядків у симплекс-таблиці
l = 2;
for j = N + 2: 2: n + 2 * N + 1
% Формування правої частини в S-рядках
CT (j, 4 * N + n +2) = u_p;
CT (j +1, 4 * N + n +2) = abs (u_m);
% Формування елементів S-рядків між 1-м і останнім елементами
% при 2N небазисних змінних, тобто при управліннях
CT (j, l: l +1) = [1 -1];
CT (j +1, l: l +1) = [-1 1];
l = l + 2;
end
В
% Формування базису в симплекс-таблиці, т.е коефіцієнтів, що стоять при
% базисних змінних від 2N небазисних змінних до правої частини (до 4 * N + n +1)
CT (2: n +2 * N +1, 2 * N +2: 4 * N + n +1) = eye (n +2 * N, n +2 * N);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%
РІШЕННЯ ЗАВДАННЯ швидкодіючих%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%% СІМПЛЕКС-МЕТОДОМ%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
В
% Цикл зміни базисних змінних
nn = size (find (CT (1,2:2 * N +1)> = eps));
while nn> 0
[znach, N_stolb] = max (CT (1, 2: 2 * N +1));
N_stolb = N_stolb + 1;% т.к. при небазисной. змін.
PravChast = CT (:, 4 * N + n +2);
for j = 2: n + 2 * N + 1
if CT (j, N_stolb)> 0
PravChast (j) = PravChast (j)/CT (j, N_stolb);
else
PravChast (j) = inf;
end
end
[znach, N_str] = min (PravChast (2: n +2 * N +1));
N_str = N_str + 1;
% Формування матриці переходу B
B = eye (n +2 * N +1, n +2 * N +1);
B (:, N_str) = CT (:, N_stolb);
% Звернення матриці B
RE = B (N_str, N_str);
for j = 1: n + 2 * N + 1
if j == N_str
B (j, N_str) = 1/RE;
else
B (j, N_str) =-B (j, N_str)/RE;
end
end
% B = inv (B);
% Отримання нової симплекс таблиці
CT = B * CT;
nn = size (find (CT (1,2:2 * N +1)> = eps));
end
В
u = zeros (1, N);
% Формування управління
for j = 2: n + 2 * N + 1
for i = 2: 2 * N + 1
if CT (j, i)> = eps
if mod (i, 2)
u (i/2) = CT (j, 4 * N + n +2);
else
u ((i-1)/2) =-CT (j, 4 * N + n +2);
end
end
end
end
В
% Формування x1 і x2
X = zeros (n, N);
X (:, 1) = F * X_0 + G * u (1);
for i = 2: N
X (:, i) = F * X (:, i-1) + G * u (i);
end
В
% Об'єднання з початковими умовами
X1 = [X_0 (1) X (1, ​​:)];
X2 = [X_0 (2) X (2, :)];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
В
% перевірка на закінчення вибору кількості кроків
...