Rơi tự do – Khảo sát đầy đủ

Phát triển từ chương trình “Rơi tự do” ta mở rộng việc khảo sát bài toán trên nhiều phương diện: quãng đường đi được, diễn biến thay đổi của vận tốc và gia tốc.

Code chương trình

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
function roi_tu_do
clc
close all
clear all

%% CONSTANTS
g = 9.81;

%% INPUT DATA
y = 50; % Do cao ban dau

%%
x = 0;
v = 0;
t = 0;
dt = 0.01;

s = 0;
t_array = t;
s_array = s;
v_array = abs(v);
a_array = g;

%% FIGURE
fig_vatroi = figure('name','Vat roi','color','white','numbertitle','off');
set(gcf,'Units','normalized');
set(gcf,'Position',[0 0.1 0.2 0.8]);
graph_quanang = plot(x,y,'ro','MarkerSize',20,'markerfacecolor','r');

xlabel('X [m]');
ylabel('Y [m]');

axis equal
axis([-10 10 -1 60]);

fig_quangduong = figure('name','Quang duong','color','white','numbertitle','off');
set(gcf,'Units','normalized');
set(gcf,'Position',[0.2 0.1 0.3 0.38]);
graph_quangduong = plot(t_array,s_array,'linewidth',2);
xlabel('Thoi gian [s]');
ylabel('Quang duong [m]');

fig_vantoc = figure('name','Van toc','color','white','numbertitle','off');
set(gcf,'Units','normalized');
set(gcf,'Position',[0.5 0.1 0.3 0.38]);
graph_vantoc = plot(t_array,v_array,'linewidth',2);
xlabel('Thoi gian [s]');
ylabel('Van toc [m/s]');

fig_giatoc = figure('name','Gia toc','color','white','numbertitle','off');
set(gcf,'Units','normalized');
set(gcf,'Position',[0.2 0.5 0.3 0.38]);
graph_giatoc = plot(t_array,a_array,'linewidth',2);
xlabel('Thoi gian [s]');
ylabel('Gia toc [m/s^2]');

%% CALCULATION
while y>0
t = t+dt;
t_array = [t_array t];

a = -g;
v = v+a*dt;
y = y+v*dt+0.5*a*dt.^2;

s_array = [s_array 50-y];
v_array = [v_array abs(v)];
a_array = [a_array abs(a)];

figure(fig_vatroi);
set(graph_quanang,'xdata',x,'ydata',y);
figure(fig_quangduong);
set(graph_quangduong,'xdata',t_array,'ydata',s_array);
figure(fig_vantoc);
set(graph_vantoc,'xdata',t_array,'ydata',v_array);
figure(fig_giatoc);
set(graph_giatoc,'xdata',t_array,'ydata',a_array);
pause(0.002);
end
end

set(graph_giatoc,'xdata',t_massiv,'ydata',a_array);

pause(0.002);
end
end