書籍『ピタゴラスの定理でわかる相対性理論』の補講

第17回特殊相対論から一般相対論へPythonによる幾何計算

プシケー 私の名前はプシケーです。ピタゴラスの定理でわかる相対性理論の読者の皆様には18年ぶりです。この本は特殊相対性理論をテーマとして多くの読者の心をとらえたようです。1年半ほど前に幾何で見える必ずわかる一般相対性理論を見城・佐野の両教授が出版しました。ドイツ語の副題Über Einstein hinausは「アイシュタインを超えて」という意味ですよ。ピタゴラスの定理の大きな飛躍によって一般相対性理論の時空の幾何学ができたのです。そして2024年5月には増刷されました。


図1
(1)の解としての直線と円

筆者の一人、見城がプシケーに促されての導入解説をいたします。

『幾何で見える必ずわかる一般相対性理論』は、幾何学は直線とは何かから始まります。その直線が座標系では、次のようなピタゴラスの3平方の定理を形で表せることを私どもが発見したことから始まります。

このように、逆数を含む微分方程式の形であり、3平方定理です。

古代ギリシャには座標の概念はもとより微分方程式はありませんでした。ここに深遠な意味が宿されているように思えます。この方程式は直角三角形の定理の形でありながら、その一般解は直線であり、一つの特異解として円があります。つまり、ユークリッドの平面幾何の3つの要素(直線・直角・円)がこの微分方程式に包含されているのです。

前の本では、ユークリッド平面の直角三角形の3辺の関係はですが、

  • 球面上では
  • 双曲面では

に変化しましたが、これについては今回も同じです。球面と双曲面は古典的な非ユークリッド幾何の世界です。

人間・万物が生息しながら眺めている宇宙は現実の非ユークリッド空間であり、これを象徴するのがユークリッド空間を特徴付ける(1)からの新たな逸脱です。それは右辺に項を加算するだけです:

これが一般相対性理論の幾何の入り口ともいえる数式です。すると、何がどうなるのでしょうか? 光が太陽の重力によって曲げられます。つまり直線が曲がるのです。では、それは何を意味するのでしょうか?

(2)を次のように変形すると曲がった時空の線が姿をすこし現します。

本書がアインシュタインを超えているのはこのあたりです。アインシュタインは1915年11月に水星の軌道が歳差運動をすることの説明のために数式を操って(2)に近い形にたどり着いたのですがゴタゴタとしていました。(3)と(1)式自体はもとより、偉大なこの物理学者も(2)の深奥にまでは気づかなかったようです。

本書でも、ここに至るまでの長い道程には複雑な数学がありました。ではとは何か? それは時間を含めた4次元空間の計量(metric)というものです。相対性理論は時間と3次元空間を合わせた4次元の幾何ですが、(2)や(3)は2次元平面の幾何の姿を呈示しています。時間も空間の本質も(3)の左辺第2項に押し込められているのです:

  • 時間的計量:
  • 空間的計量:

ではαとは何ぞや? それはシュバルトシルト半径と呼ばれる定数です。私どものお天道様である太陽の場合には

  • 質量は
  • 重力係数
  • そして光の速度ではは3kmぐらいです。それは、太陽の半径がその程度場合にはブラックホールになるというようなものです。ブラックホールになると、光もそこに吸い込まれると出てきません。

では太陽の周りをまわる惑星の軌道はどうなのでしょうか? それは右辺にの一乗項の追加によって次のように表わされます。

のときには、この方程式の解は楕円、放物線あるいは双曲線になるので、ニュートン力学の方程式であることが分かります。は惑星の角運動量に関係します。ではの一般の場合、つまり一般相対論ではどうなるのでしょうか? 歳差運動やブラックホールへの突入などさまざまの計算事例を見るだけでなく、読者はPythonで軌道計算することができます。

ここでは、Google Collaboratoryを使った実行手順をご紹介します。ノートブックの新規作成をし、ダウンロードしたソースコードをコピペするだけというとてもシンプルなやり方です。

具体的には次のステップになります。

  1. https://colab.research.google.com/?hl=jaへアクセスします。
    開いたら、左下にある「ノートブックを新規作成する」をクリックします。
図2
  1. 「コードセルを挿入」をクリックします。
図3
  1. Pythonコードを貼り付けます。
図4
  1. 左側にある△マークをクリックすると、実行することができます。
図5
  1. もしグラフが下に表示されない場合は、次を試してみてください。
図6
  1. 出力結果
図7
  1. [length]の値を11.99にすると、296ページの図のように、真上に隙間がある図形を描くことができます。
図8
図9

ここに出てくるサンプルの最初の13行は下記のとおりです。第3–10行が初期値の設定です。

このまま実行する(左上の▶をクリック)とp.296のコードが計算されて画面下に図10A.2現れます。これはとしてからの直前までの惑星の軌道計算です。相対性理論による計算です。とすると、ニュートン力学の計算になって同じ軌道を6回描くのでupto = 3.14159 * 1.99とします。

さて、p.348に図12.14として歳差運動の事例があります。それは9周の描画です。周回数を50回にしてSlope = −0.6にした事例が下図(a)です。惑星は基点に戻りました。(b)はSlope = −1.0にして46周で基点に戻るサンプルです。ここでPythonに詳しい読者へのお願いです。線の色や太さなどの微調整を組み込んで宇宙の幾何模様を制作してほしいのです。

import numpy as np
import matplotlib.pyplot as plt

A = 1                  # 下表参照
B = 1                  #  〃
R0 = 0.6               # rの初期値設定
q = 0.1                # 角運動量設定
Rs = 0.02              # シュバルツシルト半径設定
df = 0.005             # 角度刻み幅 Δϕ
s = 0                  # 初期勾配設定
upto = 3.14159 * 11.99 # ϕ=何πまで計算する
ee = Rs / (q ** 2) / 2
uu = 1 / R0            # uの初期値
integ = 0              # 積分初期値
A B
相対論光跡 1 0
ニュートン惑星 0 1
相対論惑星 1 1
import numpy as np
import matplotlib.pyplot as plt

A=1; B=1          # 上表参照
Rs= 1             # @param {type:"raw"} シュバルツシルト半径設定
R0 = 30           # @param {type:"raw"} rの初期値設定
qq = 2.48         # @param {type:"raw"} 角運動量の設定
df = 0.01         # @param {type:"raw"} 角度刻み幅 Δϕ
Slope = 0        # @param {type:"raw"} 初期勾配設定
length = 11.99   # @param {type:"raw"}何πまで計算する?
Pi = np.pi       # Pi=3.14.159…を自動設定
upto = Pi*length
Sc = 1.1          # @param {type:"raw"} 画面のスケール設定;計算・描画の結果をみて再設定する
図(a)
(a) RS = 0.8, R0 =150, qq = 8, Slope= − 0.6, length = 100, df =0.006
図(b)
(b) 設定を変えてlength = 92で基点に戻るサンプル

おすすめ記事

記事・ニュース一覧