Przejdź do Taraki mobilnej! - masz wąski ekran.
zdjęcie Autora

19 sierpnia 2018

Wojciech Jóźwiak

z cyklu: Astro-obserwator (odcinków: 194)

Flandern i Pulkkinen
O zasłużonym wzorze do liczenia planet

Kategoria: Astrologia
Tematy/tagi: astrologiainformatykaInternet

« Perwersyjny znak Raka

Niedawno znalazłem w sieci i wstawiłem do znalezisk Taraki pracę z 1979 r. pt. „Low-precision formulae for planetary positions”. Dwóch amerykańskich autorów: Tom Van Flandern (1940-2009) i Kenneth Pulkkinen, podpisywany K. F. Pulkkinen. Pierwszy, Flandern, zmarły prawie dziesięć lat temu, cieszy się sławą i ma obszerne hasło w angielskojęzycznej Wikipedii (zasłynął też jako krytyk uznanych poglądów w astrofizyce, w tym Wielkiego Wybuchu). O drugim, Pulkkinenie, Sieć totalnie zapomniała: tylko we wspomnianej notce o Flandernie wymieniono jego imię i stąd wiemy, jakiej jest (był?) płci. Innych jego śladów nie ma.

Thomas_Van_FlandernWracając do tematu: po co komu „wzory na planety, o małej dokładności”? Po co obniżać dokładność? – Bo te wzory sporządzono nie po to, żeby znać dokładne położenia planet na niebie, tylko po to, żeby móc w kierunku planet nastawiać teleskopy i inne przyrządy pomiarowe. W tym zadaniu zbyt wielka dokładność przeszkadza. Poza tym był to rok 1979 i komputery nie miały dzisiejszej szaleńczej wydajności, więc liczyła się oszczędność obliczeń.

Ja zapoznałem się z pracą Flanderna i Pulkkinena około 1990 roku, kiedy wreszcie posiadłem swój komputer i spróbowałem go zastosować do tego, co astrolog lubi najbardziej, czyli do obliczania i rysowania (w horoskopie) pozycji planet. Reprint Flanderna & Pulkkinena podarowała mi pewna znajoma, której obiecałem, że nie zdradzę jej tożsamości, ponieważ była fanką astrologii i przy tym pracowała zawodowo jako astronom i swoje hobby (kasujące ją w jej środowisku) ukrywała przed kolegami i zwierzchnością. Więc nie zdradzam i teraz, chociaż to było prawie trzydzieści lat temu.

Zapowiedziana niska dokładność wzorów F&P wcale nie jest taka niska. Dają dokładność około 1 minuty kątowej. Taka dokładność z zapasem wystarcza w astrologii. Bo co to jest minuta kątowa, jaka to odległość na niebie? W załamaniu dyszla Wielkiego Wozu (albo na karku Wielkiej Niedźwiedzicy) leży duża gwiazda Mizar, a obok mniejsza (tzn. mniej jasna) Alkor. Kto ma dobry wzrok, widzi je osobno. Częściej zlewają się w jedną. Odległe są o 12 minut kątowych. Z czego wniosek, że jednej minuty kątowej po prostu gołym okiem nie widać. Faktyczne różnice odległości ważne dla astrologa zaczynają się od mniej więcej pół stopnia czyli 30 minut.

Wtedy około 1990 r. wzory Flanderna i Pulkkinena przepisałem na program liczący. W języku, którego wówczas używałem, czyli turbobasic. Czy ktoś go jeszcze pamięta? Ale tamten pierwszy krok był bardzo ważny, ponieważ tworzył algorytm. Później już zostało przetłumaczyć tamten algorytm na inne języki programowania, co było czynnością dość automatyczną. I tak zrobiłem: około r. 1995 nauczyłem się języka C; dokładniej: C++, teraz C ma nowsze warianty. C to jest wysoka półka! To jest właściwie język absolutny. Podobno system Unix (którego wariantami są Linux i Android) został napisany w C. Oczywiście, nie nauczyłem się go całego, a tylko umiejętność pisania wstawek, które potem system sklejał w programy. Wzory F&P przepisałem wtedy do C. Następny ruch był w 2006 r., kiedy współpracujący wtedy ze mną programista przepisał F&P do internetowego języka PHP. I w tym wykonaniu działają do dzisiaj, tyle że przenosiłem je kilka razy z serwera na serwer.

Funkcję liczącą pozycje planet według wzorów F&P nazwałem po prostu „Flandern”. Jest dość prosta, tu na obrazku widzisz około 60% jej kodu:

Zawiera cztery pętle jedna w drugiej, w których są liczone sinusy bądź cosinusy czasu, mnożone przez współczynniki i sumowane. Do tego oczywiście są dołączone tabele tych współczynników.

Między obliczeniami w C i w PHP zachodzi pewna różnica. Program w języku C ma postać „ludzką”, tzn. edytowaną przez człowieka i dla niego czytelną, i tę postać dopiero kompiluje przekształcając ją w kod maszynowy (czyli plik EXE), który system wykonuje i robi to szybko. PHP inaczej, pracuje tylko na kodzie „ludzkim”: kompiluje wersję „ludzką” za każdym razem, kiedy wykonuje skrypt. Słówko „skrypt” się pojawiło: bo właśnie, aby to odróżnić, wprowadzono ten termin. Skrypty to programy, z których nie są robione pliki wykonywalne (EXE) – skrypty to takie ciągi instrukcji, które inny program przetwarza bezpośrednio, chociaż wolniej. Kiedy w latach 90-tych pisałem program Flanderna w C, dopiero czekano na programy skryptowe, które byłyby dość szybkie, żeby je zastosować w praktyce. Około 2000 r. wszedł w życie język PHP, służący do generowania stron internetowych. Kiedy sobie myślę, jak silnik PHP na serwerze musi się namęczyć, powtarzając, za każdym razem, kiedy ktoś przywołuje stronę Taraki lub AstroAkademii, te same w kółko czynności, które C robił raz i magazynował, to mi się go (silnika PHP) żal robi. Jest w tym jakiś ludzki akt wyzysku maszyn, które śmiało mogłyby działać bardziej efektywnie. Ale to nam nie chce się wykorzystywać ich optymalnie i zgodnie z ich naturą, przecież dla nas one i tak są wiele razy zbyt szybkie.

