stala grawitacyjna - jak to ugryzc

0

Mam pytanko dla fizykow. Z gory przepraszam za malo naukowy
jezyk jednak fizykiem nie jestem :) Kilka dni temu przez przypadek
zaczelem pisac programik symulujacy grawitacje. W skrocie
polega on na tym ze wrzucamy dowolna ilosc cial w przestrzen
3D ,nadajemy im masy oraz wspolrzedne a co za tym idzie
odleglosci pomiedzy nimi. Wszystko ladnie dziala ale... wlasnie
male "ale", nienasycony tym co udalo mi sie napisac zaczelem
symulowac wzajemne oddzialywanie duzych cial np slonca i ziemi,
wpisalem ich masy, odleglosc, nadalem ziemi predkosc tak ze utrzymuje
sie na stabilnej orbicie wokol slonca.Dla zasady zajzalem tez do
wikipedii jak jest wzor na grawitacje i co prawda intuicyjnie
ulozylem b.podobny to jednak nie taki sam ,chodzi o proporcje
zmiany wektora ruchu kazdego z cial , bo przeciez wiadomo ze
masywniejsze cialo trudniej ruszyc.

moj wzor byl taki :

F = ( masa(A) * masa(B) ) / odleglosc(AB)^2

z tym ze:
wektor A zwiekszal sie o (F masa(A)/masa(B))
wektor B zwiekszal sie o (F
masa(B)/masa(A))

a w wikipedii czytam :

F = G * ( masa(A) * masa(B) ) / odleglosc(AB)^2

gdzie :
F = sila grawitacji;
A,B = ciala;
odleglosc,wektor = bez komentarza

heh, bardzo podobnie ale co to jest te G ? na moj chlopski rozum to
w nim musi byc zawarta ta proprcja czyli wspolczynnik przez ktory
mnozymy wektory.

W wiki podany jest wzor na G (stala grawitacyjna):

G = 6.6742 * 10<sup>-21 * Nm</sup>2/kg^2

Co to jest te Nm i w ogóle jak to zaimplementowac ? najl w c++;

Intuicyjnie domyslam sie ze ta subtelna roznica we wzorach powoduje ze
u mnie wszystkie orbity wygladaja troszeczke inaczej niz mnie uczono
w szkole.

prosze o lopatologiczna odpowiedz :)

ps.
dlugo zastanawialem sie gdzie ten temat dac , i chyba tutaj najlepiej .

EDIT:
oczywiscie wiem ze to tylko NEWTON, jednak E = mc^2 wolabym na razie
sobie odpuscic.

0

W wiki podany jest wzor na G (stala grawitacyjna):

    G = 6.6742 * 10<sup>-21 * Nm</sup>2/kg^2

Co to jest te Nm i w ogóle jak to zaimplementowac ? najl w c++;

niuton razy metr kwadrat na kilogram kwadrat- czyli po prostu jednostka, tak jak jednostką przyspieszenia jest m/s^2.

Zauważ, że przy podstawieniu do wzoru samych jednostek
F = G ( masa(A) masa(B) ) / odleglosc(AB)^2
otrzymasz
F=Nm2/kg2 ( kg kg )/ m^2
co po skróceniu da Ci
F = N, czyli siła będzie wyrażana w niutonach.
Słowem: nie musisz tego implementować.
Co do meritum Twojego pytania: możliwe, że przez brak tego współczynnika G wyniki działania Twojego programu Cię nie zadowalają. Ja niestety też fizykiem nie jestem więc nie powiem na pewno.
Mam jednak nadzieję, że trochę rozjaśniłem Ci to i owo.

0

Dzieki za tego Niutona - N,
w wiki bylo napisane : Nm;
wiec nie bedac fizykiem trudno byloby mi to rozszyfrowac,
mogli napisac chociaz N*m a nie Nm

0

Nm czyli niutonometr jest na tyle czesto uzywana jednostka (a raczej zlozeniem jednostek), ze czasem z przyzwyczajenia pisze sie to razem, bo i tak wszyscy wiedza o co chodzi (w zalozeniu, ci co powinni wiedziec :)) A tak jak napisal id02009 G to po prostu jakas tam konkretna wartosc ;)

0

Heh cos mi nie pasuje, jesli mam np 2 ciala o duzej roznicy mas to orbity nie sa
takie jak mnie uczyli :/ czyli nie moge uzyskac elipsy

user image

rysowane odrecznie, ale powinno byc czytelne

0

Moze predkosci sobie zle przyjales? Pamietaj, ze np. oddzialywanie Ksiezyca na Ziemie tez ma niebagatelne znaczenie (o ile pamietam 1/4 masy Ziemii).

0
johny_bravo napisał(a)

Moze predkosci sobie zle przyjales? Pamietaj, ze np. oddzialywanie Ksiezyca na Ziemie tez ma niebagatelne znaczenie (o ile pamietam 1/4 masy Ziemii).

raczej nie, intuicyjnie wyczuwam ze problem lezy gdzie indziej (sorki za ta intuicje ale z reguly mnie nie zwodzi) . Chodzi o to ze w naturze wystepuja tylko elipsy lub ew parabole/hiperbole a takie kwiatki jak u mnie to raczej nie :/

na oko widac ze wraz ze zblizaniem sie cial do siebie rosnie zbyt wolno, ale jak np podnioslem ja do kwadratu to przy jakiejkolwiek predkosci mialem spiralne orbity + ewentualna proce kosmiczna jesli predkosc pocztkowa dalem za mala

ps.
zdefiniowalem sobie stala EM(masa ziemi) = 5 974.2^21, ksiezyc = 0.0123*em wiec z tym 1/4 to
troszeczke przegieles

0

Fakt, przesadzilem troche z ta 1/4 :) teraz sprawdzilem w wiki ;) A wracajac do torow - z tych 'kwiatkow' wynika chyba, ze wzorek jest niepoprawny. Zauwaz, ze powinno byc tak, ze najwieksza krzywizna jest blisko ciala okrazanego (bo wieksza sila przyciagania).

Najlepiej byloby jakbys podal jakies konkrety, np. wzory z ktowych wyliczasz, dane jakie podstawiasz, itp.

0

Juz sobie poradzilem:)
mialem po prostu o 1 mase za duzo w mianowniku,
dodalem 1 odleglosc w dzielniku i jest ok, az sie zdziwilem ze tak to dziala
precyzyjnie, wstawilem wszystkie planety ,slonce, ksiezyc wokol ziemi
a nawet komete halleya i wszystko trzyma sie tylko sila grawitacji !

0

a oto wynik :
http://republika.pl/ph_chudak/download/Gravity020.exe
(windows binaria)

tylko sie nie smiac! wrocilem do programowania po 4 latach :)

nie mialem danych co do predkosci komety Halleya wiec dalem tak
3,14*oko ale jakos tam sie kreci ;p

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0