Planeetan kiertoradan laskeminen...

Seuraa 
Viestejä45973
Liittynyt3.9.2015

Eli nyt jo hieman pidemmän aikaa olen miettinyt, miten voidaan luoda laskemalla tähti ja sitä kiertävät planeetat. Eli kaavoja etsiskelen tähän tarkoitukseen. Näiden avulla pitäisi saada laskettua melkeinpä kaikki mahdollinen ja mielellään niin, että siihen voi sijoittaa muuttujien tilalle tietoja, vaikkapa kuinka monta planeettaa kyseisessä järjestelmässä on. Tässä myös asteroidivyöhykkeet ja vastaavat pitäisi huomioida. Myös näiden ratojen kulmat jne... Myös olisi hyvä tietää, miten suurelle etäisyydelle asti tähti voi pitää planeettoja hallinnassa, etteivät ne karkaa jne...

Eli aika vaikea kysymys, mutta toivon, että joku voisi tähän vastata, sillä omalla ymmärrykselläni en vain löytänyt vastauksia tähän. Keplerin lait löysin ja sain vain käsityksen, että radat ovat ellipsejä, sekä tähti sijaitsee ellipsin toisessa polttopisteessä.

Kommentit (11)

bosoni
Seuraa 
Viestejä2704
Liittynyt16.3.2005

Ei tuollaiseen löydy suoraan valmiita kaavoja. Googleta "kolmen kappaleen ongelma", niin pääset jyvälle kuinka hankalaa sellaisten kaavojen luominen olisi.

Yhden tähden ja planeettojen, joiden vuorovaikutus oletetaan häviävän pieneksi, yhtälöt on helpohko muotoilla.

Tuollaisia monen kappaleen ongelmia lähestytään tietokonesimulaatioilla. Yksinkertainen simulaatio, jossa oletetaan pienellä aikavälillä kiihtyvyys vakioksi on helppo kirjoittaa. (liikkeelle voi lähteä yhtälöstä F = ma, ja kun a tunnetaan ja alkunopeus ja paikka tunnetaan, niin seuraava nopeus ja paikka ratkeaa) Tein joskus huvikseni muutaman planeetan järjestelmän koneelleni ja kokeilin erilaisia lähes törmääviä ratoja. Aika villiä menoa sen kevyemmän planeetan tai satelliitin kannalta.

Tuo menetelmä on vaan koneelle aika raskas, jos vuorovaikutukset ovat suuria ja tarkkuuden nimissä aikaväli pitää laittaa pieneksi.

Kehittyneemmistä simulaatiomenetelmistä löytynee tietoa jostain.

Jos sorruin (taas) virheeseen, niin tukka varmaan vain oli silmillä, kuten kuva osoittaa...

Vierailija

Jo asia kovasti kiinnostaa, niin seuraavan herran tuotantoon on pakko tutustua: Jean Meeus: Astronomical Algorithms

http://www.willbell.com/MATH/mc1.htm

Tuo on tuossa kirjan muodossa, ja löytyy varmaan isoimmista kirjastoista. Netissä on myös paljon materiaalia oman aurinkokuntamme laskuja varten ja se lienee paras paikka aloittaa [Ei netti vaan oma Aurinkokuntamme].

Hakusanoja, joilla hakea löytyy tuolta äskeiseltä sivulta. Meeuksen kirjassa on esitetty step by step -menetelmällä planeettaohjelman rakentaminen.

Oman järjestelmän rakennustarpeiksi tuosta on ainakin hyvä apu.

Edit: Hakasulkeissa oleva teksti lisätty.

galilei
Seuraa 
Viestejä106
Liittynyt18.6.2007

Kattava vastaus olisi supertietokonemallinnus. Ilman sitä on käytännössä mahdotonta saada kaikkia yksityiskohtia toimimaan niin kuin ne "oikeasti" toimii. Esimerkiksi asteroidivyöhykkeen käyttäytyminen on erittäin mutkikasta, koska häiriöitä eivät aiheuta ainoastaan planeetat, vaan myös toiset asteroidit. Tällöin päädytään väistämättä divergoivaan sarjaan, joka ei ollenkaan vastaa mitään "kaavaa". Tarvittavat differentiaaliyhtälöt on toki kirjoitettavissa ja ratkaistavissa numeerisesti, mutta niidenkin tarkkuus ja toimivuus vaihtelee.

