Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

BÀI TẬP MÔ PHỎNG HỆ THỐNG TRUYỀN THÔNG

Họ và tên: Vũ Hồng Sơn


Mã SV: B20DCVT315
Nhóm: 06

Bài 19:
Code vẽ đường tròn bán kính bằng 3:
function [chuvi, dientich] = circle_prog()
%Ve hinh tron co ban kinh bang 3
r = 3;
t = linspace(0, 2*pi, 1000);
x = r*cos(t);
y = r*sin(t);
plot(x,y);
axis equal;
% Tinh chu vi va dien tich
chuvi = 2*pi*r;
dientich = pi*r^2;
% In ket qua
disp(['Chu vi hinh tron la: ', num2str(chuvi)]);
disp(['Dien tich hinh tron la: ', num2str(dientich)]);
end

Kết quả:

Hình ảnh đồ thị:


Bài 20:
function [circum, area] = circle_prog()
% Viet chuong trinh Matlab ve hinh tron co ban kinh r=3
r = 3;
t = linspace(0, 2*pi, 1000);
x = r*cos(t);
y = r*sin(t);
plot(x,y);
axis equal;
% Tinh chu vi va dien tich
circum = 2*pi*r;
area = pi*r^2;
% In ket qua voi 5 so sau dau phay
fprintf('Chu vi hinh tron la: %.5f\n', circum);
fprintf('Dien tich hinh tron la: %.5f\n', area);
end

Kết quả:
Bài 21:
% Nhap ham và doan [a,b] tu ban phim
syms x
f = @(x) x^3/3 + 4*x^2 + x - 6;
a = input('Nhap gia tri a = ');
b = input('Nhap gia tri b = ');

% Kiem tra dieu kien f(a)*f(b) < 0


if f(a) * f(b) >= 0
error('Dieu kien f(a)*f(b) < 0 khong thoa man.')
end

% Thiet lap do chinh xac epsilon và so lan lap tai da N


epsilon = 1e-6;
N = 1000;

% Phuong phap chia doi


fa = f(a);
fb = f(b);
n = 0;
while n <= N
n = n + 1;
c = (a + b) / 2;
fc = f(c);
fprintf('n = %d, a = %f, b = %f, c = %f, fc = %f\n', n, a,
b, c, fc);
if abs(fc) < epsilon
fprintf('Da tim thay nghiem c = %f sau %d vong lap.\n',
c, n);
break;
end

