プログラムマニュアル: D:/git/sphinx/tkProg/source/tiny_simulations/relativity.py

プログラムの動作

本プログラムは、特殊相対性理論におけるローレンツ変換を3次元グラフで視覚化するシミュレーションツールです。

静止系(観測者の座標系)と、一定の速度で移動する運動系の座標軸を描画し、さらに静止系に配置された長方形が運動系からどのように見えるかをプロットします。これにより、長さの収縮(ローレンツ収縮)や同時性の相対性といった相対論的効果を直観的に理解することができます。

原理

本プログラムでは、光速を \(c = 1\) とした単位系を採用し、特殊相対性理論におけるローレンツ変換の公式を用いています。

静止系の座標を \((x, y, t)\) 、運動系の座標を \((x', y', t')\) とします。運動系は静止系に対して \(x\) 軸方向に相対速度 \(v\) で移動していると仮定します。このとき、ローレンツ変換は以下の数式で表されます。

\[ x' = \gamma (x - v t) \]
\[ y' = y \]
\[ t' = \gamma (t - v x) \]

ここで、ローレンツ因子 \(\gamma\) は以下の式で計算されます。

\[ \gamma = \frac{1}{\sqrt{1 - v^2}} \]

本プログラムでは、角度 \(\theta = 60^\circ\) を用いて速度を \(v = \cos(\theta)\) として定義しています。原点から \((1, 1, 1)\) にシフトした位置に存在する長方形の各頂点に対してこのローレンツ変換を適用し、3次元空間上に静止系と運動系のそれぞれの状態を描画しています。

必要な非標準ライブラリとインストール方法

本プログラムでは、数値計算とグラフ描画のために以下の非標準ライブラリを使用しています。

  • numpy

  • matplotlib

これらのライブラリは、以下のコマンドを用いてインストールすることができます。

pip install numpy matplotlib

必要な入力ファイル

本プログラムの実行に際して、外部からの入力ファイルは必要ありません。

すべてのパラメータ(角度、速度、長方形のサイズや初期位置など)は、ソースコード内に直接記述されています。

生成される出力ファイル

本プログラムは、実行時に画面上に3次元グラフのウィンドウ(GUI)を表示します。

そのため、実行によって自動的に保存される出力ファイルはありません。グラフを画像ファイルとして保存したい場合は、表示されたMatplotlibのウィンドウ内の保存ボタン(フロッピーディスクのアイコン)を手動でクリックして任意の場所に保存してください。

コマンドラインでの使用例 (Usage)

プログラムを実行するための基本的なコマンドラインの構文は以下の通りです。実行時におけるコマンドライン引数は必要ありません。

python D:/git/sphinx/tkProg/source/tiny_simulations/relativity.py

コマンドラインでの具体的な使用例

コマンドプロンプトまたはターミナルを開き、以下のコマンドを入力して実行します。

python D:/git/sphinx/tkProg/source/tiny_simulations/relativity.py

実行結果として、以下のような動作が行われます。

  1. 画面に「長方形を (1,1,1) にシフト+座標軸表示 (θ=60°, v/c=0.50)」というタイトルの3次元グラフウィンドウが開きます。

  2. グラフ内には、青色系の実線・破線で示された静止系の座標軸 \((x, y, t)\) と、赤色系の実線・破線で示された運動系の座標軸 \((x', y', t')\) が描画されます。

  3. 指定座標 \((1, 1, 1)\) にシフトされた静止系の長方形(青線)と、それがローレンツ変換された運動系の歪んだ長方形(赤線)が表示され、空間と時間の混ざり合いや相対論的効果を視覚的に確認できます。