Jos taas keskityy pelkästään planeettojen liikkeeseen, niin Keplerin lait antavat pitkälti pohjan niiden käyttäytymiselle. Planeettakunnan approksimaatiossa voidaan myös käyttää kahden kappaleen ongelman ratkaisussa saatavia yhtälöitä. Edelleen niistä saatavat integraalit voidaan muuntaa nk. rataelementeiksi ja jos kyseessä on planeettakunta, voidaan rataelementeille laskea approksimaationa ns. oskuloivat rataelementit, joista paikat ovat kullekin ajanhetkeklle laskettavissa. Kuitenkin tällöinkin vastassa on transsendenttinen Keplerin yhtälö, joka johtaa sarjaratkaisuun, ei niinkään lausekkeisiin. Kuitenkin, noista elementeistä, tai integraaleista, on laskettavissa kaikki rataan liittyvä tieto kahden kappaleen ongelmassa.

Periaatteessa tähti voisi pitää hallinnassaan kappaleita äärettömän kauas, mutta käytännössä tämä on mahdotonta, koska avaruudessa on toisia kappaleita. Olennaista sen kannalta, miten tähti, tai massa ylipäätään, vaikuttaa toiseen kappaleeseen riippuu kappaleiden massasta ja liikkeestä toistensa suhteen. Joitain teoreettisia (ja ohjeellisia) arvoja on määritetty (esim. Rochen raja ja Hillin raja), mutta ne ovat lähinnä teoreettisia. Kahden kappaleen systeemissä voidaan myös määrittää pakonopeudelle yksinkertaisempi kaava.

Yleisesti kahden kappaleen järjestelmässä radat voivat olla mitä tahansa kartioleikkauksia, joiden (toisessa) polttopisteessa on tähti.

// Meeuksen kirja on kyllä rautaa ja ehdottoman selkeä teos tuollaisiin puuhiin. ^^

Me iudice

Vierailija

Kiitoksia tiedoista, tässä ei mitään graafista kuvaaja olla piirtelemässä, vaan tekemällä päätteessä toimivaa ohjelmaa (resursseina kaksi konetta (+ yksi tuleva) , jotka linkattu yhteen 1,8Ghz x2 prosessori + 500Mhz prosessori + 1 tuleva 3Ghz x4 prosessori, tähän voin saada vielä muutaman koneen laskentatehot jos haluan... mutta nuo koneet itse omistan tai tulen omistamaan...) jonka avulla pyrin tekemään oudon ohjelman, eli ohjelman, jossa ohjataan omaa siirtokuntaa (ei mikään hyperkehittynyt, vaan täytyy käyttää hyödyksi myös planeettojen painovoimakenttiä mm.) Tämä tietenkin tekee tästä raskasta ja vaikeata toteuttaa, mutta uskon saavani tämän joskus valmiiksi, kunhan vain tutustun kunnolla aiheeseen.

Tuo kirja taitaa tulla joko kaukolainaukseen (jos ei ole liian kallis, eräskin kirja oli kalliimpi kaukolainattuna, kuin ostettuna...) tai ostettuna itselleni. Taidanpa myös googlettaa lisää tietoa ja muutes, mitä näiden ratojen kulmat vaikuttavat tähän järjestelmään, sillä sitä nyt en osaa ajatella yhtään... no ehkäpä olen nyt vain väsynyt, no katsotaanpa huomenna

Kaikki lisätieto on vieläkin plussaa, taidanpa kirjoittaa tästä projektistani ehkä blogia, kunhan saan ensinnä lähdemateriaalia.

PS: Miten kuut vaikuttavat tähän järjestelmään...

Neutroni
Seuraa 
Viestejä26854
Liittynyt16.3.2005

