 
 
 
MODELOWANIE I SYMULACJA
Wyprowadzanie równań różniczkowych ruchu prostych układów mechanicznych
 
Zadanie 1. 
Wyprowadzić równanie różniczkowe opisujące ruch oscylatora harmonicznego wiedząc, że energia 
kinetyczna i potencjalna określone są wzorami  
2
2
1
1
,
2
2
E
mv
U
kx
gdzie m i k oznaczają odpowiednio masę oscylatora i współczynnik sprężystości.  
Rozwiązać otrzymane równanie dla dowolnych warunków początkowych. 
Zadanie 2.
Wyprowadzić równanie różniczkowe opisujące ruch wahadła matematycznego wiedząc, że energia 
kinetyczna i potencjalna określone są wzorami  
2
2
1
,
cos( )
2
E
ml
U
mgl
 
gdzie m oznacza masę, l – długość wahadła, g – przyspieszenie ziemskie. 
Rozwiązać otrzymane równanie dla dowolnych warunków początkowych. 
Zadanie 3.
Wyprowadzić równania różniczkowe opisujące ruch wahadła matematycznego zawieszonego na 
elastycznej lince wiedząc, że energia kinetyczna i potencjalna określone są wzorami 
2
2
2
2
2
1
2
1
2
x
y
E
m v
v
U
k
x
y
l
mgy
gdzie m oznacza masę, l – długość wahadła, g – przyspieszenie ziemskie, k – współczynnik 
sprężystości. 
 
 
 
 
Zadanie 4.
Wyprowadzić równania różniczkowe opisujące ruch wahadła matematycznego podwieszonego na 
oscylatorze wiedząc, że energia kinetyczna i potencjalna określone są wzorami 
2
2
2
2
1 1
2
1
1 2
2
2
2
1
2
2
1
1
2
cos(
)
2
2
1
cos(
)
2
E
m v
m v
v v l
x
l v
U
kx
m gl
x
gdzie m
1
oznacza masę oscylatora, m
2
– masę wahadła, l – długość wahadła, g – przyspieszenie
ziemskie, k – współczynnik sprężystości sprężyny. 
 
Wyznaczyć rozwiązanie układu równania za pomocą komendy dsolve z opcją numeric 
przyjmując następujące dane: m
1
= 1, m
2
= 0.1, g = 9.81, l = 0.1, k = 100 i warunki początkowe:
1
1
2
2
(0)
0.5 , (0)
0,
(0)
,
(0)
0.
3
x
l v
x
v
Dokonać animacji ruchu wahadła korzystając z komend
> X:=t->'rhs(roz(t)[2])';Y:=t->'rhs(roz(t)[4])'; 
> a1:=animate(pointplot,[[X(t),0],symbol=box,symbolsize=30], 
  t=0..5,frames=200,color=blue,color=red): 
> a2:=animate(pointplot,[[X(t)+l*sin(Y(t)),-l*cos(Y(t))], 
  symbol=circle,symbolsize=30],t=0..5,frames=200,color=blue, 
  color=red): 
> a3:=animate(plot,[[[X(t),0], 
  [X(t)+l*sin(Y(t)),-l*cos(Y(t))]]],t=0..5,axes=none, 
  scaling=constrained,thickness=2,frames=200): 
> display(a1,a2,a3);