Skip to content

Commit e35e581

Browse files
authored
Add files via upload
1 parent 4b96655 commit e35e581

4 files changed

Lines changed: 98 additions & 0 deletions

File tree

66.6 KB
Loading
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import numpy as np
2+
import matplotlib.pyplot as plt
3+
4+
# 1. 宇宙論的背景の設定
5+
z = np.linspace(0.0, 1.5, 100)
6+
7+
# 2. CSGTモデルによる w(z) の予測
8+
# 未来(z=-1)からの情報勾配が z=0.7 付近で最大化すると仮定
9+
def csgt_w_model(z_val):
10+
# ベースは ΛCDM (-1)
11+
base_w = -1.0
12+
# 未来からのバックプロパゲーションによる Phantom Crossing 項
13+
# z=0.7付近で w を押し下げる
14+
bridge_effect = -0.15 * np.exp(-(z_val - 0.7)**2 / 0.08)
15+
return base_w + bridge_effect
16+
17+
w_csgt = csgt_w_model(z)
18+
19+
# 3. 実際の観測データ (DESI DR1 を模した代表的なデータ点)
20+
# redshift, w_value, error_bar
21+
obs_z = np.array([0.15, 0.51, 0.71, 0.93, 1.15])
22+
obs_w = np.array([-0.98, -1.05, -1.12, -1.02, -0.99]) # Phantom Crossing の傾向を反映
23+
obs_err = np.array([0.05, 0.07, 0.08, 0.06, 0.05])
24+
25+
# 可視化
26+
plt.figure(figsize=(10, 7))
27+
28+
# CSGTモデル曲線
29+
plt.plot(z, w_csgt, color='crimson', label='CSGT Model (Information Gradient)', linewidth=2.5)
30+
31+
# 観測データ点
32+
plt.errorbar(obs_z, obs_w, yerr=obs_err, fmt='o', color='black',
33+
capsize=5, label='Mock DESI DR1 Data (Reflected Trends)')
34+
35+
# 境界線
36+
plt.axhline(-1, color='gray', linestyle='--', alpha=0.6, label='$\Lambda$CDM Limit ($w=-1$)')
37+
plt.fill_between(z, -1.5, -1, color='blue', alpha=0.05, label='Phantom Domain ($w < -1$)')
38+
39+
plt.title('Fitting CSGT to DESI DR1: The Phantom Crossing Hypothesis', fontsize=14)
40+
plt.xlabel('Redshift $z$', fontsize=12)
41+
plt.ylabel('Dark Energy Equation of State $w(z)$', fontsize=12)
42+
plt.gca().invert_xaxis() # 左に向かって過去、右に向かって未来
43+
plt.ylim(-1.3, -0.8)
44+
plt.legend(loc='lower left')
45+
plt.grid(True, which='both', linestyle=':', alpha=0.5)
46+
47+
plt.show()

toy model/Simulation.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import numpy as np
2+
import matplotlib.pyplot as plt
3+
4+
# 宇宙のパラメータ設定
5+
Z_START = 2.0 # 過去 (赤方偏移)
6+
Z_END = -1.0 # 未来 (28.7 Gyr 先を想定)
7+
STEPS = 500
8+
TARGET_Z = 0.7 # 星乃と議論した Phantom Crossing の特異点
9+
10+
def simulate_csgt():
11+
z_axis = np.linspace(Z_START, Z_END, STEPS)
12+
13+
# 1. 情報ダイバージェンス D(z) の定義
14+
# 未来の完成図 (P_future) と現在の分布 (P_present) の距離
15+
# z=2 (過去) では大きく、z=-1 (未来) で 0 に収束する
16+
d_z = np.exp(z_axis) / np.exp(Z_START)
17+
18+
# 2. 情報勾配による「復元力」 (Self-Correcting Potential)
19+
# 未来からのバックプロパゲーション。z=0.7付近で影響が最大化するよう設計
20+
restoring_force = -np.gradient(d_z) * np.exp(-(z_axis - TARGET_Z)**2 / 0.1)
21+
22+
# 3. 暗エネルギーの状態方程式 w(z) の算出
23+
# 標準的な -1 に対し、情報勾配の復元力が加わることで w < -1 (Phantom) が出現
24+
w_z = -1.0 + restoring_force * 5.0 # 係数は可視化用の調整
25+
26+
return z_axis, d_z, w_z
27+
28+
z, d, w = simulate_csgt()
29+
30+
# 可視化
31+
fig, ax1 = plt.subplots(figsize=(10, 6))
32+
33+
color = 'tab:blue'
34+
ax1.set_xlabel('Redshift (z) [Right is Future]')
35+
ax1.set_ylabel('Information Divergence D(z)', color=color)
36+
ax1.plot(z, d, color=color, label='Information Divergence (KLD)')
37+
ax1.tick_params(axis='y', labelcolor=color)
38+
ax1.invert_xaxis() # 過去から未来へ
39+
40+
ax2 = ax1.twinx()
41+
color = 'tab:red'
42+
ax2.set_ylabel('Equation of State w(z)', color=color)
43+
ax2.plot(z, w, color=color, linewidth=2, label='Dark Energy w(z)')
44+
ax2.axhline(-1, color='gray', linestyle='--', label='LCDM Limit (w=-1)')
45+
ax2.fill_between(z, w, -1, where=(w < -1), color='red', alpha=0.3, label='Phantom Crossing')
46+
ax2.tick_params(axis='y', labelcolor=color)
47+
48+
plt.title('CSGT Simulation: Information Gradient as a Restoring Force')
49+
fig.tight_layout()
50+
plt.legend(loc='upper left')
51+
plt.show()

toy model/simulation result.png

63.2 KB
Loading

0 commit comments

Comments
 (0)