Eli tietokonepeliä värkkäilet. Sellaiseen tarkoitukseen ei kannata laskea planeettojen ratoja liikeyhtälöitä integroimalla, koska jossain vaiheessa se menee pieleen. Joskus kokeilin simuloida Aurinkokuntaa neljännen kertaluokan perus Runge-Kuttalla JPL:n Horizon-ohjelman antamilla alkuarvoilla, ja kyllä se muutaman sata vuotta pysyi muutaman promillen haarukassa. Minulla oli siis planeetat, Maa ja Kuu. Sitten virhe karkaa aika nopeasti hanskasta.

Mutta, tuo on raskasta ja jos haluat systeemiisi Kuita astroideista puhumattakaan, aina raskaammaksi käy. Käytä ennemmin normaaleja rataelementtejä, anna niiden arvot satunnaislukugeneraattorilla (järkevissä rajoissa tietenkin), ja laske planeettojen ja kuiden sijainnin standardimenetelmillä. Löydät laskukaavat esimerkiksi H. Karttusen kirjasta Tähtitieteen perusteet. Siten radat pysyvät oikeina vaikka vuosituhansia.

Avaruusalusten liikkeen voit simuloida Eulerin tai mieluumin Runge-Kuttan menetelmällä. Asteroidit menevät samoin, tai sitten rataparametreillä, riippuen haluatko niiden liikkuvan aina tietyillä radoilla vai mahdollisesti häiriintyvän planeetoista ja törmäävän. Suuri määrä asteroideja on kyllä aika raskas laskea liikeyhtälöistä.

Neutroni
Seuraa 
Viestejä26854
Liittynyt16.3.2005

Aloittelin joskus OpenGL:ää käyttävää peliä, jossa lenneltiin kuvitteellisessa aurinkokunnassa. Se jäi kesken, mutta lentodynamiikka toimi kyllä. Jos haluat, voin antaa sorsat.

Vierailija

no tässä nopeudella ei ole väliä, sillä teen tästä vain itselleni toimivaa peliä/ohjelmaa. Tässä tarkoituksena on vain opetella laskemaan ja tämä peliosa tässä vian on lisää, jonka teen vasta myöhemmin, kun muu toimii. Ei se haittaa, vaikka 1vk muutoksen laskemiseen menisi vaikka se 10 min, sillä tästä tulee ns. taustalla toimiva systeemi, jota aina välillä käyttelen. Eli todenmukaisuuteen tässä panostan ja pyrinkin oppimaan jotain itsekin tässä.

Laitoin hommaukseen muutamia kirjoja, joiden avulla ajattelin saada tämän alkuun, joten ensi viikon keskiviikolla saan ne käsiini ja pystyn aloittamaan projektin materiaalin tutkimisen, eli parisen viikkoa kestää, ennen kuin pystyn aloittelemaan tämän teon, sillä kirjoista pitää opiskella nämä asiat...

Vierailija

Tässä olisi lisää kirjoja luettavaksi:

Brian Aldiss Helliconia trilogia.

Helliconian kevät (Helliconia Spring, 1982)
Helliconian kesä (Helliconia Summer, 1983)
Helliconian talvi (Helliconia Winter, 1985)

Noista saat varmaan lisävihjeita ja ideoita planeettajärjetelmäsi rakenteluun.

Planeetta, jossa tuon kirjan maailmassa asutaan kuuluu kaksoisaurinkojärjestelmään, jossa planeetta kiertää pienempää aurinkoa, joka taas kiertää isompaa aurinkoa. Kaiken kruunuksi radat ovat hyvin elliptiset. Mielenkiintoinen. Suosittelen.

Vierailija

Kiitoksia kirjavinkistä ja niitä löytyi peräti kylän kirjastosta, eli lainaanpa ne maanantaina ja luen ennen, kuin kaukolainat saapuvat...