% Tiep tuc voi doan [a,c] hoac [c,b] tuy vao dau cua f(c)
if fa * fc < 0
b = c;
fb = fc;
else
a = c;
fa = fc;
end
end
% Kiem tra dieu kien dung
if n > N
fprintf('Dat so lan lap toi da nhung khong tim duoc nghiem
voi do chinh xac epsilon = %f.\n', N, epsilon);
end

Thử nghiệm với kết quả x=0 và x=3, ta có kết quả sau:
Nhap gia tri a = 0
Nhap gia tri b = 3
n = 1, a = 0.000000, b = 3.000000, c = 1.500000, fc = 5.625000
n = 2, a = 0.000000, b = 1.500000, c = 0.750000, fc = -2.859375
n = 3, a = 0.750000, b = 1.500000, c = 1.125000, fc = 0.662109
n = 4, a = 0.750000, b = 1.125000, c = 0.937500, fc = -1.272217
n = 5, a = 0.937500, b = 1.125000, c = 1.031250, fc = -0.349274
n = 6, a = 1.031250, b = 1.125000, c = 1.078125, fc = 0.145260
n = 7, a = 1.031250, b = 1.078125, c = 1.054688, fc = -0.104784
n = 8, a = 1.054688, b = 1.078125, c = 1.066406, fc = 0.019542
n = 9, a = 1.054688, b = 1.066406, c = 1.060547, fc = -0.042794
n = 10, a = 1.060547, b = 1.066406, c = 1.063477, fc = -0.011669
n = 11, a = 1.063477, b = 1.066406, c = 1.064941, fc = 0.003926
n = 12, a = 1.063477, b = 1.064941, c = 1.064209, fc = -0.003875
n = 13, a = 1.064209, b = 1.064941, c = 1.064575, fc = 0.000025
n = 14, a = 1.064209, b = 1.064575, c = 1.064392, fc = -0.001925
n = 15, a = 1.064392, b = 1.064575, c = 1.064484, fc = -0.000950
n = 16, a = 1.064484, b = 1.064575, c = 1.064529, fc = -0.000463
n = 17, a = 1.064529, b = 1.064575, c = 1.064552, fc = -0.000219
n = 18, a = 1.064552, b = 1.064575, c = 1.064564, fc = -0.000097
n = 19, a = 1.064564, b = 1.064575, c = 1.064569, fc = -0.000036
n = 20, a = 1.064569, b = 1.064575, c = 1.064572, fc = -0.000006
n = 21, a = 1.064572, b = 1.064575, c = 1.064574, fc = 0.000010
n = 22, a = 1.064572, b = 1.064574, c = 1.064573, fc = 0.000002
n = 23, a = 1.064572, b = 1.064573, c = 1.064573, fc = -0.000002
n = 24, a = 1.064573, b = 1.064573, c = 1.064573, fc = 0.000000
Da tim thay nghiem c = 1.064573 sau 24 vong lap.

Bài 22:

% Nhap gia tri dau vao


a = -1.5;
b = 1.5;
N = 100;

% Tinh do dai moi khoang


h = (b - a) / N;

% Tinh gia tri diem trung tam cua moi khoang va tong hop ket qua
sum = 0;
for i = 1:N
xi = a + (i - 0.5) * h;
fxi = 4 * xi^3 * 2^xi * cos(xi);
sum = sum + fxi;
end

% Nhan do dai moi khoang de tinh tong dien tich


integral = h * sum;

% Ket qua
fprintf('%.6f\n', integral);

Kết quả thu được là: 2.865730

Bài 23:

x0 = 2;
x = x0;
dx = 1;

while abs(dx) > 0.0001


x_new = (x^2 + 2)/(2*x);
dx = x_new - x;
x = x_new;
end

fprintf('The approximate value of sqrt(2) is %f\n', x);

Kết quả: The approximate value of sqrt(2) is 1.414214


Bài 24:
a = 1;
r = 1;
y0 = 0;
h = 0.25;
t = 0:h:2;

y = zeros(size(t));
y(1) = y0;

for i = 1:length(t)-1
y(i+1) = y(i) + h*(r - a*y(i));
end

y_exact = (r/a)*(1 - exp(-a*t));


error1 = abs(y_exact(5) - y(5));
error2 = abs(y_exact(9) - y(9));
fprintf('The numerical solution at t=1 is %f\n', y(5));
fprintf('The exact solution at t=1 is %f\n', y_exact(5));
fprintf('The error at t=1 is %f\n', error1);

fprintf('The numerical solution at t=2 is %f\n', y(9));


fprintf('The exact solution at t=2 is %f\n', y_exact(9));
fprintf('The error at t=2 is %f\n', error2);

Kết quả:
The numerical solution at t=1 is 0.683594
The exact solution at t=1 is 0.632121
The error at t=1 is 0.051473
The numerical solution at t=2 is 0.899887
The exact solution at t=2 is 0.864665
The error at t=2 is 0.035222

Bài 27:

C = 4.7e-6;
R = 10e3;
u1 = @(t) 1;
tspan = [0 3];
y0 = 0;
h = 0.001;

f = @(t,y) (-1/(R*C))*y + (1/(R*C))*u1(t);

t = tspan(1):h:tspan(2);
y = zeros(size(t));
y(1) = y0;

for i = 1:length(t)-1
k1 = h*f(t(i), y(i));
k2 = h*f(t(i)+h/2, y(i)+k1/2);
k3 = h*f(t(i)+h/2, y(i)+k2/2);
k4 = h*f(t(i)+h, y(i)+k3);
y(i+1) = y(i) + (1/6)*(k1 + 2*k2 + 2*k3 + k4);
end

[t_ode45, y_ode45] = ode45(f, tspan, y0);


figure;
plot(t, y, 'b', t_ode45, y_ode45, 'r');
xlabel('Time (s)');
ylabel('Voltage (V)');
legend('RK4', 'ode45');
Kết quả đồ thị:

Bài 29:

You might also like