2026. szeptember 6., vasárnap

Szimetrikus szimulált fundamentál plane pythonban

A fundamentális sík (fundamental plane) a galaxisok, különösen az elliptikus galaxisok tulajdonságai (például az effektív sugár, a felületi fényesség és a centrális diszperziós sebesség) közötti háromdimenziós összefüggés.Az alábbi Python kód egy szintetikus (szimulált) adatbázison mutatja be a fundamentális sík illesztését lineáris regresszió segítségével, majd vizualizálja azt egy 3D-s grafikonon.
-----------
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from mpl_toolkits.mplot3d import Axes3D

# 1. Szintetikus adatok generálása (Elliptikus galaxisok tulajdonságai)
# log_sigma: log10(centrális sebességdiszperzió)
# mu_e: effektív felületi fényesség
# log_R_e: log10(effektív sugár) -> Ezt fogjuk jósolni a sík egyenlete alapján
np.random.seed(42)
n_samples = 100

log_sigma = np.random.normal(2.1, 0.15, n_samples)
mu_e = np.random.normal(22.0, 1.0, n_samples)

# A fundamentális sík elméleti összefüggése: log(R_e) = a * log(sigma) + b * mu_e + c
# Valós csillagászati értékek kb: a = 1.2, b = 0.3
a_true, b_true, c_true = 1.2, 0.32, -8.5
log_R_e = a_true * log_sigma + b_true * mu_e + c_true + np.random.normal(0, 0.05, n_samples)

# 2. Modell illesztése (Lineáris regresszió)
X = np.column_stack((log_sigma, mu_e))
y = log_R_e

model = LinearRegression()
model.fit(X, y)

a_fit, b_fit = model.coef_
c_fit = model.intercept_

print(f"Illesztett egyenlet: log(R_e) = {a_fit:.2f} * log(sigma) + {b_fit:.2f} * mu_e + {c_fit:.2f}")

# 3. 3D Vizualizáció
fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection='3d')

# Adatpontok kirajzolása
ax.scatter(log_sigma, mu_e, log_R_e, color='blue', alpha=0.6, label='Galaxisok')

# Az illesztett sík kiszámítása a grafikonhoz
sigma_range = np.linspace(log_sigma.min(), log_sigma.max(), 10)
mu_range = np.linspace(mu_e.min(), mu_e.max(), 10)
Sigma_grid, Mu_grid = np.meshgrid(sigma_range, mu_range)
R_e_grid = a_fit * Sigma_grid + b_fit * Mu_grid + c_fit

# Sík kirajzolása
ax.plot_surface(Sigma_grid, Mu_grid, R_e_grid, color='red', alpha=0.3, rstride=100, cstride=100)

# Tengelyek feliratozása
ax.set_xlabel('log $\sigma$ (Sebességdiszperzió)')
ax.set_ylabel('$\mu_e$ (Felületi fényesség)')
ax.set_zlabel('log $R_e$ (Effektív sugár)')
ax.set_title('A galaxisok fundamentális síkja')
ax.legend()

plt.show()

---------------


Nincsenek megjegyzések:

Megjegyzés küldése