W witrynie AstroAkademii jest program do generowania efemeryd. Pracuje na tym samym algorytmie Flanderna & Pulkkinena. Obliczenia dla stu momentów czasu, dziesięciu planet i około miliona liczenia sinusów i mnożenia ich przez współczynniki trwają przez czas prawie niezauważalny dla człowieka. A i tak z tej 1/10 sekundy większość czasu zabiera transmisja do i z Gdańska, gdzie stoi szuflada z serwerem, oraz pracowite wyliczanie przez procesor komputera wielomianów Béziera potrzebnych do wyrysowania liter i cyfr na ekranie. W ogóle w całej komputerologii wszelkie peryferie, dodatki, manipulacje i interfejsy najbardziej żrą czas i procesora, i ludzi-projektantów.

Dlaczego zainteresowałem się artykułem van Flanderna i Pulkkinena, teraz, po prawie 30 latach? Ponieważ od jakiegoś czasu przymierzam się do dwóch kolejnych zadań. Pierwsze, to żeby tamte algorytmy do liczenia planet przenieść na jeszcze jeden język: na JavaScript. (Też jak PHP, język skryptowy, czyli pracujący na „ludzkim” zapisie komend i nie produkujący plików exe.) Po co? – Ponieważ JavaScript istnieje w każdym komputerze (i w każdym mobilu-komórkowcu) jako narzędzie każdej internetowej przeglądarki. Oraz skrypt w nim może działać bez połączenia z Internetem. A jak moi Czytelnicy wiedzą, prognozuję ciężkie czasy, kiedy z dostępem do Sieci może być różnie. Gdyby jeszcze dla komputerów były niezależne źródła prądu... Poza tym, motywuje mnie mój „panieński” (od Księżyca w znaku Panny) wzgląd na oszczędność i minimum środków: skoro wszystkie narzędzia potrzebne do obliczeń horoskopu są w komputerze lub mobilu, to po co łączyć się z serwerem i sieć męczyć?

Drugie zadania o którym myślę, to żeby ze wzorów F&P, odpowiednio przekształconych, wyliczać węzły Księżyca. Idea jest prosta (żeby nie zanudzić, nie wyłożę jej tutaj), ale wykonanie takie, że... trzeba w stu miejscach uważać, żeby się nie pomylić.

Astro-obserwator: wstęp na końcu

Dawniej "Mesuranema", z greckiego mesouranêma co znaczy "środek nieba" czyli medium coeli.


« Perwersyjny znak Raka

komentarze

[foto]

1. Nieraz sobie myślę... • autor: Roman Kam2018-08-19 14:21:16

... że niemożliwą jest rzeczą, by Wojciech Jóźwiak, to była jedna osoba ;)
Przyznajcie się Jóźwiaki, ilu Was jest naprawdę :]]]]
[foto]

2. Przyznaję się -- • autor: Wojciech Jóźwiak2018-08-19 14:55:46

Dzięki Romanie za przewrotnie dowcipne Uznanie.
W zespole, który występuje pod zbiorczym pseudonimem "Wojciech Jóźwiak" pilnie potrzebujemy jeszcze jednego uczestnika: który by umiał nasze przedsięwzięcie sprzedać z zyskiem.:)

3. Z wielkim zainteresowaniem... • autor: Piotr Iwiński2018-08-25 13:56:50

Z wielkim zainteresowaniem przeczytałem ten artykuł (inne Twoje artykuły też czytam z zainteresowaniem). Kiedyś w "Uranii" Tomasz Kwast opublikował serię algorytmów do obliczeń pozycji planet (numery od 7-8/1984 do 2/1986 - mogę udostępnić). Te algorytmy były opracowane na podstawie Jean Meeus "Astronomical Formulae for Calculators" (Willmann-Bell, Inc. 1982; obecnie jest dostępne nowe wydanie tegoż autora "Astronomical algorithms", Willmann-Bell, Inc. 1998). Na podstawie tych algorytmów z "Uranii" napisałem (też w PHP) program do obliczeń (dostępny tu: http://www.iwi.hg.pl/astro/astro.php). Wydrukowałem sobie - dzięki podanemu przez Ciebie linkowi - ten artykuł z "The Astrophysical Journal Supplement Series" i mam zamiar zakodować go w PHP i porównać wyniki z tymi wg Meeusa. Powinny być bardzo zbliżone. Piotr Iwiński (dawniej Fides).
[foto]

4. Dzieki za odzew! • autor: Wojciech Jóźwiak2018-08-25 14:15:23

Cieszę się Piotrze i dziękuję za odzew.
Aplikacja http://www.iwi.hg.pl/astro/astro.php imponuje! Szczególnie dokładnością obliczeń. Będę u Ciebie sprawdzać, czy moje algorytmy się nie mylą. :)
Więcej a mailu. Pozdrawiam ---

Zaloguj się - aby napisać komentarz   Rejestracja - jeśli nie masz konta w Tarace

x

Szybki przegląd Taraki

[X] Logowanie:

- e-mail jako login
- hasło
Zaloguj
Pomiń   Zapomniałem/am hasła!

Zapisz się (załóż konto w Tarace)