xMetod2
clc
clear all
close all
format short
В
%%%%%%%%%%%%%%%%%%%%%%% дані, що вводяться%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%
% Матриці системи
A = [0 2;
-3 0];
В
B = [0; 2];
В
% Координати початкової і кінцевої точки
X_0 = [14; 0];
X_N = [0, 0];
В
% Обмеження на управління
u_m = -3; p> u_p = 5;
В
eps = 1e-10;% похибка порівняння з нулем
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
N = 195;% число кроків
% h = t1/N;% крок дискретизації
h = 0.0162;
alfa = 1;
a = 0;
b = 0;
В
% t1 = 796/245;% час переходу в кінцевий стан
n = size (A);
n = n (1);% порядок системи
В
% Знаходження матричного експоненціала
syms s t
MatrEx = ilaplace ((s * eye (n)-A) ^ (-1));
MatrEx_B = MatrEx * B;
В
% Обчислення матриць F і G
F = subs (MatrEx, t, h);
G = double (int (MatrEx_B, t, 0, h));
В
%%%%%%%%%% ФОРМУВАННЯ ЗАВДАННЯ швидкодіючих ЯК ЗАВДАННЯ%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%% ЛІНІЙНОГО ПРОГРАМУВАННЯ%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
В
for index = 1: 1e +10
В
% Обчислення правої частини
PravChast = X_N - F ^ N * X_0;
В
% Обчислення твори F на G
FG = zeros (n, N);% формування матриці для зберігання даних
for j = 1: n
for i = 0: N - 1
fg = F ^ (N-i-1) * G;
if PravChast (j) <0
fg =-fg;
end
FG (j, i +1) = fg (j);
end
end
В
% Побудова z-рядки
z_stroka = Zeros (1, 4 * N + n +2);% формування матриці для зберігання даних
% Перший елемент z-рядки
z_stroka (1) = 1;
% Підсумовування правих частин
for j = 1: n
z_stroka (4 * N + n +2) = z_stroka (4 * N + n +2) + abs (PravChast (j));
end
% Формування елементів z-рядки між 1-м і останнім елементами
% при 2N небазисних змінних, тобто при управліннях
for i = 2: 2: 2 * N
for j = 1: n
z_stroka (i) = z_stroka (i) + FG (j, i/2);
end
for j = 1: n
z_stroka (i +1) = z_stroka (i +1) - FG (j, i/2);
end
end
В
% Формування симплекс-таблиці
CT = zeros (n +2 * N +1, 4 * N + n +2);
% Побудова симплекс-таблиці починаючи з z-рядки
CT (1, :) = Z_stroka (1, :);
В
% Формування R-рядків у симплекс-таблиці
for j = 2: n + 1
% Формування правої частини в R-рядках
CT (j, 4 * N + n +2) = abs (PravChast (j-1));
% Формування елементів R-рядків між 1-м і останнім елементами
% при 2N небазисних змінних, тобто при управліннях
for i = 2: 2: 2 * N
CT (j, i) = FG (j-1, i/2)...