在观察者之间换算的一条总规则
到目前为止,每个惊奇——时间膨胀、长度收缩、钟的错位——都来自各自的一个小小思想实验。洛伦兹变换把它们全部收拢成一条总规则。把一个事件在*你*这里测得的位置和时间告诉它,再告诉它一位朋友正以速度 v 从你身边滑过,它就会交还出*那位朋友*为同一个事件测得的位置和时间。之前的每一个结论,都只是这一条公式的某个特例罢了。
You measure an event at position x, time t.
A friend glides past in the +x direction at speed v.
They measure the SAME event at x', t':
x' = gamma * ( x - v * t )
t' = gamma * ( t - v * x / c^2 )
with gamma = 1 / sqrt(1 - v^2/c^2)
(Old common sense said simply x' = x - v*t and t' = t.
That is what you get when v is tiny, so gamma -> 1.)速度不能简单相加——而光永远胜出
这里有个谜题,总规则必须解开。你在一列时速 0.6c 的火车上,朝前方以相对火车 0.6c 的速度射出一颗球。旧算术说 0.6c + 0.6c = 1.2c——比光还快!这不可能对。洛伦兹变换用相对论速度叠加取代了简单的相加:
Train moves at u = 0.6c. Ball thrown at w = 0.6c (relative to train).
Ground speed is NOT u + w, but:
u + w 0.6c + 0.6c 1.2c
V = ------------- = ----------------- = ------ = 0.882c
1 + u*w/c^2 1 + (0.6)(0.6) 1.36
Now shine a flashlight instead (w = c):
u + c 0.6c + c 1.6c
V = ----------- = -------------- = ------ = c
1 + u*c/c^2 1 + 0.6 1.6
Light comes out at c. It always does.双生子佯谬:到底谁老得慢?
两个双胞胎,爱丽丝和鲍勃。爱丽丝乘火箭高速飞向一颗恒星又返回;鲍勃留在家里。时间膨胀说爱丽丝运动的钟走得慢,所以她回来时比鲍勃更年轻。可是——这正是著名的双生子佯谬——从爱丽丝的座位看,是*鲍勃*飞走又飞回,那不该是*鲍勃*更年轻吗?两人面对面站着时,不可能都对。总有一个人真的更年轻。
看清谁胜出的最干净办法是固有时——沿某条路径携带的真实钟所记录的时间。鲍勃穿越时空的路径,是从分别到重逢的一段笔直行程。爱丽丝的路径则在中途拐了弯。在连接同样两个相会事件的所有路径中,笔直的那一条记录的时间总是最多。所以待在家的鲍勃老得更多;走了弯路的爱丽丝回来时更年轻。没有佯谬——只是同样两点之间两条不同的路线而已。
给这趟旅程算上数字
我们把它具体化。爱丽丝以 v = 0.8c 飞往一颗 8 光年外的恒星再返回。按鲍勃的钟,这趟往返耗时 16 / 0.8 = 20 年。在 0.8c 时,洛伦兹因子 gamma = 1/sqrt(1 - 0.64) = 1.667,所以爱丽丝随身钟记录的——她的固有时——只有 20 / 1.667 = 12 年。这两个数字都是事实,他们重新拥抱的那一刻就能拿来对照。
import math
v = 0.8 # in units of c
dist = 8.0 # light-years to the star (one way)
gamma = 1 / math.sqrt(1 - v**2)
bob_years = 2 * dist / v # stay-at-home, the straight path
alice_years = bob_years / gamma # traveler's proper time
print(f"gamma = {gamma:.3f}") # gamma = 1.667
print(f"Bob ages = {bob_years:.1f} years") # Bob ages = 20.0 years
print(f"Alice ages = {alice_years:.1f} years") # Alice ages = 12.0 years
print(f"Difference = {bob_years - alice_years:.1f} years") # 8.0 years