home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
- Grawitacja V1.1
- Kielce 1993-09-05
-
-
-
- Autor :
- Grzegorz Malewicz - Thanatos/InvestatioN
-
-
-
- Podziëkowania dla :
- Nico François, Jan van den Baard,
- dr Zbigniewa Bema, Wojciecha Wronki
-
- Mój adres:
- ul. Alabastrowa 56 25705 POLAND
-
- Jeôli chcesz wykorzystaê którâô z procedur programu,
- lub dokonaê zmian w nim
- MUSISZ uzyskaê zgodë autora!!!
-
-
-
-
-
- SPIS TREÔCI:
-
- Linie
- 1. Wstëp 47 - 70
- 2. Czëôê teoretyczna 70 - 289
- 3. Opis programu 290 - 352
- 4. Tabela danych o planetach
- ukîadu sîonecznego 353 - 429
- 5. Uwagi koïcowe 430 - 445
-
-
-
-
-
-
-
- 1. WSTËP
-
-
-
-
- Program Grawitacja sîuûy do symulowania ruchu ukîadu ciaî
- niebieskich o zadanych masach i promieniach oraz poîoûeniach i prëdkoôciach
- poczâtkowych. Pomysî jego napisania zrodziî sië pod koniec 1991 roku.
- Pierwsza jego wersja powstaîa na poczâtku 1992 roku. Byîa ona napisana w
- Kick Pascalu na Amigë i wspólnie z opisem strony matematycznej stanowiîa
- pracë Grzegorza Malewicza i Wojciecha Wronki na I Miëdzyszkolne Warsztaty
- Matematyczne województwa kieleckiego w kwietniu 1992 roku. Dostrzegajâc
- wiele braków w pierwszej wersji programu Grzegorz Malewicz rozpoczâî pisanie
- nowej wersji zawierajâcej bardziej rozbudowany i przyjemniejszy w obsîudze
- interfejs uûytkownika. Owocem tej pracy jest niniejszy program.
-
-
-
-
-
-
-
-
- 2. CZËÔÊ TEORETYCZNA
-
-
-
-
- Jednym z wielu zastosowaï komputerów w nauce sâ symulacje ukîadów
- fizycznych. Takim ukîadem fizycznym sâ ciaîa niebieskie. Ukîad ciaî
- niebieskich bëdzie ewoluowaî pod wpîywem siî grawitacyjnych dziaîajâcych
- miëdzy nimi. Powstaje pytanie, jak bëdzie wyglâdaî ukîad ciaî po pewnym
- czasie? Odpowiedú na nie nie jest prosta. Ruch n ciaî opisuje ukîad n
- równaï róûniczkowych drugiego stopnia. Wspóîczesna matematyka nie zna
- ogólnego rozwiâzania dla takiego ukîadu. Moûliwe jest jednak rozwiâzanie
- ukîadu metodami przybliûonymi. Jedna z nich nosi nazwë rozwiâzania równaï
- róûniczkowych metodâ skoïczonego elementu.
-
- Jeôli znamy wartoôê funkcji f, jej pierwszej oraz drugiej pochodnej
- dla pewnego argumentu x, to metoda skoïczonego elementu pozwala w sposób
- przybliûony przewidzieê, jaka bëdzie wartoôê funkcji f(x+dx) i jej pochodnej
- f'(x+dx). Wartoôê przewidziana bëdzie tym dokîadniejsza, im dx bëdzie
- mniejsze.
-
- f(x+dx) = f(x) + f'(x)*dx
-
- f'(x+dx) = f'(x) + f''(x)*dx
-
- Dziëki tej metodzie nie moûna okreôliê funkcji f(x) w sposób ciâgîy,
- a jedynie obliczyê jej wartoôci dla pewnych argumentów, np.: x+dx, x+2dx,
- x+3dx, ... . Istnieje bardzej dokîadna metoda, korzystajâca we wzorze na
- f(x+dx) z drugiej pochodnej.
-
- f(x+dx) = f(x) + f'(x)*dx + f''(x)*dx²/2
-
- f'(x+dx) = f'(x) + f''(x)*dx
-
- Zmusza ona wprawdzie do wykonania dodatkowo kilku dziaîaï, ale daje wynik
- bardziej dokîadny.
-
- Warto zauwaûyê, ûe jeôli znamy jedynie f(x) i f'(x), to metoda
- skoïczonego elementu pozwala przewi dzieê wartoôci funkcji f i jej pochodnej
- f' dla kolejnych argumentów ( np. x+dx, x+2dx, x+3dx, ... ). Do
- obliczenia kolejnych wartoôci f i f' wszystkich wartoôci f'' od razu.
- Wartoôê drugiej pochodnej f''(x+ndx) wystarczy znaê dopiero, gdy chcemy
- wyznaczyê f(x+(n+1)dx) i f'(x+(n+1)dx). Spostrzeûenie bëdzie bardzo pomocne
- przy symulowaniu ruchu ciaî niebieskich.
-
- Symulowanie ruchu ciaî niebieskich polega na znajdowaniu ich poîoûeï
- w nastëpujâcych po sobie chwilach i obrazowaniu kolejnych stanów ukîadu w
- formie graficznej na ekranie komputera.
-
- Przypomnijmy sobie pewne fakty znane z nauki w szkole ôredniej:
-
- - prëdkoôê to pierwsza pochodna poîoûenia wzglëdem czasu,
- - przyspieszenie to druga pochodna poîoûenia wzglëdem czasu,
- - jeôli ciaîo o masie m porusza sië z pewnym przyspieszeniem, to dziaîa na
- nie wypadkowa siîa równa iloczynowi masy i przyspieszenia.
-
- Te trzy sformuîowania moûna w postaci wektorowej zapisaê nastëpujâco:
-
- -> ->
- P'(t) = V(t)
-
- -> ->
- P''(t) = a(t)
-
- -> ->
- F(t) = a(t)*m
-
- lub zgodnie z fizycznâ zasadâ niezaleûnoôci ruchów wzdîuû trzech osi w
- przestrzeni:
-
- Px'(t) = Vx(t)
- Py'(t) = Vy(t)
- Pz'(t) = Vz(t)
-
- Px''(t) = ax(t)
- Py''(t) = ay(t)
- Pz''(t) = az(t)
-
- Fx(t) = ax(t)*m
- Fy(t) = ay(t)*m
- Fz(t) = az(t)*m
-
- Widaê, ûe jeôli znalibyômy poczâtkowe poîoûenia i prëdkoôci ciaî oraz
- umielibyômy wyznaczyê wypadkowe siîy dziaîajâce na kaûde z nich w chwili t,
- to moglibyômy opierajâc sië na zasadzie skoïczonego elementu, wyznaczyê
- poîoûenia i prëdkoôci ciaî w chwili t+dt.
-
- Zastanówmy sië, jak wyznaczyê wypadkowe siîy dziaîajâce na ciaîa.
- Wiemy, ûe kaûde dwa ciaîa obdarzone masâ oddziaîywujâ miëdzy sobâ siîami
- grawitacyjnymi. Dlatego aby wyznaczyê wypadkowâ siîë dziaîajâcâ na dane
- ciaîo, naleûy zsumowaê siîy pochodzâce od wszystkich pozostaîych ciaî.
-
- Z lekcji fizyki wiemy, ûe wartoôê siîy grawitacyjnej wywieranej
- przez ciaîo b (bëdâce w punkcie B) na ciaîo a (bëdâce w punkcie A) jest
- równa:
-
- Ma * Mb
- F = G * ---------
- |AB|²
-
- lub w postaci wektorowej zawierajâcej takûe kierunek i zwrot tej siîy:
-
- ->
- -> Ma * Mb * AB
- F = G * --------------
- |AB|³
-
-
- gdzie G jest staîâ grawitacji równâ:
-
- m³
- G = 6,672 * 10-¹¹ --------
- kg * s²
-
- Ma i Mb to masy ciaî.
-
- ->
- Rozbijajâc F na skîadowe otrzymujemy:
-
- Ma * Mb * ABx
- Fx = G * --------------
- |ABx|³
-
- Ma * Mb * ABy
- Fy = G * --------------
- |ABy|³
-
- Ma * Mb * ABz
- Fz = G * --------------
- |ABz|³
-
- W ten sposób naleûy obliczyê siîy jakie dziaîajâ na dane ciaîo od kaûdego z
- pozostaîych ciaî, a nastëpnie zsumowaê te siîy wektorowo. W ten sposób
- otrzymujemy siîë wypadkowâ dziaîajâcâ na dane ciaîo. Naleûy przeprowadziê
- obliczenia wedîug powyûszego schematu dla kaûdego ciaîa, by w ten sposób
- wyznaczyê wypadkowe siîy dla kaûdego ciaîa. Naleûy zauwaûyê, ûe aby
- wyznaczyê siîy wypadkowe w pewnej chwili, trzeba znaê poîoûenia ciaî w tej
- wîaônie chwili.
-
- Zaîóûmy, ûe rozpoczynamy symulacjë w chwili t0 majâc ukîad
- skîadajâcy sië z k ciaî o masach m1..mk. Potrzebna jest nam znajomoôê
- poîoûeï ciaî w chwilach t1=t0+dt, t2=t0+2dt, t3=t0+3dt, ... , tn=t0+ndt.
- Znamy poîoûenia P1...Pk i prëdkoôci V1...Vk k ciaî w chwili t0. Na
- podstawie znajomoôci poîoûeï P1...Pk moûemy obliczyê siîy wypadkowe F1...Fk
- dziaîajâce na ciaîa w chwili t0. Korzystjâc z wczeôniej omówionych zwiâzków
- moûna obliczyê skîadowe poîoûeï i prëdkoôci w chwili t1 dla ciaî niebieskich
- naleûâcych ukîadu.
-
- dt²
- P1x(t1) = P1x(t0) + V1x(t0)*dt + F1x(t0)*----
- 2m
-
- dt²
- P1y(t1) = P1y(t0) + V1y(t0)*dt + F1y(t0)*----
- 2m
-
- dt²
- P1z(t1) = P1z(t0) + V1z(t0)*dt + F1z(t0)*----
- 2m
-
-
- dt
- V1x(t1) = V1x(t0) + F1x(t0)*----
- m
-
- dt
- V1y(t1) = V1y(t0) + F1y(t0)*----
- m
-
- dt
- V1z(t1) = V1z(t0) + F1z(t0)*----
- m
-
- .
- .
- .
-
-
- dt²
- Pkx(t1) = Pkx(t0) + Vkx(t0)*dt + Fkx(t0)*----
- 2m
-
- dt²
- Pky(t1) = Pky(t0) + Vky(t0)*dt + Fky(t0)*----
- 2m
-
- dt²
- Pkz(t1) = Pkz(t0) + Vkz(t0)*dt + Fkz(t0)*----
- 2m
-
-
- dt
- Vkx(t1) = Vkx(t0) + Fkx(t0)*----
- m
-
- dt
- Vky(t1) = Vky(t0) + Fky(t0)*----
- m
-
- dt
- Vkz(t1) = Vkz(t0) + Fkz(t0)*----
- m
-
-
- W powyûszy sposób otrzymujemy, na mocy metody skoïczonego elementu,
- poîoûenia P1...Pk i prëdkoôci V1...Vk dla chwili t1. Teraz wyznaczamy
- wypadkowe siîy grawitacyjne F1...Fk dziaîajâce na ciaîa na podstawie poîoûeï
- w chwili t1 i powtarzamy powyûszâ operacjë otrzymujâc P1...Pk i V1...Vk dla
- chwili t2. Postëpujemy tak aû do osiâgniëcia chwili tn. Co kaûdy krok
- naleûy tylko zobrazowaê stan uîadu na ekranie komputera. W ten sposób
- otrzymujemy symulacjë ruchu ciaî niebieskich.
-
-
-
-
-
-
-
-
- 3. OPIS PROGRAMU
-
- Na podstawie teorii zawartej w punkcie 2 zostaî napisany przeze mnie
- program w jëzyku SAS/C 6.00 na komputer AMIGA. Program dziaîa niestety
- jedynie pod systemem 2.0 i wyûszym. Zwiâzane jest to z zastosowanym
- interfejsem uûytkownika. Szczëôliwi posiadacze zozszerzenia SLOW (do 1MB)
- mogâ uûywaê programu po uprzednim wgraniu dyskowego Kickstart'u 2.0.
- Program wymaga biblioteki mathtrans.library (wersja dowolna) i
- reqtools.library (wersja 38+)
-
- W programie przyjëto nastëpujâce jednostki: czas podaje sië w
- latach, wszelkie odlegîoôci (np. wspólrzëdne, promienie) podaje sië w
- jednostkach astronomicznych (AU), prëdkoôci podaje sië w jednostkach
- astronomicznych na rok (AU/rok), masy podaje sië po wczeôniejszym
- podzieleniu przez 10e24 kg (np. jako masë Ziemi naleûy podaê 5.974 zamiast
- 5.974e24). Ôrodek ukîad wspóîrzëdnych znajduje sië w ôrodku ekranu, iksy
- rosnâ w prawo, igreki w góre, zety w gîâb. Ekran obejmuje kât okoîo 90° (z
- odlegîoôci 1AU widaê okoîo 2AU)
-
- Prawidîowo wgrany program zgîasza sië z komunikatem o autorze na
- nowo otworzonym screen'ie. Z prawej strony screen'a znajduje sië okno
- parametrów ukîadu. W nim okreôla sië jak dîugi okres czasu ma obejmowaê
- symulacja, w ilu klatkach ma byê stworzona animacja, w ilu krokach majâ byê
- przeprowadzone obliczenia (im wiëcej kroków tym animacja jest bardziej
- zbliûona do rzeczywistoôci, po wiëcej informacji patrz czëôê teoretyczna),
- poîoûenie obserwatora oraz punkt patrzenia.
-
- Aby przeprowadziê obliczenia, najpierw trzeba ustaliê parametry
- poczâtkowe ukîadu. W tym celu wybierz opcjë "Dodaj ciaîo" z menu "Ukîad".
- Nastëpnie wprowadú jego mase, promieï, poîoûenie poczâtkowe i prëdkoôê
- poczâtkowâ. W ten sposób ustal dane o nie wiëcej niû 20 ciaîach. Nastëpnie
- ustal czas symulacji, ile klatek ma zawieraê animacja oraz w ilu krokach
- majâ byê przeprowadzone obliczenia. Potem moûesz wybraê opcjë "Oblicz" z
- menu "Animacja". Po skoïczeniu obliczeï ustal w oknie "Parametry ukîadu"
- zarówno poîoûenie obserwatora jak i punkt patrzenia. Nastëpnie wybierz
- sposób prezentacji obliczonej animacji. Dokonaê tego moûna w menu
- "Animacja". Wybór obejmuje: ciaîa to punkty, ciaîa to koîa o promieniu
- zaleûnym od promienia danego i odlegîoôci od oka obserwatora, ciaîa to
- punkty zostawiajâce ôlad. Moûna takûe wybraê, czy multitasking ma byê
- wyîâczony podczas animowania (co zwiëksza szybkoôê animacji) czy teû
- wîâczony. Ostatnim krokiem jest obejrzenie animacji. W tym celu wybierz
- opcjë "Pokaû" menu "Animacja".
-
- Program umoûliwia zapisanie lub wczytanie zdefiniowanego ukîadu oraz
- animacji. W tym celu naleûy wybraê odpowiednie opcje menu "Ukîad" lub
- "Animacja".
-
- Obliczenia moûna przerwaê wciskajâc gadget "Stop". Po
- potwierdzeniu, program poinformuje ile klatek udaîo mu sië wygenerowaê.
- Klatki te moûna obejrzeê wybierajâc opcjë "Pokaû" z menu "Animacja". Na
- sygnaî o przerwaniu obliczeï program zereaguje dopiero przy zmianie stopnia
- zaawansowania obliczeï (tzn. gdy suwak zwiëkszy swoje wysuniëcie).
-
- Animacjë moûna przerwaê wciskajâc jednoczeônie lewy i prawy przycisk
- myszy.
-
-
-
-
-
-
-
-
- 4. TABELA DANYCH O PLANETACH UKÎADU SÎONECZNEGO
-
-
-
-
- Sîoïce :
- masa : 1989000 [ * 10e24 kg ]
- odlegîoôê od Sîoïca : - [ AU ]
- czas obiegu : - [ rok ]
- prëdkoôê : - [ AU/rok ]
-
- Merkury :
- masa : 0.33 [ * 10e24 kg ]
- odlegîoôê od Sîoïca : 0.387 [ AU ]
- czas obiegu : 0.240842 [ rok ]
- prëdkoôê : 10.09833 [ AU/rok ]
-
- Wenus :
- masa : 4.869 [ * 10e24 kg ]
- odlegîoôê od Sîoïca : 0.723 [ AU ]
- czas obiegu : 0.615187 [ rok ]
- prëdkoôê : 7.38758 [ AU/rok ]
-
- Ziemia :
- masa : 5.974 [ * 10e24 kg ]
- odlegîoôê od Sîoïca : 1 [ AU ]
- czas obiegu : 1 [ rok ]
- prëdkoôê : 6.28429 [ AU/rok ]
-
- Mars :
- masa : 0.626 [ * 10e24 kg ]
- odlegîoôê od Sîoïca : 1.524 [ AU ]
- czas obiegu : 1.88 [ rok ]
- prëdkoôê : 5.0903 [ AU/rok ]
-
- Jowisz :
- masa : 1899.075 [ * 10e24 kg ]
- odlegîoôê od Sîoïca : 5.203 [ AU ]
- czas obiegu : 11.86 [ rok ]
- prëdkoôê : 2.75504 [ AU/rok ]
-
- Saturn :
- masa : 568.546 [ * 10e24 kg ]
- odlegîoôê od Sîoïca : 9.539 [ AU ]
- czas obiegu : 29.46 [ rok ]
- prëdkoôê : 2.0357 [ AU/rok ]
-
- Uran :
- masa : 86.862 [ * 10e24 kg ]
- odlegîoôê od Sîoïca : 19.182 [ AU ]
- czas obiegu : 84.01 [ rok ]
- prëdkoôê : 1.43448 [ AU/rok ]
-
- Neptun :
- masa : 102.992 [ * 10e24 kg ]
- odlegîoôê od Sîoïca : 30.058 [ AU ]
- czas obiegu : 164.79 [ rok ]
- prëdkoôê : 1.14548 [ AU/rok ]
-
- Pluton :
- masa : 0.012 [ * 10e24 kg ]
- odlegîoôê od Sîoïca : 39.293 [ AU ]
- czas obiegu : 246,31 [ rok ]
- prëdkoôê : 1.00203 [ AU/rok ]
-
- Podane prëdkoôci obiegu i odlegîoôci sâ wartoôciami ôrednimi.
- Powyûszâ tabelë sporzâdziîem na podstawie tabel ze strony 383 "Niebo na
- dîoni", Eduard Pittich i Dusan Kalmancok, PW "Wiedza Powszechna", Warszawa
- 1990
-
-
-
-
-
-
-
-
- 5. UWAGI KOÏCOWE
-
-
-
-
- Autor skîada serdeczne podziëkowania:
- Nico François - za reqtools.library,
- Jan van den Baard - za GadToolBox,
- dr Zbigniewowi Bemowi - za pomoc naukowâ,
- Wojciechowi Wronce - za pomoc.
-
- Byîbym bardzo wdziëczny za wszelkie uwagi odnoônie tego programu.
- Kaûda zu nich zostanie rozwaûona przy powstawaniu kolejnych, doskonalszych
- wersji proramu. Proszë pisaê na mój adres umieszczony na poczâtku tego
- tekstu.
-