Neutroni
Seuraa 
Viestejä26854
Liittynyt16.3.2005
lukutoukka
no tässä nopeudella ei ole väliä, sillä teen tästä vain itselleni toimivaa peliä/ohjelmaa. Tässä tarkoituksena on vain opetella laskemaan ja tämä peliosa tässä vian on lisää, jonka teen vasta myöhemmin, kun muu toimii. Ei se haittaa, vaikka 1vk muutoksen laskemiseen menisi vaikka se 10 min, sillä tästä tulee ns. taustalla toimiva systeemi, jota aina välillä käyttelen. Eli todenmukaisuuteen tässä panostan ja pyrinkin oppimaan jotain itsekin tässä.



No, perhedy sitten Runge-Kutta-menetelmään. Kuten jo sanoin, se toimii ihan kohtuullisen hyvin muutamia satoja vuosia. Sen jälkeen tarvitset jo ammattikirjallisuutta parempaan pääsemiseksi. Samoin jos haluat simuloida pitkän ajan tilastollista kehitystä, esimerkiksi Aurinkokunnan syntymistä pölypilvestä.

Tuosta nopeudesta sen verran, että kyllä sillä nopeudella on väliä. Pelissä mainitsemasi nopeus on täysin sietämätön. Avaruusmatkat planeettojen välillä kestävät vuosia, ja jotta peli pysyisi mielekkäänä, silloin tarvitaan ajan nopeustustoimintoa, jopa miljoonakertaiseksi reaaliajasta. Vaikka ohjelma laskee minuutissa vuoden peliaikaa, Neptunukseen saapumisen odottelu käy silti tylsäksi.

Simulaatiossa ei välttämättä ole niin kiire kuin pelissä, mutta ei sitäkään montaa päivää jaksa odotella, jos asialla ei ole ammatillista mielenkiintoa. Esimerkiksi Aurinkokunnassamme Neptunus kiertää kierroksen noin 160 vuodessa. Mainitsemallasi nopeudella ratakierros kestäisi vajaat pari kuukautta.

Laitoin hommaukseen muutamia kirjoja, joiden avulla ajattelin saada tämän alkuun, joten ensi viikon keskiviikolla saan ne käsiini ja pystyn aloittamaan projektin materiaalin tutkimisen, eli parisen viikkoa kestää, ennen kuin pystyn aloittelemaan tämän teon, sillä kirjoista pitää opiskella nämä asiat...



Mikä on lähtötasosi matematiikassa? Onko differentiaaliyhtälöiden numeerisen ratkaisun perusteet hanskassa? Tai edes usean muuttujan funktioiden tai vektoreiden derivointi? Jos on, tsekkaa nämä ohimennen, niin ei tarvitse viikkoja odotella:
http://fi.wikipedia.org/wiki/Runge-Kutt ... elm%C3%A4t
http://www.nrbook.com/a/bookcpdf.php
Muuten kannattanee aloittaa integraali- ja differentiaalilaskennan perusteista. Adamsin Calculus oli lukiopohjaltakin ihan kohtuullisen lähestyttävä opus, jos paikkakunnallasi on yliopistokirjasto, käypä piruuttasi tsekkaamassa se.

Nuo toimivat yhtä hyvin vektoreilla, tarvitset vektorit joissa on kolme nopeus- ja kolme sijaintikoordinaattia per kappale. Jos teet paljon asteroideja, kuita, ym. kevyttä sälää, kannattaa tehdä jonkinlainen hierarkkinen systeemi, jossa planeettojen väliset vuorovaikutukset lasketaan kunkin planeetan ja kuiden yhteistä massaa ja painopistettä käyttäen, asteroidit eivät vaikuta planeettoihin ollenkaan jne. Monen kappaleen keskinäisen systeemin ajankulutus skaalautuu ilman kikkailuja ohjelmoituna suhteessa kappaleiden määrän neliöön, mikä on sietämätontä, jos haluat tuhat asteroidia aurinkokuntaasi ja lasket kaiken brute forcella.

Koodisi testaamiseen sopivaa materiaalia saat JPL:n Horizons -palvelulta. Sieltä löytyy mm. planeettojen massat (tai MG-tulot) ja niiden sijainnit ja nopeudet haluamallsi ajanhetkellä. Jos systeemisi ennustaa Aurinkokunnan oikein, se ennustanee mielivaltaisetkin systeemit.

Uusimmat

Suosituimmat