Гравитация.

Тема в разделе "ФИЗИКА", создана пользователем Ahimov, 1 сен 2026.

  1. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    844
    Давно хотел посмотреть наглядно систему планет, теперь просто. В случае локальности система должна развалиться(ТТР: нелокальност - условие стабильности структуры).

    А. Гравитация нелокальна(мгновенна: связь = отношение).
    Б. Локальна, ограничена некоторой скоростью(C).

    Rel
    - дипсик :tease:

    Тест на нереал параметрах, проверить метод моделирования бям'ом.

    Дипсик собирает некий код, который запускается тут. Но долго оно майнит интерпретирует..

    _sim4.png

    Код (Text):
    1.  
    2. import numpy as np
    3. import matplotlib.pyplot as plt
    4. from matplotlib.animation import FuncAnimation
    5. from IPython.display import HTML, display
    6.  
    7. # ============================================================
    8. # НОРМИРОВАННАЯ СИСТЕМА ЕДИНИЦ (МАЛЫЙ ШАГ ДЛЯ СТАБИЛЬНОСТИ)
    9. # ============================================================
    10. G = 1.0
    11. C = 0.3                     # скорость гравитации (задержка ~30% периода)
    12. DT = 0.001                  # МАЛЕНЬКИЙ ШАГ для стабильности
    13. STEPS = 15000               # 15000 * 0.001 = 15 единиц времени (~2.4 периода)
    14. N = 5
    15.  
    16. # Массы
    17. masses = np.array([1.0, 0.05, 0.05, 0.05, 0.05])  # звёзды очень лёгкие
    18. masses = masses / masses.sum() * 10.0
    19.  
    20. # Начальные условия
    21. radii = np.array([0.0, 1.0, 1.5, 2.0, 2.5])
    22. angles = np.array([0.0, 0.0, np.pi/3, 2*np.pi/3, np.pi])
    23.  
    24. pos = np.zeros((N, 2))
    25. vel = np.zeros((N, 2))
    26.  
    27. # Центр
    28. pos[0] = [0.0, 0.0]
    29. vel[0] = [0.0, 0.0]
    30.  
    31. # Звёзды
    32. for i in range(1, N):
    33.     r = radii[i]
    34.     phi = angles[i]
    35.     pos[i, 0] = r * np.cos(phi)
    36.     pos[i, 1] = r * np.sin(phi)
    37.     v_circ = np.sqrt(G * masses[0] / r)
    38.     vel[i, 0] = -pos[i, 1] / r * v_circ
    39.     vel[i, 1] = pos[i, 0] / r * v_circ
    40.  
    41. # Центр масс
    42. com_pos = np.sum(masses[:, None] * pos, axis=0) / masses.sum()
    43. com_vel = np.sum(masses[:, None] * vel, axis=0) / masses.sum()
    44. pos = pos - com_pos
    45. vel = vel - com_vel
    46.  
    47. print("=" * 60)
    48. print("СТАБИЛЬНАЯ СИМУЛЯЦИЯ (МАЛЫЙ ШАГ)")
    49. print("=" * 60)
    50. print(f"  DT = {DT}, шагов = {STEPS}, время = {STEPS*DT:.2f}")
    51. print(f"  Период звезды 1: {2*np.pi*radii[1] / np.linalg.norm(vel[1]):.2f}")
    52. print(f"  Шагов на период: {int((2*np.pi*radii[1] / np.linalg.norm(vel[1])) / DT)}")
    53. print(f"  C = {C}, задержка на радиусе 1: {1/C:.2f}")
    54. print("=" * 60)
    55.  
    56. # ============================================================
    57. # ФУНКЦИИ УСКОРЕНИЙ
    58. # ============================================================
    59. def accel_instant(pos, masses):
    60.     acc = np.zeros_like(pos)
    61.     for i in range(N):
    62.         for j in range(N):
    63.             if i == j: continue
    64.             dr = pos[j] - pos[i]
    65.             r = np.linalg.norm(dr)
    66.             if r < 1e-8: continue
    67.             acc[i] += G * masses[j] * dr / r**3
    68.     return acc
    69.  
    70. def accel_retarded(pos_now, history, step, masses):
    71.     acc = np.zeros_like(pos_now)
    72.     for i in range(N):
    73.         for j in range(N):
    74.             if i == j: continue
    75.             dr = pos_now[j] - pos_now[i]
    76.             r = np.linalg.norm(dr)
    77.             if r < 1e-8: continue
    78.             delay_steps = int(r / C / DT)
    79.             delay_steps = max(1, min(delay_steps, step))
    80.             idx = max(0, step - delay_steps)
    81.             pj_ret = history[idx][j]
    82.             dr_ret = pj_ret - pos_now[i]
    83.             rr = np.linalg.norm(dr_ret)
    84.             if rr < 1e-8: continue
    85.             acc[i] += G * masses[j] * dr_ret / rr**3
    86.     return acc
    87.  
    88. # ============================================================
    89. # ЗАПУСК
    90. # ============================================================
    91. print("\nСимуляция мгновенной гравитации...")
    92. p = pos.copy(); v = vel.copy()
    93. traj_i = [p.copy()]
    94. a = accel_instant(p, masses)
    95. for step in range(STEPS):
    96.     p = p + v * DT + 0.5 * a * DT**2
    97.     na = accel_instant(p, masses)
    98.     v = v + 0.5 * (a + na) * DT
    99.     a = na
    100.     traj_i.append(p.copy())
    101. traj_i = np.array(traj_i)
    102. print(f"  ✓ Завершено: {len(traj_i)} шагов")
    103.  
    104. print(f"\nСимуляция локальной гравитации (c={C})...")
    105. p = pos.copy(); v = vel.copy()
    106. traj_r = [p.copy()]
    107. hist = [p.copy()]
    108. for step in range(1, STEPS+1):
    109.     a = accel_retarded(p, hist, step, masses)
    110.     p = p + v * DT + 0.5 * a * DT**2
    111.     v = v + a * DT
    112.     traj_r.append(p.copy())
    113.     hist.append(p.copy())
    114. traj_r = np.array(traj_r)
    115. print(f"  ✓ Завершено: {len(traj_r)} шагов")
    116.  
    117. # ============================================================
    118. # РАДИУСЫ
    119. # ============================================================
    120. r1_i = np.sqrt(np.sum(traj_i[:, 1, :]**2, axis=1))
    121. r1_r = np.sqrt(np.sum(traj_r[:, 1, :]**2, axis=1))
    122.  
    123. # ============================================================
    124. # ВИЗУАЛИЗАЦИЯ
    125. # ============================================================
    126. colors = ['#ffd43b', '#ff6b6b', '#4dabf7', '#69db7c', '#ff922b']
    127. fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(16, 7))
    128.  
    129. for ax, traj, title in zip([ax1, ax2], [traj_i, traj_r],
    130.                            ['МГНОВЕННАЯ (НЕЛОКАЛЬНАЯ)\nИДЕАЛЬНЫЕ ОРБИТЫ',
    131.                             f'ЛОКАЛЬНАЯ (c={C})\nСПИРАЛИ РАСПАДА']):
    132.     ax.set_xlim(-3.5, 3.5)
    133.     ax.set_ylim(-3.5, 3.5)
    134.     ax.set_aspect('equal')
    135.     ax.set_title(title, fontsize=14, fontweight='bold')
    136.     ax.grid(True, alpha=0.15, linestyle='--')
    137.     ax.set_facecolor('#0a0a1a')
    138.     ax.set_xlabel('x')
    139.     ax.set_ylabel('y')
    140.  
    141.     # Траектории
    142.     for i in range(N):
    143.         points = traj[:, i, :]
    144.         step_plot = max(1, int(len(points) / 1000))
    145.         for t in range(0, len(points)-1, step_plot):
    146.             ax.plot(points[t:t+2, 0], points[t:t+2, 1],
    147.                    color=colors[i], alpha=0.3, linewidth=0.8)
    148.  
    149.     # Старт
    150.     ax.scatter(traj[0, :, 0], traj[0, :, 1],
    151.                color='white', s=150, marker='*', edgecolors='black', linewidth=1, zorder=10)
    152.  
    153.     # Финиш
    154.     ax.scatter(traj[-1, :, 0], traj[-1, :, 1],
    155.                c=colors, s=masses*40, edgecolors='white', linewidth=1.5, zorder=10)
    156.  
    157. plt.suptitle('СРАВНЕНИЕ ГРАВИТАЦИОННЫХ МОДЕЛЕЙ\n(МАЛЫЙ ШАГ = СТАБИЛЬНОСТЬ)',
    158.              fontsize=16, fontweight='bold', color='white')
    159. plt.tight_layout()
    160. plt.show()
    161.  
    162. # ============================================================
    163. # ГРАФИК РАДИУСА
    164. # ============================================================
    165. fig2, ax = plt.subplots(figsize=(14, 5))
    166. ax.plot(r1_i, label='Мгновенная', color='#4dabf7', linewidth=2)
    167. ax.plot(r1_r, label=f'Локальная (c={C})', color='#ff6b6b', linewidth=2)
    168. ax.axhline(y=r1_i[0], color='white', linestyle='--', alpha=0.3)
    169. ax.set_xlabel('Шаг')
    170. ax.set_ylabel('Радиус звезды 1')
    171. ax.set_title('Эволюция радиуса')
    172. ax.legend()
    173. ax.grid(True, alpha=0.2)
    174. ax.set_facecolor('#0a0a1a')
    175. ax.tick_params(colors='white')
    176. plt.tight_layout()
    177. plt.show()
    178.  
    179. # ============================================================
    180. # АНИМАЦИЯ
    181. # ============================================================
    182. print("\nСоздание анимации...")
    183.  
    184. fig4, (ax1, ax2) = plt.subplots(1, 2, figsize=(16, 7))
    185.  
    186. for ax, traj, title in zip([ax1, ax2], [traj_i, traj_r],
    187.                            ['МГНОВЕННАЯ\nИДЕАЛЬНЫЕ ОРБИТЫ',
    188.                             f'ЛОКАЛЬНАЯ (c={C})\nСПИРАЛИ РАСПАДА']):
    189.     ax.set_xlim(-3.5, 3.5)
    190.     ax.set_ylim(-3.5, 3.5)
    191.     ax.set_aspect('equal')
    192.     ax.set_title(title, fontsize=14, fontweight='bold')
    193.     ax.grid(True, alpha=0.15, linestyle='--')
    194.     ax.set_facecolor('#0a0a1a')
    195.     ax.set_xlabel('x')
    196.     ax.set_ylabel('y')
    197.  
    198. lines1 = [ax1.plot([], [], color=colors[i], alpha=0.6, linewidth=1)[0] for i in range(N)]
    199. lines2 = [ax2.plot([], [], color=colors[i], alpha=0.6, linewidth=1)[0] for i in range(N)]
    200.  
    201. scat1 = ax1.scatter(traj_i[0, :, 0], traj_i[0, :, 1],
    202.                     s=masses*30, c=colors, edgecolors='white', linewidth=1.5, zorder=5)
    203. scat2 = ax2.scatter(traj_r[0, :, 0], traj_r[0, :, 1],
    204.                     s=masses*30, c=colors, edgecolors='white', linewidth=1.5, zorder=5)
    205.  
    206. info1 = ax1.text(0.02, 0.98, '', transform=ax1.transAxes, verticalalignment='top',
    207.                  color='white', fontsize=10, family='monospace',
    208.                  bbox=dict(boxstyle='round', facecolor='black', alpha=0.7))
    209. info2 = ax2.text(0.02, 0.98, '', transform=ax2.transAxes, verticalalignment='top',
    210.                  color='white', fontsize=10, family='monospace',
    211.                  bbox=dict(boxstyle='round', facecolor='black', alpha=0.7))
    212.  
    213. def update(frame):
    214.     start = max(0, frame - 500)
    215.     step = frame * 3
    216.     if step >= len(traj_i):
    217.         step = len(traj_i) - 1
    218.  
    219.     for i in range(N):
    220.         lines1[i].set_data(traj_i[start:step+1, i, 0], traj_i[start:step+1, i, 1])
    221.         lines2[i].set_data(traj_r[start:step+1, i, 0], traj_r[start:step+1, i, 1])
    222.  
    223.     scat1.set_offsets(traj_i[step, :, :])
    224.     scat2.set_offsets(traj_r[step, :, :])
    225.  
    226.     info1.set_text(f'Шаг: {step}\nR: {r1_i[step]:.3f}')
    227.     info2.set_text(f'Шаг: {step}\nR: {r1_r[step]:.3f}')
    228.  
    229.     return lines1 + lines2 + [scat1, scat2, info1, info2]
    230.  
    231. ani = FuncAnimation(fig4, update, frames=range(0, STEPS//3, 2), interval=30, blit=True)
    232. plt.close()
    233. display(HTML(ani.to_html5_video()))
    234.  
    235. print("\n" + "=" * 60)
    236. print("ГОТОВО!")
    237. print(f"  Мгновенная: радиус изменился на {(r1_i[-1]/r1_i[0]-1)*100:.2f}%")
    238. print(f"  Локальная:   радиус изменился на {(r1_r[-1]/r1_r[0]-1)*100:.2f}%")
    239. print("=" * 60)
    _sim5.png

    Код (Text):
    1. import numpy as np
    2. import matplotlib.pyplot as plt
    3. from matplotlib.animation import FuncAnimation
    4. from IPython.display import HTML, display
    5.  
    6. # ============================================================
    7. # ФИЗИЧЕСКИ КОРРЕКТНЫЕ ПАРАМЕТРЫ
    8. # ============================================================
    9. G = 1.0
    10. C = 0.5                     # скорость гравитации (задержка = 2 радиуса)
    11. DT = 0.0001                 # ОЧЕНЬ МАЛЕНЬКИЙ ШАГ (для точности)
    12. STEPS = 100000              # 100000 * 0.0001 = 10 единиц времени
    13. N = 5
    14.  
    15. # Массы
    16. masses = np.array([1.0, 0.05, 0.05, 0.05, 0.05])
    17. masses = masses / masses.sum() * 10.0
    18.  
    19. # Начальные условия (круговые орбиты)
    20. radii = np.array([0.0, 1.0, 1.5, 2.0, 2.5])
    21. angles = np.array([0.0, 0.0, np.pi/3, 2*np.pi/3, np.pi])
    22.  
    23. pos = np.zeros((N, 2))
    24. vel = np.zeros((N, 2))
    25.  
    26. pos[0] = [0.0, 0.0]
    27. vel[0] = [0.0, 0.0]
    28.  
    29. for i in range(1, N):
    30.     r = radii[i]
    31.     phi = angles[i]
    32.     pos[i, 0] = r * np.cos(phi)
    33.     pos[i, 1] = r * np.sin(phi)
    34.     v_circ = np.sqrt(G * masses[0] / r)
    35.     vel[i, 0] = -pos[i, 1] / r * v_circ
    36.     vel[i, 1] = pos[i, 0] / r * v_circ
    37.  
    38. # Центр масс
    39. com_pos = np.sum(masses[:, None] * pos, axis=0) / masses.sum()
    40. com_vel = np.sum(masses[:, None] * vel, axis=0) / masses.sum()
    41. pos = pos - com_pos
    42. vel = vel - com_vel
    43.  
    44. print("=" * 60)
    45. print("ФИЗИЧЕСКИ КОРРЕКТНАЯ СИМУЛЯЦИЯ")
    46. print("=" * 60)
    47. print(f"  DT = {DT}, шагов = {STEPS}, время = {STEPS*DT:.2f}")
    48. print(f"  Период звезды 1: {2*np.pi*radii[1] / np.linalg.norm(vel[1]):.2f}")
    49. print(f"  Шагов на период: {int((2*np.pi*radii[1] / np.linalg.norm(vel[1])) / DT)}")
    50. print("=" * 60)
    51.  
    52. # ============================================================
    53. # ФУНКЦИИ УСКОРЕНИЙ
    54. # ============================================================
    55. def accel_instant(pos, masses):
    56.     acc = np.zeros_like(pos)
    57.     for i in range(N):
    58.         for j in range(N):
    59.             if i == j: continue
    60.             dr = pos[j] - pos[i]
    61.             r = np.linalg.norm(dr)
    62.             if r < 1e-8: continue
    63.             acc[i] += G * masses[j] * dr / r**3
    64.     return acc
    65.  
    66. def accel_retarded(pos_now, history, step, masses):
    67.     acc = np.zeros_like(pos_now)
    68.     for i in range(N):
    69.         for j in range(N):
    70.             if i == j: continue
    71.             dr = pos_now[j] - pos_now[i]
    72.             r = np.linalg.norm(dr)
    73.             if r < 1e-8: continue
    74.             delay_steps = int(r / C / DT)
    75.             delay_steps = max(1, min(delay_steps, step))
    76.             idx = max(0, step - delay_steps)
    77.             pj_ret = history[idx][j]
    78.             dr_ret = pj_ret - pos_now[i]
    79.             rr = np.linalg.norm(dr_ret)
    80.             if rr < 1e-8: continue
    81.             acc[i] += G * masses[j] * dr_ret / rr**3
    82.     return acc
    83.  
    84. # ============================================================
    85. # ЗАПУСК
    86. # ============================================================
    87. print("\nСимуляция мгновенной гравитации...")
    88. p = pos.copy(); v = vel.copy()
    89. traj_i = [p.copy()]
    90. a = accel_instant(p, masses)
    91. for step in range(STEPS):
    92.     p = p + v * DT + 0.5 * a * DT**2
    93.     na = accel_instant(p, masses)
    94.     v = v + 0.5 * (a + na) * DT
    95.     a = na
    96.     traj_i.append(p.copy())
    97. traj_i = np.array(traj_i)
    98. print(f"  ✓ Завершено: {len(traj_i)} шагов")
    99.  
    100. print(f"\nСимуляция локальной гравитации (c={C})...")
    101. p = pos.copy(); v = vel.copy()
    102. traj_r = [p.copy()]
    103. hist = [p.copy()]
    104. for step in range(1, STEPS+1):
    105.     a = accel_retarded(p, hist, step, masses)
    106.     p = p + v * DT + 0.5 * a * DT**2
    107.     v = v + a * DT
    108.     traj_r.append(p.copy())
    109.     hist.append(p.copy())
    110. traj_r = np.array(traj_r)
    111. print(f"  ✓ Завершено: {len(traj_r)} шагов")
    112.  
    113. # ============================================================
    114. # ЭНЕРГИЯ (ДЛЯ ПРОВЕРКИ)
    115. # ============================================================
    116. def compute_energy(traj, masses):
    117.     E = np.zeros(len(traj))
    118.     for t in range(1, len(traj)-1):
    119.         v = (traj[t+1] - traj[t-1]) / (2*DT)
    120.         E_kin = 0.5 * np.sum(masses[:, None] * v**2)
    121.         E_pot = 0
    122.         for i in range(N):
    123.             for j in range(i+1, N):
    124.                 dr = traj[t][j] - traj[t][i]
    125.                 r = np.linalg.norm(dr)
    126.                 if r > 1e-10:
    127.                     E_pot -= G * masses[i] * masses[j] / r
    128.         E[t] = E_kin + E_pot
    129.     return E
    130.  
    131. E_i = compute_energy(traj_i, masses)
    132. E_r = compute_energy(traj_r, masses)
    133.  
    134. # ============================================================
    135. # ВИЗУАЛИЗАЦИЯ
    136. # ============================================================
    137. colors = ['#ffd43b', '#ff6b6b', '#4dabf7', '#69db7c', '#ff922b']
    138. fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, figsize=(16, 12))
    139.  
    140. # Траектории
    141. for ax, traj, title in zip([ax1, ax2], [traj_i, traj_r],
    142.                            ['МГНОВЕННАЯ (НЕЛОКАЛЬНАЯ)', f'ЛОКАЛЬНАЯ (c={C})']):
    143.     ax.set_xlim(-3, 3)
    144.     ax.set_ylim(-3, 3)
    145.     ax.set_aspect('equal')
    146.     ax.set_title(title, fontsize=14, fontweight='bold')
    147.     ax.grid(True, alpha=0.15)
    148.     ax.set_facecolor('#0a0a1a')
    149.  
    150.     step_plot = max(1, int(len(traj) / 2000))
    151.     for i in range(N):
    152.         points = traj[::step_plot, i, :]
    153.         ax.plot(points[:, 0], points[:, 1], color=colors[i], alpha=0.5, linewidth=0.8)
    154.  
    155.     ax.scatter(traj[0, :, 0], traj[0, :, 1], color='white', s=100, marker='*', zorder=10)
    156.     ax.scatter(traj[-1, :, 0], traj[-1, :, 1], c=colors, s=80, edgecolors='white', zorder=10)
    157.  
    158. # Энергия
    159. ax3.plot(E_i, label='Мгновенная', color='blue')
    160. ax3.plot(E_r, label='Локальная', color='red')
    161. ax3.set_xlabel('Шаг')
    162. ax3.set_ylabel('Энергия')
    163. ax3.set_title('Сохранение энергии')
    164. ax3.legend()
    165. ax3.grid(True, alpha=0.3)
    166.  
    167. # Радиус
    168. r1_i = np.sqrt(np.sum(traj_i[:, 1, :]**2, axis=1))
    169. r1_r = np.sqrt(np.sum(traj_r[:, 1, :]**2, axis=1))
    170. ax4.plot(r1_i, label='Мгновенная', color='blue')
    171. ax4.plot(r1_r, label='Локальная', color='red')
    172. ax4.set_xlabel('Шаг')
    173. ax4.set_ylabel('Радиус звезды 1')
    174. ax4.set_title('Эволюция радиуса')
    175. ax4.legend()
    176. ax4.grid(True, alpha=0.3)
    177.  
    178. plt.tight_layout()
    179. plt.show()
    180.  
    181. # ============================================================
    182. # ВЫВОД
    183. # ============================================================
    184. print("\n" + "=" * 60)
    185. print("РЕЗУЛЬТАТЫ")
    186. print("=" * 60)
    187. print(f"  Изменение энергии (мгн): {(E_i[-1]-E_i[0])/E_i[0]*100:.2f}%")
    188. print(f"  Изменение энергии (лок): {(E_r[-1]-E_r[0])/E_r[0]*100:.2f}%")
    189. print(f"  Изменение радиуса (мгн): {(r1_i[-1]/r1_i[0]-1)*100:.2f}%")
    190. print(f"  Изменение радиуса (лок): {(r1_r[-1]/r1_r[0]-1)*100:.2f}%")
    191. print("=" * 60)
    - это ничего не доказывает..

    --- Сообщение объединено, 1 сен 2026 ---
    Вот что вышло :dash1:

    _sim7.png
     

    Вложения:

    Последнее редактирование: 1 сен 2026
  2. Application

    Application Moderator Команда форума

    Публикаций:
    1
    Регистрация:
    8 дек 2007
    Сообщения:
    1.025
    Есть ли подмена понятий.
     
  3. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    844
    Application,

    Это не проверка классики(ото и прочих гипотез, где время переменная, мультиверс, темные материи), а матем. моделирование(в ньют. нелокальность). Про гравит. кресты и линзы - это подмена понятий, дифракции света в атмосфере звезды на какие то искривления рассудка пространства, причем симметричные для луча.
     
  4. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.443
    Предлагаю термин "спираль дефекации" для всех неонаучных топиков Индия. А также предлагаю измерить локальность, я думаю, она будет очень большая, так как эти топики стали локальным мемом.
     
  5. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    844
    На счет кривости пространств. Всякую функцию можно разложить в ряд, тн аппроксимировать. Это делается для гравитации в ото, где одному из членов ряда придается мистический смысл искривления пространства. Типичное сочинение хитрого физика над формулами. Артеху не предлагаю, дабы не травмировать детский разум.
     

    Вложения:

    • _curva.pdf
      Размер файла:
      583,8 КБ
      Просмотров:
      49
  6. Application

    Application Moderator Команда форума

    Публикаций:
    1
    Регистрация:
    8 дек 2007
    Сообщения:
    1.025
    Эксперименты Шапиро — это классическое доказательство Общей теории относительности, которое напрямую опровергает идею о том, что искривление — лишь математическая фикция. Вот как это было:
    · Идея (1964): Астрофизик Ирвин Шапиро предложил проверить ОТО, измерив время прохождения радиосигнала до Венеры или Меркурия и обратно, когда планеты находятся за Солнцем .
    · Суть: Если сигнал проходит у края Солнца, его скорость в сильном гравитационном поле должна немного замедлиться (из-за искривления времени). Предсказанная задержка составляла около 200 микросекунд .
    · Проведение (1966–1967): В обсерватории Массачусетского технологического института использовали 36-метровую антенну для отражения радиоимпульсов от планет . Сравнивали фактическое время возврата сигнала с расчетами для плоского пространства .
    · Результат: Задержка совпала с предсказаниями ОТО в пределах погрешности . Это был «четвертый тест» Эйнштейна (после смещения перигелия Меркурия, отклонения света и красного смещения) .
    · Почему это важно: В экспериментах с космическими аппаратами и интерферометрией точность подтверждения достигла 10⁻⁹. Этот результат нельзя получить, ограничившись первым членом разложения — он бьет точно в цель, доказывая, что геометрия пространства-времени реально меняется .
     
  7. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    844
    Application,

    Калибровка, статистическая выборка, подгонка результатов по разному метод называют. Эффекта реально нет, так как телескопы видят четкие картины, а не смазанный разноцветный хаос.
     
  8. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    844
    Нашли оптимизацию по скорости. Вот пример взаимодействия обьектов(коллапс), чистый Ньютон, без всякой ото и темной материи :swoon:
    Опробовать метод моделирования для начала..
     

    Вложения:

    • _sim8.mp4
      Размер файла:
      1,6 МБ
      Просмотров:
      45
  9. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    844
    Вращение галактики, справа лок - пульсации странные.
    --- Сообщение объединено, 2 сен 2026 ---
    Вот интересный результат. Наблюдаем прецессию в системе звезды с резонансами.

    _sim10.png

    Для разных параметров g/c разный узор.

    Прецессия остается при любом увеличении C, тоесть при переходе к нелокальной модели. ОТО непричем :preved:

    Код (Text):
    1.  
    2. import numpy as np
    3. import matplotlib.pyplot as plt
    4. import time
    5.  
    6. # ============================================================
    7. # ПАРАМЕТРЫ (ДОБАВЛЯЕМ ЗАДЕРЖКУ ДЛЯ ПРЕЦЕССИИ)
    8. # ============================================================
    9. G = 1
    10. dt = 0.01
    11. steps = 20000
    12. eps = 1e-6
    13. C = 10000000*10000000  # Скорость гравитации (меньше → больше прецессия)
    14.  
    15. # ============================================================
    16. # СОЛНЦЕ + МЕРКУРИЙ
    17. # ============================================================
    18. masses = np.array([1.0, 1.65e-7])
    19.  
    20. pos = np.array([
    21.     [0.0, 0.0, 0.0],
    22.     [0.387, 0.0, 0.0]
    23. ])
    24.  
    25. vel = np.zeros_like(pos)
    26. r0 = np.linalg.norm(pos[1])
    27. v_circ = np.sqrt(G * masses[0] / r0)
    28. vel[1, 1] = v_circ
    29.  
    30. # ============================================================
    31. # УСКОРЕНИЕ С ЗАДЕРЖКОЙ (ЛОКАЛЬНАЯ ГРАВИТАЦИЯ)
    32. # ============================================================
    33. def compute_acceleration(pos, history, step, masses, G, dt, eps, C):
    34.     N = len(masses)
    35.     acc = np.zeros_like(pos)
    36.    
    37.     for i in range(N):
    38.         ax = 0.0
    39.         ay = 0.0
    40.         az = 0.0
    41.         xi, yi, zi = pos[i]
    42.        
    43.         for j in range(N):
    44.             if i == j:
    45.                 continue
    46.            
    47.             dx = pos[j, 0] - xi
    48.             dy = pos[j, 1] - yi
    49.             dz = pos[j, 2] - zi
    50.            
    51.             r = np.sqrt(dx*dx + dy*dy + dz*dz + eps*eps)
    52.            
    53.             # Задержка в шагах
    54.             delay = int(r / C / dt)
    55.             delay = max(1, min(delay, step))
    56.             idx = max(0, step - delay)
    57.            
    58.             # Позиция j в прошлом
    59.             pj = history[idx][j]
    60.             dx = pj[0] - xi
    61.             dy = pj[1] - yi
    62.             dz = pj[2] - zi
    63.            
    64.             r2 = dx*dx + dy*dy + dz*dz + eps*eps
    65.             r = np.sqrt(r2)
    66.             factor = G * masses[j] / (r2 * r)
    67.            
    68.             ax += factor * dx
    69.             ay += factor * dy
    70.             az += factor * dz
    71.        
    72.         acc[i, 0] = ax
    73.         acc[i, 1] = ay
    74.         acc[i, 2] = az
    75.    
    76.     return acc
    77.  
    78. # ============================================================
    79. # ЗАПУСК
    80. # ============================================================
    81. print("Запуск симуляции с задержкой (C={})...".format(C))
    82. start_time = time.time()
    83.  
    84. trajectory = [pos.copy()]
    85. history = [pos.copy()]
    86.  
    87. for step in range(steps):
    88.     acc = compute_acceleration(pos, history, step, masses, G, dt, eps, C)
    89.     pos += vel * dt + 0.5 * acc * dt * dt
    90.     acc_new = compute_acceleration(pos, history, step, masses, G, dt, eps, C)
    91.     vel += 0.5 * (acc + acc_new) * dt
    92.     history.append(pos.copy())
    93.     if step % 100 == 0:
    94.         trajectory.append(pos.copy())
    95.  
    96. print(f"Готово за {time.time() - start_time:.2f} сек")
    97.  
    98. # ============================================================
    99. # ВИЗУАЛИЗАЦИЯ
    100. # ============================================================
    101. trajectory = np.array(trajectory)
    102.  
    103. x = trajectory[:, 1, 0]
    104. y = trajectory[:, 1, 1]
    105.  
    106. plt.figure(figsize=(10, 10))
    107.  
    108. # Орбита (все точки)
    109. plt.plot(x, y, color='blue', linewidth=0.8, alpha=0.6, label='Орбита Меркурия')
    110.  
    111. # Солнце
    112. plt.scatter(0, 0, color='yellow', s=200, edgecolors='orange', linewidth=2, label='Солнце')
    113.  
    114. # Начальная позиция
    115. plt.scatter(x[0], y[0], color='green', s=50, label='Старт')
    116.  
    117. # Конечная позиция
    118. plt.scatter(x[-1], y[-1], color='red', s=50, label='Финиш')
    119.  
    120. # Пределы
    121. margin = 0.1
    122. lim = max(abs(x).max(), abs(y).max()) + margin
    123.  
    124. plt.xlim(-lim, lim)
    125. plt.ylim(-lim, lim)
    126. plt.axis('equal')
    127.  
    128. plt.grid(True, alpha=0.3)
    129. plt.legend(loc='upper right')
    130. plt.title('Орбита Меркурия (прецессия, C={})'.format(C), fontsize=14)
    131. plt.xlabel('x (а.е.)')
    132. plt.ylabel('y (а.е.)')
    133.  
    134. plt.tight_layout()
    135. plt.show()
    136.  
    137. print("\n✅ Готово!")
    --- Сообщение объединено, 2 сен 2026 ---
    Нет, это числовая интерференция, а не физика.

    Application,

    Можно получить прецесс., предположив что гравитация квантуется, как и другие связи.

    Модель выводится из необходимости эффектов для нелокальности и как следствие дискретности. Без всяких чудес и прочих кривостей пространств.

    --- Сообщение объединено, 2 сен 2026 ---
    Rel

    Добавил в бложек

    Нужно наверно слелать выжимку, мозги начинают плавиться под конец..:wacko:
     

    Вложения:

    • _sim9.mp4
      Размер файла:
      1,5 МБ
      Просмотров:
      44
    • _sim9_python.py.txt
      Размер файла:
      7,6 КБ
      Просмотров:
      42
  10. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.443
    Так эти симуляции, они как-то обличают современную науку? Насколько нелокальна локальная нелокальность?
     
  11. ml64

    ml64 Member

    Публикаций:
    0
    Регистрация:
    29 окт 2017
    Сообщения:
    98
    Большинство моделей двумерные. И мы в 2D пытаемся учесть всё многообразие свойств и взаимодействий.
    Моя профессия - 3D, и мне всегда было интересно:
    если Луна движется вокруг Земли, а Земля движется вокруг Солнца, а Солнце куда-то летит вокруг центра Млечного пути, то какая в итоге траектория у небесных тел?
    Будет ли полной модель, которая не учитывает движение по "спирали вокруг спирали вокруг спирали"?
    ОбъектУсловная скоростьОтносительно
    Меркурий 47,9 км/с Солнца
    Луна1,023 км/сЗемли
    Земля29,78 км/сСолнца
    Солнце240 км/сцентра Млечного Пути
    Млечный Путь600 км/среликтового излучения
    Иными словами, мы в круговой модели Солнечной системы как-то учитываем положение тел в плоскости в результате их движения с условной скоростью 104 м/с, но игнорируем, что они летят в третьем измерении с условной скоростью 6×108 м/c.
    Мы бы могли использовать 2D-модель, если бы относительные ускорения Луны, Земли (Меркурия) и Солнца в пространстве были бы равны, но...
    Когда я наиграюсь с "Москвичом", попробую визуально замоделить траекторию, но это будет амбициозненько и сложненько, т.к. соотношение радиусов вращения (или как это назвать в 3D) для Луны, Земли и Солнца - это какие то астрономические величины.
     
    Ahimov нравится это.
  12. Application

    Application Moderator Команда форума

    Публикаций:
    1
    Регистрация:
    8 дек 2007
    Сообщения:
    1.025
    Что как бы намекает на утопичность самой идеи.
     
  13. ml64

    ml64 Member

    Публикаций:
    0
    Регистрация:
    29 окт 2017
    Сообщения:
    98
    Почему утопичность? Мы же читаем с двумерного дисплея на двумерную сетчатку. Вопрос об учёте мерности пространства
     
  14. ml64

    ml64 Member

    Публикаций:
    0
    Регистрация:
    29 окт 2017
    Сообщения:
    98
    Пока лучше матриц ничего не придумали
    Upd: и кватернионов
    Upd2: и тензоров
     
  15. Application

    Application Moderator Команда форума

    Публикаций:
    1
    Регистрация:
    8 дек 2007
    Сообщения:
    1.025
    Да. Можно сделать миллион проекций под разными углами.
    Кстати. В кватернион можно закодировать и 2d и 3d.
     
  16. ml64

    ml64 Member

    Публикаций:
    0
    Регистрация:
    29 окт 2017
    Сообщения:
    98
    Верно!
    1) не можно, а нужно. Современные вычислительные возможности это позволяют, а миллион проекций - это видео.
    2) чтобы делать 2D-проекции, надо иметь 3D-модель.
    Из стильных-модных-молодёжных вспоминается модель Онигири, когда он визуализировал гравитацию.
     
  17. Application

    Application Moderator Команда форума

    Публикаций:
    1
    Регистрация:
    8 дек 2007
    Сообщения:
    1.025
    Ну да. +1 мерность а не -1.
     
  18. ml64

    ml64 Member

    Публикаций:
    0
    Регистрация:
    29 окт 2017
    Сообщения:
    98
    Только сообразил.
    Пусть будут потери 3D-2D. Что в этом плохого? Есть три проекции по Гаспару Монжу: План - Разрез - Фасад.
    Формат разработки 3D, формат представления 2D. Всё по Иммануилу Канту: "вещь в себе" - "вещь для нас".
    BIM-модели так и работают.
    Важно, чтобы каждая из проекций, каждое 2D-представление соответствовало n-мерной модели.
    Летит куда-то галактика Млечный путь со скоростью 600 км/с, пролетает какое-нибудь скопление с сильным гравитационным полем.
    Или наоборот, залетает в какой-нибудь войд.
    Влияет этот внешний фактор на звёздные и планетарные системы? - Наверное, да.
    Как мы это воспринимаем? - Отклонением от круговой траектории. Логично же?
     
    Последнее редактирование: 3 сен 2026
  19. Application

    Application Moderator Команда форума

    Публикаций:
    1
    Регистрация:
    8 дек 2007
    Сообщения:
    1.025
    И потом из этой модели можно сделать обратное восстановление в исходную мерность?
     
  20. ml64

    ml64 Member

    Публикаций:
    0
    Регистрация:
    29 окт 2017
    Сообщения:
    98
    Не очень понял вопрос.
    Если предметно: чтобы смоделировать траекторию планеты, надо учитывать траекторию её звезды, которая летит в 10 раз быстрее в перпендикулярном направлении, причём отнюдь не по прямой и с нелинейной скоростью.
    Безусловно, если мерность и детализация Вашей модели соответствует мерности и детализации Вселенной. Или, по крайней мере, видимой её части.