clc; clear;
c = [3; 2];
A = [6, 4; 0, -2; -2, -1];
b = [18; -1; -5];
[x, Z] = glpk(c, A, b, [0; 0], [], "UUU", "CC", -1);
fprintf("Прямая задача: x* = (%.4f; %.4f), Zmax = %.4f\n", x(1), x(2), Z);
[y, F] = glpk(b, A', c, [0; 0; 0], [], "LL", "CCC", 1);
y = round(y * 1e9) / 1e9;
fprintf("Двойств. задача: y* = (%.4f; %.4f; %.4f), Fmin = %.4f\n\n", y(1), y(2), y(3), F);
fprintf("Первая теорема: Zmax = %.4f, Fmin = %.4f, разность = %.1e\n", Z, F, abs(Z - F));
s = b - A * x;
t = A' * y - c;
sy = round((s .* y)' * 1e6) / 1e6;
xt = round((x .* t)' * 1e6) / 1e6;
fprintf("Вторая теорема: x(n+i)*y_i = [%.0f %.0f %.0f]; x_j*y(m+j) = [%.0f %.0f]\n", sy(1), sy(2), sy(3), xt(1), xt(2));
h = 0.1;
for i = 1:3
bb = b;
bb(i) = bb(i) + h;
[~, Z_new] = glpk(c, A, bb, [0; 0], [], "UUU", "CC", -1);
fprintf("dZ/db%d ≈ %.4f (y%d = %.4f)\n", i, (Z_new - Z) / h, i, y(i));
end
To embed this project on your website, copy the following code and paste it into your website's HTML: