Výpočet fáze Venuše

Povídání o astronomické literatuře, počítačových planetáriích, hvězdných mapách, atd.
Odpovědět
Uživatelský avatar
M. Krupa
Příspěvky: 147
Registrován: 24. 01. 2004, 23:13

Výpočet fáze Venuše

#1

Příspěvek od M. Krupa »

Dobrý den. Portřeboval bych poradit, jak vypočítat osvětlenou část Venuše (fázi).
Zkoušel jsem se zeptat umělé inteligence, ale pořád mi radí nesmysly.

Dostal jsem se až sem:
Mám spočtené souřadnice Ra a Dec pro Slunce i Venuši.
Mám vypočtené vzdálenosti mezi Zemí a Sluncem a mezi Zemí a Venuší (v AU).
Zdá se, že mi sedí i vzdálenost Venuše od Slunce (v AU).
Z výše uvedených hodnot mám spočtenou elongaci Venuše, která taky docela sedí (rozdíl tam je asi stupeň, ale zas tak moc přesně to nepotřebuju).


Umělá inteligence mi tvrdila, že se fáze vypočte jednoduše vzorcem:
k = (1 + cos(E)) / 2
kde E je elongace ve stupních. Funkce cos() pak samozřejmě nesmí být radiánová, ale taky stupňová.

To ale vůbec nevychází.


Pak mi poradila jiný vzorec, kde se počítá se vzdálenostmi:
https://chatgpt.com/share/4b73b1a2-2d4c ... 0d3cfcbd0b

I po přepočtu ale dostávám úplně stejně špatné výsledky.
Místo 55% fáze pro příklad z 20.8.2028 dostávám asi 85%.



Tady je ukázka části programu a výsledků:

datum= 20.8.2028
---Rektascenze a deklinace pro Slunce a Venusi---
raS= 150.178881
deS= 12.164810
raV= 102.976575
deV= 20.203043
---Kartezske souradnice pro Slunce a Venusi---
xs=-0.848101
ys=0.486127
zs=0.210724
xv=-0.210737
yv=0.914508
zv=0.345348
---vzdalenosti v astronomickych jednotkach---
vzdalenost Venuse_Zeme= 0.784472
vzdalenost Slunce_Zeme=1.011759
---pomocna promenna (skalarni soucin kartezskych souradnic)---
pomprom= 0.696067
cos(PSI)= 0.696067
---elongace ze skalaniho soucinu---
Elongace: 45.887712 [stupne]
---vzdalenost Venuse_Slunce---
delta na druhou= 0.534121
delta= 0.730836

**** az sem se to zda byt dobry ****

---vysledne faze Venuse vypoctene ruznymi metodami---
Faze vypoctena z Elongace: 84.80 [%]
Faze vypoctena ze PSI: 84.80 [%]

Očekával bych takovýto výsledek (program StarCalc):
ocekavane_vysledky.gif
ocekavane_vysledky.gif (99.79 KiB) Zobrazeno 4734 x


Program (jen část s výpočty):

Kód: Vybrat vše

--------------------
...
...

Serial.print("datum= ");
Serial.print(SIM_den);
Serial.print('.');
Serial.print(SIM_mes);
Serial.print('.');
Serial.println(SIM_rok);


Serial.println("---Rektascenze a deklinace pro Slunce a Venusi---");
Serial.print("raS= ");
Serial.println(raS,6);
Serial.print("deS= ");
Serial.println(deS,6);

Serial.print("raV= ");
Serial.println(raV,6);
Serial.print("deV= ");
Serial.println(deV,6);


    
    double xs = dcos(deS) * dcos(raS);           // kartezske souradnice pro Slunce
    double ys = dcos(deS) * dsin(raS);
    double zs = dsin(deS);
    
    double xv = dcos(deV) * dcos(raV);          // kartezske souradnice pro Venusi
    double yv = dcos(deV) * dsin(raV);
    double zv = dsin(deV);

Serial.println("---Kartezske souradnice pro Slunce a Venusi---");
Serial.print("xs=");
Serial.println(xs,6);
Serial.print("ys=");
Serial.println(ys,6);
Serial.print("zs=");
Serial.println(zs,6);


Serial.print("xv=");
Serial.println(xv,6);
Serial.print("yv=");
Serial.println(yv,6);
Serial.print("zv=");
Serial.println(zv,6);


Serial.println("---vzdalenosti v astronomickych jednotkach---");
Serial.print("vzdalenost Venuse_Zeme= ");
Serial.println(vzV,6);
Serial.print("vzdalenost Slunce_Zeme=");
Serial.println(vzS,6);

    double pomprom = xs*xv + ys*yv + zs*zv;   // skalarni soucin

