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