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):
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(" [%]");
...
...
--------------------