Serial.println("---pomocna promenna (skalarni soucin kartezskych souradnic)---");
Serial.print("pomprom= ");
Serial.println(pomprom,6);

    
    double E = dacos(pomprom);
    double delta2 = (vzS * vzS) + (vzV * vzV) - (2 * vzS * vzV * dcos(E));
    double cosPSI = ((vzS * vzS) + (vzV * vzV) - delta2) / (2 * vzS * vzV);

Serial.print("cos(PSI)= ");
Serial.println(cosPSI,6);


Serial.println("---elongace ze skalaniho soucinu---");
Serial.print("Elongace: ");
Serial.print(E,6);
Serial.println(" [stupne]");


Serial.println("---vzdalenost Venuse_Slunce---");
Serial.print("delta na druhou= ");
Serial.println(delta2,6);

Serial.print("delta= ");
Serial.println(sqrt(delta2),6);

Serial.println("\n****  az sem se to zda byt dobry ****\n");


Serial.println("---vysledne faze Venuse vypoctene ruznymi metodami---");

    double faze1 = (1 + dcos(E)) / 2;

Serial.print("Faze vypoctena z Elongace: ");
Serial.print(faze1 * 100);
Serial.println(" [%]");
   
    double faze2 = (1 + cosPSI) / 2;

Serial.print("Faze vypoctena ze PSI: ");
Serial.print(faze2 * 100);
Serial.println(" [%]");

...
...

--------------------
Uživatelský avatar
Boramyr
Příspěvky: 266
Registrován: 22. 09. 2007, 03:37
Bydliště: Útušice
Věk: 41

Re: Výpočet fáze Venuše

#2

Příspěvek od Boramyr »

Vztah je správně, ale to E v něm není elongace. Tam patří úhel Slunce-Venuše-Země.
Pokud máš spočtené vzdálenosti, pak pro ten kosinus platí jednoduchý vztah:

cos E = (r2 + D2 - R2) / 2RD

r je vzdálenost Slunce - Venuše
D je vzdálenost Země - Venuše
R je vzdálenost Slunce - Země
Uživatelský avatar
MilAN
Příspěvky: 24838
Registrován: 17. 04. 2004, 23:56
Bydliště: Jablonec nad Nisou
Věk: 76

Re: Výpočet fáze Venuše

#3

Příspěvek od MilAN »

M. Krupa píše: 07. 07. 2024, 15:12
---vysledne faze Venuse vypoctene ruznymi metodami---
Faze vypoctena z Elongace: 84.80 [%]
Faze vypoctena ze PSI: 84.80 [%]
to, co tu nazýváš vypočtenou fází, , je fázový úhel, . Tedy 84 ° = F
Fázi získáš z toho prvního vzorce : f= (1+ cosF)/2
...................

edit : jinak k výsledku vede jednoduchá cesta:

f= ((r+D)2 -R2) / 4rD
lepší rada žádná než špatná
milantos(šnek)centrum(puntík) cz
Uživatelský avatar
M. Krupa
Příspěvky: 147
Registrován: 24. 01. 2004, 23:13

Re: Výpočet fáze Venuše

#4

Příspěvek od M. Krupa »

Díky za snahu ale pořád mi to nějak nejede.

U Boramyrova výpočtu se to rozchází asi o 10%. Tam budu muset kouknout, jestli na to nemají vliv nepřesnosti ve výpočtech vzdáleností.

U Milana mi to sice úplně přesně sedí na tom testovacím datumu 20.8.2028, ale jinak to utíká ještě víc.
Tam zas možná nějak blbě kombinuju stupně a radiány. Potřebuju se nad tím v klidu zamyslet - už se v tom ztrácím.
Uživatelský avatar
M. Krupa
Příspěvky: 147
Registrován: 24. 01. 2004, 23:13

Re: Výpočet fáze Venuše

#5

Příspěvek od M. Krupa »

MilAN píše: 07. 07. 2024, 16:36 edit : jinak k výsledku vede jednoduchá cesta:

f= ((r+D)2 -R2) / 4rD
... TO JE ONO.

Díky Milane, tohle funguje přesně.
Měl jsem problém s chybějícími závorkami za lomítkem ( 4 * r * D ).
Uživatelský avatar
M. Krupa
Příspěvky: 147
Registrován: 24. 01. 2004, 23:13

Re: Výpočet fáze Venuše

#6

Příspěvek od M. Krupa »

