JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

洛伦兹变换与双生子佯谬

一条总规则,在两位观察者之间换算空间与时间;由它自然导出永远追不上光速的速度叠加,并干净利落地化解著名的双生子佯谬。

在观察者之间换算的一条总规则

到目前为止,每个惊奇——时间膨胀长度收缩、钟的错位——都来自各自的一个小小思想实验。洛伦兹变换把它们全部收拢成一条总规则。把一个事件在*你*这里测得的位置和时间告诉它,再告诉它一位朋友正以速度 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.)
洛伦兹变换。注意 t' 依赖于 x:正是这个含 x 的项,使远处的钟失去同步。

速度不能简单相加——而光永远胜出

这里有个谜题,总规则必须解开。你在一列时速 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.
下方的分母悄悄驯服了每一次叠加,使结果永不超过 c——而只要其中一项是 c,结果就恰好是 c。

双生子佯谬:到底谁老得慢?

两个双胞胎,爱丽丝和鲍勃。爱丽丝乘火箭高速飞向一颗恒星又返回;鲍勃留在家里。时间膨胀说爱丽丝运动的钟走得慢,所以她回来时比鲍勃更年轻。可是——这正是著名的双生子佯谬——从爱丽丝的座位看,是*鲍勃*飞走又飞回,那不该是*鲍勃*更年轻吗?两人面对面站着时,不可能都对。总有一个人真的更年轻。

看清谁胜出的最干净办法是固有时——沿某条路径携带的真实钟所记录的时间。鲍勃穿越时空的路径,是从分别到重逢的一段笔直行程。爱丽丝的路径则在中途拐了弯。在连接同样两个相会事件的所有路径中,笔直的那一条记录的时间总是最多。所以待在家的鲍勃老得更多;走了弯路的爱丽丝回来时更年轻。没有佯谬——只是同样两点之间两条不同的路线而已。

给这趟旅程算上数字

我们把它具体化。爱丽丝以 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
爱丽丝回来时比她的双胞胎年轻 8 岁——这是算出来的,而粒子钟与 GPS 每天都在精神上印证着它。