tumblr series of tubes:

>>

« berlynas | Main | vasara mieste »

Abril 27, 2012

uždavinys

kadangi erdvinis, tai parkė, nesutikau su abiem vadovais, tad kviečiu pasiimti į rankas monetą, spręsti sukiojant ir padėti stumti į priekį mokslą.

įsivaizduokite, kad moneta yra apvali, be galo plona galaktika kosmose. dabar įsivaizduokite daug tokių galaktikų, randomiškai pasiskirsčiusių erdvėje.

kai stebime tokias galaktikas, jas matome įvairiomis projekcijomis. jei galaktika apvali, galime matyti ją kaip blyną, kaip elipsę arba šonu -- tad galime užrašyti posvyrio kampą kaip galaktikos trumpiausios ir ilgiausios ašies funkciją, kosinusą:

cos(i) = b/a, kur b -- trumpoji ašis, o a -- ilgesnioji (nežinau, kaip dorai lietuviškai išsireikšti). ašis, ta prasme, yra spindulys, nors nesvarbu, gali būti ir diametras.

mane domina, koks bus a/b pasiskirstymas daugeliui randominių galaktikų. pirmas atsakymas būtų 'randomiškai', t.y. atsitiktinai tarp 1 ir 0.

kabliukas yra tai, kad mūsų galaktikos yra trimatėje erdvėje ir atsitiktinai orientuotos trimatėje koordinačių sistemoje. vienas kampas mums nesvarbus, nes tai tik sukimasis (ar ilgoji galaktikos ašis rodo į šiaurę, ar į rytus, šiuo atveju vienodai). tačiau galaktika gali sukiotis likusiomis dviem kryptimis, ir, jei dabar pradėtumėte vartyti monetą, pamatytumėte, kad ašių santykis kinta abiem atvejais, t.y. jis dabar priklauso nuo dviejų atskirų atsitiktinių kintamųjų.

mano naktinė idėja buvo tai, kad ašių santykį turime apibrėžti kaip dviejų galimai projektuotų ašių santykį. šiuo atveju kiekviena iš jų priklauso nuo atskiro atsitiktinio kintamojo (kampo) taip:

a' = a cos(i)
b' = a cos(j)

čia i,j -- kampai tarp 0 ir 90 laipsnių, a', b' -- ašių projekcijos (a = b, juk moneta apvali.)

jeigu abu kampai kinta atsitiktinai, ir ašių santykį apibrėžiame kaip trumpesnę ašį, padalintą iš ilgesnės, didelio skaičiaus galaktikų atveju jie bus pasiskirstę tolygiai. bet jei bandome išsiaiškinti, kokiu kampu pasvirusi galaktika atlikdami deprojekciją (i = arccos(b/a)), pasiskirstymas kitoks, n= 10000:

inclinations_sim.png

inclinations_ang.png

pythono kodas čia ir čia.

kur aš klystu? trigonometrijoj? ar kintamieji išsigimę ir tai visai ne dviejų kintamųjų funkcija? ar klaida kode? man davė algą, tad einu alaus ir parinti sugėrovų.


Posted by kpmg at Abril 27, 2012 5:10 PM kaip.tik.ten

Comments