Ještě jednou bych si dovolil obtěžovat s výpočty Venuše.
Mám vypočtené všechny parametry (osvětlená část v procentech, vzdálenost Venuše Země, vzdálenost Venuše Slunce, elongace ...)
Poslední věc, kterou bych chtěl ještě počítat, je magnituda (zdánlivá).

Našel jsem vzorec:

Kód: Vybrat vše

    magnituda = -4.47 + (5 * log10(vzdal_SV * vzdal_ZV)) - (2.5 * log10(faze_V));            // "log10" je desítkový logaritmus

// vzdal_SV ... vzdálenost Slunce-Venuše v AU
// vzdal_ZV ... vzdálenost Země-Venuše v AU
// faze_V ..... osvětlená část Venuše viditelná ze Země (0,5 = 50% osvětlení)

Po simulaci na několik let dopředu a porovnání s hodnotami získanými z programu "Cartes du Ciel", vychází trend hodně podobně,
ale hodnoty se výrazně liší.
Podle Wikipedie by měla být magnituda v rozmezí -3,1 až -4,4.
Mně ale vychází posunutá o dost níže (viz graf).

Ty špičky v grafu jsou v pořádku - o ty mi nejde.
Vznikly tím, že je tam při konjunkci velice malá osvětlená část (v podstatě se blíží nule),
takže člen rovnice s logaritmem osvětlené části pak vychází hodně velké záporné číslo, které "přebije" zbývající členy rovnice.

Nevím ale, co mám za problém při normálních situacích, kdy mi magnitudy vychází běžně pod hodnotu -4,5 (občas až někam k -5,5).

Fialová čára je zubatá, protože tabulkové hodnoty z programu "CdC" byly zaokrouhleny na 1 desetinné místo.


A nebo mám zase problém s tím, že motám dohromady fázi (jako že osvětlenou část) a ten fázový úhel?

magven.gif
magven.gif (19.57 KiB) Zobrazeno 4311 x
Uživatelský avatar
Psion
Příspěvky: 12269
Registrován: 02. 01. 2001, 05:03
Bydliště: Praha
Věk: 62
Kontaktovat uživatele:

Re: Výpočet fáze Venuše

#7

Příspěvek od Psion »

M. Krupa píše: 07. 07. 2024, 15:12
Umělá inteligence mi tvrdila, že se fáze vypočte jednoduše vzorcem:
k = (1 + cos(E)) / 2
kde E je elongace ve stupních. Funkce cos() pak samozřejmě nesmí být radiánová, ale taky stupňová.

To ale vůbec nevychází.
Já jsem dostal tuto odpověď

https://chatgpt.com/c/97f78d23-3654-46b ... 7c9c4ed3dd
Uživatelský avatar
Boramyr
Příspěvky: 266
Registrován: 22. 09. 2007, 03:37
Bydliště: Útušice
Věk: 41

Re: Výpočet fáze Venuše

#8

Příspěvek od Boramyr »

CdC to počítá dle Meeuse, ten uvádí následující vztah (i je absolutní hodnota fáze ve stupních):

mag = -4.40 + 5 log(rD) + 0.0009i + 0.000239i2 - 0.00000065i3

Ten poslední člen ve tvém vztahu (ač vypadá logicky) nebude dobře - kotouček planety není rovnoměrně osvětlený kroužek, který by bylo možné jen tak jednoduše vydělit. V tom logaritmu má být hodnota funkce, která závisí na fázi, ale asi není úplně přímočará. V tomhle dokumentu ji pan Pace z JPL jednoduše tabeluje: https://ntrs.nasa.gov/api/citations/197 ... 009758.pdf
Uživatelský avatar
M. Krupa
Příspěvky: 147
Registrován: 24. 01. 2004, 23:13

Re: Výpočet fáze Venuše

#9

Příspěvek od M. Krupa »

Psion:
Bohužel se odkaz nedaří otevřít.



Boramyr:
Na tohle jsem asi fakt natvrdlej. Vůbec to nesedí.

Příklad pro dnešek (14.7.2024):

vzdálenost Venuše - Země = 1.689531 AU
vzdálenost Slunce - Venuše = 0.715732 AU
vzdálenost Slunce - Země = 1.0165 AU

Z toho jsem vypočítal dnešní fázový úhel 154°.

Pak to dosadím do toho vzorce:
mag = -4.40 + 5 log(rD) + 0.0009i + 0.000239i2 - 0.00000065i3

Postupně každý člen pak vypadá takto:

1) -4,40 (konstanta)


2) 5 * log(r * D) = 5 * log (0,715732 * 1,689531) = 5 * log(1,20925) = 5 * 0,0825166 = 0,412583


