background image

 

 

 
 

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. 
 
 
 

background image

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);