Jeigu teisingai suprantu, kad pradiniai atsitiktiniai kintamieji yra uniformiškai parinkti du Oilerio kampai (http://en.wikipedia.org/wiki/Euler_angle) ir trečiąjį atmetam nes jo ašis statmena projekcijos plokštumai, taigi tarp dviejų likusių posukio ašių yra 90 laipsnių kampas. Pavadinkime tas ašis atitinkamai Ox ir Oy, o jų susikirtimo centra paprastumo dėlei sutapatinkime su disko centru. Tada norint rasti disko projekcijos ašių santykį neužtenka paimti tų dviejų kampų kosinusų santykį, kaip daroma axis_ratios.py:11.

Įsivaizduok atvejį, kai abu kampai yra pi/4 (45 laipsniai). Tada mes diską per aštuntadalį posukio pasukam apie Ox ir jo projekcijoje ilgoji ašis yra lygiagreti Ox, o trumpoji Oy. Jų santykis yra 1/sqrt(2) (cos pi/4). Dabar pritaikykime antrajį kampą ir pasukime diską apie Oy tiek pat. Po šito ilgoji projekcijos ašis jau nebesutampa nei su Oy, nei su Ox, o yra pasisukusi -pi/4 kampu apie Oz. Apie ilgosios ir trumposios ašių santykį irgi iš pirmo žvilgsnio nieko negalime pasakyti, bet jis tikrai nėra cos(pi/4)/cos(pi/4) = 1.

Vienaip ar kitaip, uždavinio rezultatas smarkiai priklausys nuo to, kokie yra pradiniai atstitiktiniai kintamieji ir jų pasiskirstymas, pvz., jei vietoje dviejų Oilerio kampų paimsim tik vieną uniforminį, tai rezultatas ir bus to paties kampo kosinusas. Aprašyti ir atsitiktinai parinkti posūkius trimatėje erdvėje yra be galo daug būdų.

Posted by: nightshade at Abril 27, 2012 9:49 PM

Dėkui! kažką tokio ir nujaučiau, tik visą vakarą negaliu matematiškai išreikšti: ašys (pusašės) nėra fiksuotos, tai projekcijų minimumai bei maksimumai. todėl mano formulė neteisinga -- antrasis kampas nėra susijęs su pirmuoju, tačiau pusašės kryptis yra.

mano argumentas yra toks, kad posvyrių pasiskirstymas negali būti plokščias tarp 0 ir 90, nes pilvu atsisukusią (ašių santykis = 1) galaktiką gausi tik vienu atveju, kai abu kampai lygūs ir lygūs 0, o pasvirusią galaktiką pagaminti žymiai paprasčiau.

dabar klausimas: jei pasuki monetą 45 deg pagal vieną ašį ir 45 deg pagal kitą, koks ašių santykis ir kam lygus projekcijoje stebimas kampas?

kita vertus, tiesa kažkur netoli (ir, berods, ne pas vadovus ,))

http://articles.adsabs.harvard.edu/cgi-bin/t2png?bg=%23FFFFFF&/seri/PASP./0100/600/0000345.000&db_key=AST&bits=4&res=100&filetype=.gif

Posted by: opit at Abril 27, 2012 10:15 PM

Visai sudominai uždaviniu, tai kind of išsprendžiau. Galutinės formulės ilgos ir negražios, taigi nekopipeistinsiu jų, o tiesiog duosiu worksheetą su išvedimu: http://wemakethings.net/kita/galaktika.wxm . Atsidaryk šią bylą su wxMaxima (http://andrejv.github.com/wxmaxima/). Ten gale taip pat yra projekcijos grafikas su konkrečiais kampais.

Be matricų Rx ir Ry, kurios atlieka posūkį apie atitinkamas ašis čia taip pat galima įdėti ir kitų transformacijų.

Naudodamas tas a ir b formules dabar gali pasirašyti programėlę, kuri randa jų santykio tankio funkciją.

Posted by: nightshade at Abril 28, 2012 10:18 AM

ačiū labai -- iš tikrųjų, reikia naudotis transformacijų matricomis. tada galima išsireikšti funkciškai.

tačiau manau, kad kažkur sprendime yra klaida -- a negali būti didesnis už vienetą (Euklido erdvėje projekcijos ašis negali pailgėti, gali tik sutrumpėti). panašiai programa negali suskaičiuoti a ir b, kai alpha = beta = 0 arba alpha = beta = pi/2.
posvyrio pasiskirstymas šiuo atveju būtų toks:

http://blog.hardcore.lt/opit/inclinations.png

http://blog.hardcore.lt/opit/nightshade.py

Posted by: opit at Abril 28, 2012 12:34 PM

Tu teisus, sudarant keitinį reikėjo imti atvirkštinę transformaciją. Figūra tik sumažėja. Pataisiau bylą ir įdėjau į tą patį adresą.

Kai vienas kampų būna pi/2, tai elipsė išsigimsta į tiesę ir a, b tampa neapibrėžti, o kai abu 0, tai į apskritimą ir ašys tampa neapibrėžtos, taigi brėžinys neveikia. Tačiau b/a vistiek galima apibrėžti kaip atitinkamai 0 ir 1.

Anyway, negarantuoju kad čia viskas teisingai, bet gal bus kažkas naudingo.

Posted by: nightshade at Abril 28, 2012 3:26 PM

Post a comment




Remember Me?