You are on page 1of 2

clc;

clear all;
syms m g v0 dvgoc alpha h time t xn xn2; %Khai báo các biến
disp('XÁC ĐỊNH QUỸ ĐẠO CHUYỂN ĐỘNG NÉM XIÊN TRONG TRỌNG TRƯỜNG CÓ LỰC CẢN MÔI
TRƯỜNG'), disp(' '), disp(' ');
m=input('Nhập khối lượng của vật, m (kg) = ');
g=input('Nhập gia tốc trọng trường, g (m/s^2) = ');
g=-g; %Đổi dấu giá trị g để phù hợp với hệ trục tọa độ được chọn
v0=input('Nhập vận tốc ban đầu của vật, v0 (m/s) = ');
dvgoc=input('Chọn đơn vị góc [1: rad | 2: deg] :');
if (dvgoc==1)
alpha=input('Nhập góc ném (rad): ');
elseif (dvgoc==2)
alpha=input('Nhập góc ném (deg): ');
alpha=alpha*pi/180;
end;
h=input('Nhập hệ số lực cản môi trường, h = ');
time=input('Nhập thời gian bay của vật, t (s): ');
disp(' ');
disp('2. Tìm biểu thức của x(t) và y(t):'),disp(' ');
disp('Phương trình biểu diễn chuyển động: m*vecto(a) = m*vecto(g) - h*vecto(v)');
disp('Phương trình vi phân tương ứng của x(t) và y(t):'); %Hiển thị PTVP
disp('m*x''''= -h*x''');
disp('m*y''''= m*g - h*y''');
disp('Nghiệm của các phương trình vi phân là:'),disp(' ');
x(t)=dsolve('m*D2x=-h*Dx', 'Dx(0)=v0*cos(alpha)', 'x(0)=0');
disp('x(t)=');
pretty(x(t));
y(t)=dsolve('m*D2y=m*g-h*Dy', 'Dy(0)=v0*sin(alpha)', 'y(0)=0');
disp('y(t)=');
pretty(y(t));
%Đoạn chương trình dưới phục vụ việc vẽ đồ thị
xn=input('Bạn muốn vẽ đồ thị không? (Yes/No): ','s');
disp(' ');
if xn=='Yes' | xn=='yes' | xn=='YES'
disp('3. Vẽ đồ thị quỹ đạo chuyển động: '),disp(' ');
ezplot(subs(x(t)),subs(y(t)),[0 time]);
while xn=='Yes' | xn=='yes' | xn=='YES'
title('Đồ thị quỹ đạo chuyển động ném xiên trong trọng trường có lực
cản môi trường');
xlabel('x(t)');
ylabel('y(t)');
grid on;
shg;
xn=input('Bạn có muốn vẽ đồ thị với giá trị alpha khác không (Yes/No):
','s');
if xn=='Yes' | xn=='yes' | xn=='YES'
if (dvgoc==1)
alpha=input('Nhập góc ném (rad): ');
elseif (dvgoc==2)
alpha=input('Nhập góc ném (deg): ');
end;
xn2=input('Bạn có muốn giữ lại đồ thị cũ không? (Yes/No): ','s');
if xn2=='Yes' | xn2=='yes' | xn2=='YES'
hold on;
elseif xn2=='No' | xn2=='no' | xn2=='NO'
hold off;
end;
ezplot(subs(x(t)),subs(y(t)),[0 time]);
end;
end;
end;
disp(' ');
disp('Chúc bạn có một buổi học thật vui vẻ');

You might also like