
Z Ogólnej Teorii Względności wynika dużo ciekawych efektów. Jednym z nich jest, znajdujące się w tytule tej notki, tzw. opóźnienie Shapiro.
O co chodzi? Ogólna Teoria Względności przewiduje m.in. fascynujące zjawisko wolniejszego upływ czasu w pobliżu masywnych ciał. Oznacza to np., że jeśli spotkacie się z sąsiadem wieczorem przy wejściu do bloku, pójdziecie spać do swoich mieszkań, po czym spotkacie się znowu przy wejściu rano - jeśli mieszkasz na parterze, a sąsiad na 10 piętrze, to sąsiad w ciągu nocy zestarzeje się bardziej, niż Ty. Na Ziemi, przy takich różnicach wysokości, różnice w upływie czasu są minimalne - w przykładzie z sąsiadem nie większe niż kilkadziesiąt bilionowych części sekundy - ale są.
Te różnice w upływie czasu da się zmierzyć w niektórych okolicznościach, i fizyk Irwin Shapiro wskazał jeden możliwy sposób. Wykorzystuje on najmasywniejsze ciało w Układzie Słonecznym - Słońce. Wysłana z Ziemi fala elektromagnetyczna, przelatująca w pobliżu Słońca, znajduje się w obszarze, w którym czas płynie nieco wolniej, niż na Ziemi - w efekcie z Ziemi wygląda to, jakby poruszała się nieco wolniej. Jeśli taka fala po przelocie obok Słońca odbije się od czegoś - np. od innej planety - i wróci na Ziemię, przelatując po drodze obok Słońca jeszcze raz - to okaże się, że zajmie jej to nieco więcej czasu, niż wynikałoby z prostego podzielenia odległości między Ziemią a planetą przez prędkość fali (prędkość światła). Shapiro obliczył, jakiego opóźnienia można się spodziewać, i wyszło mu, że np. jeśli planetą, od której odbiją się fale, będzie Wenus, to opóźnienie może wynieść nawet ponad 200 µs (milionowych części sekundy) - wciąż malutko, ale już do zmierzenia!
I opóźnienie Shapiro faktycznie zmierzono. Wielokrotnie wysyłano z Ziemi wiązkę radarową, która odbijała się od Wenus i wracała na Ziemię, i mierzono dokładnie czas jej przelotu. Uzyskane wyniki były zgodne z przewidywaniami OTW:

Wiadomo wobec tego, że efekt występuje. Jednak jak przystało na porządnego nerda, postanowiłem sprawdzić, czy będę w stanie sam otrzymać poprawne przewidywanie z teorii. W tym celu stworzyłem sobie symulację, której dotyczy ta notka.
Liczenie opóźnienia
Jak wyliczyć opóźnienie Shapiro?
Oryginalne przewidywanie teoretyczne opierało się, z tego co wiem, na przybliżonym obliczeniu analitycznym - tzn. Shapiro poprzekształcał równania Ogólnej Teorii Względności, aż wyszedł mu wzór na opóźnienie w zależności od pozycji planet. Wyprowadzenia tego wzoru można znaleźć w internecie - jednak wszystkie siłą rzeczy są przybliżone, gdyż w pełni ścisłe rozwiązanie jest zwyczajnie zbyt skomplikowane.
Można jednak podejść do sprawy inaczej - zaprząc do pracy komputer. W takim podejściu da się zastosować ścisłe wzory z teorii, a komputer symuluje na ich podstawie przebieg zjawiska i podaje obliczone wielkości. Kiedy zainteresowałem się tematem, miałem już trochę kodu do obliczeń teoriowzględnościowych, więc postanowiłem po prostu go wykorzystać.
Zanim jednak cokolwiek da się policzyć, trzeba dobrze zdefiniować problem.

Wprowadźmy sobie w całej sytuacji układ współrzędnych. Układ będzie miał dwie osie, x i y, z osią y przechodzącą przez Słońce i równoległą do odcinka łączącego Ziemię i Wenus. Odcinek łączący planety przecina oś x w odległości od Słońca.
W tym układzie Ziemia ma współrzędne , a Wenus -
. Odległość Wenus od Słońca to, z twierdzenia Pitagorasa,
, a odległość Ziemi:
.
Gdyby Słońca nie było - albo raczej, gdyby nie było wpływu jego grawitacji - to wiązka radarowa docierałaby z Ziemi do Wenus w czasie , czyli w obie strony:
. Ponieważ jednak Słońce istnieje, czas ten będzie trochę inny. Jeśli uda się nam go wyliczyć, będzie wystarczyło odjąć od wyniku
, aby otrzymać wielkość opóźnienia Shapiro.
Niestety, w obecności Słońca sprawa się nieco komplikuje. Słońce, jak to masa, wykrzywia czasoprzestrzeń - więc i trasa wiązki radarowej nie będzie prosta, a lekko wykrzywiona. Jak bardzo wykrzywiona, to dopiero dowiemy się z obliczeń - ale niezależnie od tego, nie możemy po prostu zasymulować promienia startującego z i patrzeć, kiedy trafia w
- bo nawet nie wiemy, w jakim kierunku musiałby zostać wysłany, żeby trafić w dobre miejsce!
Zrobiłem więc inaczej. Zamiast symulować promień wysłany z Ziemi, symuluję dwa promienie wysłane z punktu w odległości od Słońca, w kierunku stycznym. Tor jednego z nich symuluję do momentu, aż przekroczy odległość
od Słońca, a drugiego - aż przekroczy odległość
. Łączny czas lotu tych dwóch promieni będzie równy czasowi lotu promienia z Ziemi do Wenus.

