Zagadnienie dwóch ciał Zagadnienie jednego ciała

Transkrypt

Zagadnienie dwóch ciał Zagadnienie jednego ciała
Zagadnienie dwóch ciał
Zagadnienie to dotyczy opisu ruchu dwóch ciał niebieskich we wzajemnie wytwarzanym polu
grawitacyjnym. Typowym przykładem może być ruch planety wokół Słońca, gdy zaniedbamy wpływ
pozostałych planet . Okazuje się, że zadanie to można sprowadzić do następującego opisu:
1) Ruch odbywa się w jednej płaszczyźnie.
2) Jedno ciało znajduje się w środku układu odniesienia a drugie krąży wokół niego pod
wpływem siły grawitacyjnej wytwarzanej przez ciało pierwsze.
Tak zredukowany opis jest przykładem zagadnienia jednego ciała w centralnym polu grawitacyjnym.
Przejście od zagadnienia dwóch ciał do zagadnienia jednego ciała zostanie omówione dalej. Teraz
skoncentrujemy się na zredukowanym problemie.
Zagadnienie jednego ciała
Jeżeli w środku układu odniesienia znajduje się nieruchoma kula o gęstości masy zależnej tylko od
promienia (np. stała gęstość) to siła grawitacji wywierana na inne ciało kuliste o masie m wynosi
Fgraw  G
Mm
rˆ,
r2
(1.1)
gdzie M  masa kuli w środku układu, r̂  wektor jednostkowy (wersor) leżący na prostej łączącej
środki obu ciał. Tak więc ruch ciała m w polu ciała M umieszczonego w środku układu jest opisany
równaniem
ma  G
Mm
rˆ,
r2
(1.2)
M
rˆ,
r2
(1.3)
co po podzieleniu obu stron przez m daje
a  G
Uwzględniając, że
r (t )  [ x(t ), y (t )],  (t )  [ x(t ), y(t )], a (t )  [ x(t ), y(t )],
r
r 2  x 2  y 2 , rˆ   [ x / x 2  y 2 , y / x 2  y 2 ],
r
możemy układ (1.2) opisujący ruch planetu zapisać tak
x
 d x
,
 dt  ax  GM 2
2 3/ 2
x

y




y
 d y  a  GM
.
y
2
2 3/ 2
 dt
x  y 