3) 0,0009 * i = 0,0009 * 154 = 0,1386


4) 0.000239 * i^2 = 0,000239 * 154^2 = 5,668124


5) 0,00000065 *i^3 = 0,00000065 * 154^3 = 0,00000065 * 3652264 = 2,3739716


Po dosazení jednotlivých členů:

-4,4 + 0,412583 + 0,1386 + 5,668124 - 2,3739716 = -0,5546646 [mag]



Když provedu simulaci na několik let dopředu a porovnám to s výstupem z CdC, vypadá to takhle:
magven-meeuse.gif
magven-meeuse.gif (21.62 KiB) Zobrazeno 3944 x
Uživatelský avatar
M. Krupa
Příspěvky: 147
Registrován: 24. 01. 2004, 23:13

Re: Výpočet fáze Venuše

#10

Příspěvek od M. Krupa »

HOTOVO.

Našel jsem ten problém.
Šlo o to, že původní vzorec pro výpočet fázového úhlu počítal úhel mezi planetami s vrcholem ve Slunci.
Pro výpočty ale bylo třeba úhel s vrcholem ve Venuši.

Pro dnešek tedy neplatí těch 154°, ale jen asi 15°.
kosinova_veta.gif
kosinova_veta.gif (10.61 KiB) Zobrazeno 3904 x




Když pak se správnými úhly přepočtu magnitudu pomocí Meeuse, graf perfektně sedí s daty z "CdC":
magven-meeuse2.gif
magven-meeuse2.gif (15.08 KiB) Zobrazeno 3904 x

Velké díky Boramyrovi ...
Uživatelský avatar
MilAN
Příspěvky: 24838
Registrován: 17. 04. 2004, 23:56
Bydliště: Jablonec nad Nisou
Věk: 76

Re: Výpočet fáze Venuše

#11

Příspěvek od MilAN »

A pokud z příspěvku #3 ze druhého vzorce spočítáš fázi , tak z toho prvního máš fázový úhel - (těch 15°).
Asi je potřeba ty vzorce používat z jedné publikace.
lepší rada žádná než špatná
milantos(šnek)centrum(puntík) cz
Uživatelský avatar
Psion
Příspěvky: 12269
Registrován: 02. 01. 2001, 05:03
Bydliště: Praha
Věk: 62
Kontaktovat uživatele:

Re: Výpočet fáze Venuše

#12

Příspěvek od Psion »

M. Krupa píše: 14. 07. 2024, 18:17
Psion:
Bohužel se odkaz nedaří otevřít.
Tak jen pro doplnění, když je hotovo, co GPT 4o vymyslel.
Přílohy
Snímek obrazovky 2024-07-15 v 14.10.42.png
Snímek obrazovky 2024-07-15 v 14.10.42.png (191.42 KiB) Zobrazeno 3815 x
Uživatelský avatar
M. Krupa
Příspěvky: 147
Registrován: 24. 01. 2004, 23:13

Re: Výpočet fáze Venuše

#13

Příspěvek od M. Krupa »

Ještě bych to doplnil.

Prošel jsem si zdrojáky k programu "Cartes du Ciel" (SkyChart).
A našel jsem tam výpočty pro magnitudy všech planet.

Kód: Vybrat vše

// ZDROJ: 
//    https://github.com/pchev/skychart/blob/master/skychart/cu_planet.pas


                          //    Mer ,  Ven , Z,  Mar ,  Jup ,  Sat ,  Ura ,  Nep ,  Plu
  V0: array[1..9] of double = (-0.42, -4.40, 0, -1.52, -9.40, -8.88, -7.19, -6.87, -1.0);


  magn := V0[ipla] + 5 * log10(dp * distance); {meeus91 40. }                       // pro Uran, Neptun a Pluto už se další korekce nepočítají
  pha := abs(phase);                                                                // tohle je fázový úhel
  case ipla of
    1: magn := magn + pha * (0.0380 + pha * (-0.000273 + pha * 2e-6));              // další korekce pro Merkur
    2: magn := magn + pha * (0.0009 + pha * (0.000239 - pha * 6.5e-7));             // další korekce pro Venuši
    4: magn := magn + 0.016 * pha;                                                  // další korekce pro Mars
    5: magn := magn + 0.005 * pha;                                                  // další korekce pro Jupiter
    6: magn := magn + 0.044 * pha;                                                  // další korekce pro Saturn bez prstenců 
  end;                                                                              //    (prstence se tam počítají samostatně a na magnitudu mají velký vliv)
Odpovědět