Druga komplikacja będzie nieco cięższa do wyjaśnienia.
Otóż wszystko w ujęciu OTW dzieje się nie w przestrzeni, a w czasoprzestrzeni, i to czasoprzestrzeń jako całość jest krzywa. W przypadku czasoprzestrzeni zakrzywionej przez pojedynczą masę, wprowadza się w niej zwykle współrzędne i
, które wyglądają jak odległość od centrum i czas, ale nimi nie są. Jedna z konsekwencji jest taka, że jeśli mamy zdarzenie na Ziemi o współrzędnej
i drugie zdarzenie o współrzędnej
, to czas, który upłynął między nimi, nie jest równy
. A tak się niestety składa, że wynikiem z symulacji jest właśnie współrzędna
promienia w momencie osiągnięcia odpowiedniej odległości od Słońca - tę współrzędną trzeba jeszcze jakoś przeliczyć na właściwy czas.
Na szczęście jest to stosunkowo proste. Z symulacji dwóch promieni otrzymujemy współrzędną zdarzenia "promień dotarł do Wenus" i współrzędną
zdarzenia "promień wystartował z Ziemi". Mnożąc różnicę tych współrzędnych przez 2, otrzymamy różnicę współrzędnych zdarzeń "promień wystartował z Ziemi" i "promień wrócił na Ziemię":
. Oba te zdarzenia zaszły w tej samej odległości od Słońca, co oznacza, że aby otrzymać czas, który między nimi upłynął, wystarczy przemnożyć tę wartość przez coś, co można roboczo nazwać "współczynnikiem grawitacyjnej dylatacji czasu od Słońca", a co wynosi
(gdzie
to masa Słońca).
I to już wszystko. To dokładnie robi symulacja, którą udostępniłem tutaj: wypuszcza dwa promienie z punktu w odległości od Słońca w chwili
; znajduje ich współrzędne
po przecięciu orbit Ziemi i Wenus:
i
; znajduje różnicę tych współrzędnych, mnoży przez 2 i przez "współczynnik dylatacji czasu"; od tak otrzymanego czasu przelotu odejmuje czas wyliczony dla braku Słońca - i już, mamy opóźnienie Shapiro.
Podlinkowany program ma już wpisane domyślne dane, w sekundach świetlnych:
(ok. 700 tys. km - promień Słońca)
(ok. 111 mln km)
(ok. 149,5 mln km)
Przy tak podanych danych, wynik jest następujący:
1 2 3 4 5 |
Propagation finished. t1 = 498.6700642574116 t2 = -370.70006134326985 dt = 1738.7402341164484 delay = 0.0002341164483823377 |
Czyli: współrzędna promienia lecącego do Ziemi jest trochę ponad 498,67, współrzędna
promienia lecącego do Wenus jest trochę poniżej -370,7 (ten promień jest symulowany w przeszłość, stąd ujemna współrzędna), różnica pomnożona przez 2 i przez współczynnik dylatacji czasu jest 1738,740234...; bez Słońca czas przelotu byłby po prostu
. Różnica - 0,000234 s, czyli 234 µs, to nasze szukane opóźnienie Shapiro.
Na koniec
Nie wszedłem w tym wpisie za bardzo w matematykę stojącą za symulacją - celowo, gdyż jest dość złożona. Ogólnie cała symulacja toru promienia polega na rozwiązywaniu równania różniczkowego - równania geodezyjnej w czasoprzestrzeni Schwarzschilda. Dokładne opisanie, co tam się dzieje, to materiał na co najmniej kilka wpisów - kiedyś zresztą zacząłem serię o matematyce czarnych dziur, która miała w pewnym momencie zacząć mówić o tych zagadnieniach, ale nigdy jej nie skończyłem - może to dobry moment, żeby ją kontynuować.
Mój symulator istnieje też w dwóch wersjach. Podlinkowałem już wersję w języku Rust - jest też wersja w C++. Z tworzeniem wersji w Ruście wiąże się dość zabawna historia z szukaniem błędu w kodzie, ale to też materiał na osobny wpis ;)
Mam nadzieję, że udało mi się trochę przybliżyć zagadnienie opóźnienia Shapiro. Jeśli coś jest niejasne, zapraszam do komentowania. Do następnego razu!