(1.4)
Układ (1.4) możemy teraz rozwiązywać numerycznie różnymi metodami. Poniżej zaprezentowane
jest wykorzystanie prostej metody Eulera oraz metody Verleta.
Metoda Eulera
Jak pamiętamy podstawą jest następujący kroki
v (t  t )   (t )  a (t )t
r (t  t )  r (t )   (t )t
(1.5)
t  t  t
wykonywane w pętli. Zatem procedurę symulacji położenia możemy zapisać następująco:
Inicjalizacja
x  x0 , y  y0 , x  x 0 ,  y   y 0 , t  0.
Pętla
while (t  T ){
 x new   x  dt  (GM ) x /( x 2  y 2 )3/ 2 ;
 y new   y  dt  (GM ) y /( x 2  y 2 )3/ 2 ;
xnew  x   x dt ; ynew  y   y dt ;
plot ( xnew, ynew);
x  xnew; y  ynew; x   x new, y   y new;
t  t  dt ;
}
Metoda Verleta
Schemat obliczeniowy w tej metodzie jest następujący:
1) oblicz r (t  t )  r (t )   (t )t 
2) oblicz  (t  t / 2)   (t ) 
1
a (t )(t ) 2 ,
2
1
a (t )t ,
2
3) oblicz a (t  t ) ze wzoru na siłę (1.4),
4) oblicz  (t  t )   (t  t / 2) 
1
a (t  t )t.
2
Realizacja w języku C++ tego schematu dla problemu pojedynczego ciała może mieć następującą
postać:
double M, G, r, x, y, vx, vy, vx05, vy05, xnew, ynew, vxnew, vynew, t, dt;
int k;
M = G = 1;
x = 2; y = 0; vx = 0; vy = 0.5;
t = 0; dt = 0.001;
k = 1;
while (t < 10) {
r = pow(x*x+y*y, 1.5);
xnew = x + vx*dt + 0.5*dt*dt*(-G*M)*x/r;
ynew = y + vy*dt + 0.5*dt*dt*(-G*M)*y/r;
vx05 = vx + 0.5*dt*(-G*M)*x/r;
vy05 = vy + 0.5*dt*(-G*M)*y/r;
vxnew = vx05 + 0.5*dt*(-G*M)*xnew/r;
vynew = vy05 + 0.5*dt*(-G*M)*ynew/r;
cout << xnew << ", " << ynew << "\n"; k = 1;
x = xnew; y = ynew; vx = vxnew; vy = vynew;
t = t + dt;
k = k + 1;
}
Ćwiczenie
Przetestować oba schematy dla następujących danych. W obu przypadkach: t  0, T  10.
1) GM  1, x(0)  2, y(0)  0, vx (0)  0, vy (0)  0.5 oraz dla różnych dt , na przykład
dt  0.001, dt  0.01, dt  0.1.
2) Jak w punkcie 1) ale z jedną różnicą: vy (0)  1.25. Czy jest jakaś istotna różnica teraz, gdy
porównamy wyniki z punktu 1)? Jeżeli tak, to dlaczego?
Redukcja zagadnienia dwóch ciał do problemu jednego ciała
Powyżej przedstawiliśmy jak opisywać numerycznie ruch punktu materialnego (lub ciała kulistego o
gęstości zależnej tylko od promienia) w centralnym polu grawitacyjnym. W zasadzie taki opis
wystarczy do zadowalającej symulacji wzajemnego ruchu dwóch ciał, z których jedno jest znacznie
cięższe od drugiego. Sytuacja taka występuje na przykład dla układu Słońce-Ziemia czy w mniejszym
stopniu dla układu Ziemia-Księżyc1.
Mamy zatem dwie kule o masach m1 i m2 , których położenia (wektory wodzące) oznaczymy przez r1
i r2 . Zapisujemy teraz równanie ruchu dla każdego ciała
m1r1 m1a1  F1 ,
m2 r2  m2 a2  F2 ,
(1.6)
Na mocy III zasady dynamiki wektory F1 , F2 są przeciwnie skierowane, tj. F2   F1 , więc dodając
stronami powyższe równania otrzymamy
m1a1  m2 a2  0.
Jeżeli wprowadzimy wektor środka masy
1
Dla układu Słońce-Ziemia stosunek mas wynosi
Ziemia-Księżyc
M Z / M K  0.0123.
M S / M Z  1/ 332900  0.000003004, a dla układu
(1.7)
rc :
m1r1  m2 r2
,
m1  m2
(1.8)
to z równania (1.7) mamy
rc 
m1r1 m2 r2 m1a1  m2 a2

 0.
m1  m2
m1  m2
Tak więc środek masy układu porusza się ruchem jednostajnym prostoliniowym
rc (t )  rc,0  ct ,
(1.9)
gdzie rc ,0  położenie początkowe środka masy, c  prędkość środka masy. Z równania (1.9) wynika,
że położenie środka masy jest znane.
Z równań (1.6) mamy
r1
1
1
F1 , r2 
F2 ,
m1
m2
co po odjęciu i skorzystaniu ponownie z III zasady dynamiki ( F2   F1 ) otrzymamy
 1
1 
r1 r2   
 F1.
 m1 m2 
Wprowadzając wektor r  r1  r2 mamy
 1
1 
r    
 F1.
 m1 m2 
Siła zależy od odległości pomiędzy masami, więc można ją zapisać następująco
F1  G
m1m2
rˆ,
r2
co daje następujące równanie
r   G
m1  m2
rˆ,
r2

Podobne dokumenty