You are on page 1of 3

Học và tên : Nguyễn Sơn Tùng

Nhóm HP : 20.36

Bài 3 đồ thị
clc; close all;

% Tạo lưới dữ liệu


x1 = linspace(0, 4, 100);
x2 = linspace(0, 4, 100);
[x1, x2] = meshgrid(x1, x2);

% Tính giá trị của hàm mục tiêu


f = (x1 - 4).^2 + (x2 - 6).^2;

% Tạo đồ thị contour cho hàm mục tiêu


figure;
contour(x1, x2, f, 20, 'LineWidth', 1);
hold on;

% Vẽ ràng buộc x1^2 <= x2


x2_vals = 0:0.01:4;
x1_vals = sqrt(x2_vals);
plot(x1_vals, x2_vals, 'r', 'LineWidth', 2);

% Vẽ ràng buộc x2 <= 4


x1_vals = 0:0.01:4;
x2_vals = ones(size(x1_vals)) * 4;
plot(x1_vals, x2_vals, 'g', 'LineWidth', 2);

% Đặt tên và chú thích đồ thị


title('Hàm mục tiêu và Ràng buộc');
xlabel('x1');
ylabel('x2');
legend('f(x)', 'Ràng buộc x1^2 <= x2', 'Ràng buộc x2 <= 4');

% Hiển thị lưới


grid on;

hold off;
Bài 4 đồ thị
clc ; close all ;
% Tạo lưới dữ liệu để vẽ đồ thị
x1 = linspace(0, 3, 100); % Từ 0 đến 3
x2 = linspace(0, 3, 100); % Từ 0 đến 3
[X1, X2] = meshgrid(x1, x2);

% Hàm mục tiêu


f = (X1 - 3).^2 + (X2 - 2).^2;

% Ràng buộc
constraint1 = X1.^2 + X2.^2;
constraint2 = X1 + X2;

% Vẽ đồ thị của hàm mục tiêu


figure;
contour(X1, X2, f, 20);
hold on;

% Vẽ đồ thị ràng buộc x1^2 + x2^2 <= 5


contour(X1, X2, constraint1, [5 5], 'r', 'LineWidth', 2);

% Vẽ đồ thị ràng buộc x1 + x2 <= 3


contour(X1, X2, constraint2, [3 3], 'g', 'LineWidth', 2);

% Đặt tên cho đồ thị


title('Hàm Mục Tiêu và Ràng Buộc');
xlabel('x1');
ylabel('x2');

% Hiển thị chú thích


legend('f(x)', 'x1^2 + x2^2 <= 5', 'x1 + x2 <= 3');

% Hiển thị lưới


grid on;

% Hiển thị
hold off;

You might also like