第1回で描いた「光が遅くなる宇宙」を、今回は自分の手で動かす
第1回で、宇宙膨張を「光速がゆっくり遅くなる」と読み替えました。式はきれいでしたが、式を「眺める」のと「動かす」のは別の理解です。今回は、その宇宙を計算機で一歩ずつ進めてみます。難しい数学は要りません。必要なのは「前の値に少し足して、次の値を作る」という足し算のくり返しだけ。しかもこのページの図は飾りではなく、あなたのブラウザがその場で計算した本物です。スライダーを動かして、宇宙を回してみてください。
第1回の宇宙のルールは \(c(t)=\dfrac{c_0 t_0}{t}\)。光がどこまで進んだかは、速さ×時間を積み上げた \(D=\displaystyle\int c(t)\,dt\) でした。積分と聞くと身構えますが、計算機にとっては「小さな時間 \(\Delta t\) ずつ、進んだ距離を足していく」だけです。これを漸化式(前の値から次の値を作る式)で書くと ──
「時刻を \(\Delta t\) だけ進める。その間に光は \(c(t_n)\times\Delta t\) だけ進むから、距離に足す」。これを何千回もくり返すのは人間には退屈ですが、計算機の得意技です。プログラムにするとたった数行。
このプログラムの心臓は \(c = c_0 t_0 / t\) の一行。\(t\) が小さい(=宇宙が若い)ほど \(c\) が大きくなり、序盤で距離をぐんぐん稼ぐ。それが「昔の光は遠くまで届いた」の正体でした。次の図で、実際にそうなるか見てみましょう。
まず光速そのもの \(c(t)=c_0t_0/t\) を、宇宙の年齢に対してプロットします。下のスライダーは時間きざみ \(\Delta t\)。動かすと、なめらかな曲線をどれくらい細かく追えるかが変わります。
左側(昔)で曲線が急に跳ね上がっているのが、「若い宇宙では光が速かった」。きざみを粗くすると、この急な部分を点が追いきれずに、曲線から外れていくのが見えるはずです ── これが数値計算の宿命で、STEP 04 の話につながります。
次に、STEP 01 のプログラムが足し上げた距離 \(D\)(=光が届いた地平線)を、時間に対してプロットします。第1回で「\(\int c_0t_0/t\,dt\) は対数的に発散する=いくらでも大きくなる」と言いました。それを計算機の足し算で確かめます。
スライダーは「いつから計算を始めるか」。もっと早い時刻(=宇宙のより若いころ)から足し始めると、序盤で光速が巨大なので、総距離がぐんと増えるのが分かります。始まりに近づくほど無限に増えていく ── これが「対数発散」で、宇宙のどんなに離れた点も昔は連絡を取り合えた、という第1回の結論の数値版です。
ここが今回のいちばん面白いところです。図1で見たように、序盤(昔)は光速が急に変化するので、そこを追うにはきざみ \(\Delta t\) を細かくしないといけない。でも後半はゆるやかなので、細かいきざみは無駄。全体を同じ細かさで計算すると、序盤に合わせて全区間を細かくする羽目になり、とても遅くなります。
そこで、時間の「ものさし」を貼り替えます。ふつうの時間 \(t\) の代わりに \(u=\ln t\)(\(t\) の対数)を新しい時間として使う。すると \(t=e^u\) で、光速は
$$c = \frac{c_0 t_0}{t} = c_0 t_0\, e^{-u}$$となり、\(u\) に対してはなめらかな指数関数。急な跳ね上がりが消えて、全区間をほぼ同じ細かさで追えるようになる。同じ精度が、ずっと少ないステップ数で出せる ── これが「変数変換で計算が速くなる」の正体です。下の図で、同じ物理を \(t\) 軸と \(u=\ln t\) 軸の両方で見比べてください。
点の数を減らしてみてください。左(ふつうの時間)では、少ない点だと序盤の急カーブを取りこぼして曲線から大きくずれる。でも右(対数時間)では、同じ少なさでも曲線をきれいに追えている。情報を1ビットも捨てずに、ただ“ものさし”を貼り替えただけで、計算が楽になった ── これが第1回で触れた「近似じゃない高速化」の、目で見える実物です。
「変数を変えると速くなる」は、問題がその変数で素直になるときだけ効きます。もともと全区間で一様な問題は、貼り替えても速くなりません(すでに素直だから)。今回うまくいったのは、\(c\cdot t=\text{一定}\) の宇宙が「序盤だけ急」という偏りを持っていたから。魔法ではなく、問題の偏りに合わせて“ものさし”を選ぶ、という技です。
連続の式 \(\int c\,dt\) を、計算機の言葉(漸化式 \(D_{n+1}=D_n+c(t_n)\Delta t\))に直して、一歩ずつ足し上げた。若い宇宙で光速が跳ね上がり、光の届いた距離が対数的に伸び続ける ── 第1回の結論が、目の前のグラフで再現されました。
そして今回の芯は、\(u=\ln t\) へのものさしの貼り替え。情報を捨てずに、ただ座標を変えるだけで、急変の計算が桁で楽になる。第1回で「\(c\cdot t=\text{一定}\) は計算が楽」と言ったのは、この賢い座標選びのことでした。わかりやすい記法は、しばしばそのまま速い記法でもある ── それが今回、手を動かして見えたことです。
印刷 / PDF 化:⌘+P(Windows は Ctrl+P)。画面ではスライダーで図が再計算され、「答えを見る」で解答が開きます。