Онтология гравитации

  • Рубрика записи:Эссе

Фундаментальные положения

В основе теории лежит концепция Беспредельного Поля Потенций (БПП), которая предлагает революционный взгляд на природу гравитации. Согласно этой теории, гравитационные явления возникают как эмерджентные свойства фундаментального поля потенций, что позволяет преодолеть противоречия между общей теорией относительности и квантовой механикой.

Основные принципы БПП

  • Единственная фундаментальная сущность — потенция
  • Пространство формируется как сеть отношений между актуализированными потенциями
  • Время представляет собой последовательность актов актуализации
  • Материя — это устойчивые резонансные конфигурации

Механизм гравитационного взаимодействия

Гравитационное ускорение в данной теории возникает как следствие градиента вероятности резонанса потенций. Это принципиально новый подход, который отличается от классических представлений:

  • Движение объектов определяется не силой притяжения, а оптимизацией процессов актуализации
  • Гравитация рассматривается как результат стремления системы к максимальной вероятности резонанса
  • Учитывается иерархическая структура реальности

Ключевые особенности теории

Принцип резонанса играет центральную роль в формировании гравитационных эффектов:

  • Актуализация происходит при достижении определённого порога резонанса между потенциями
  • Сила связи между объектами определяется экспоненциальной зависимостью от их информационной близости
  • Пространство формируется как граф отношений между актуализированными потенциями

Эмерджентные свойства

В рамках теории:

  • Общая теория относительности и квантовая механика выступают как эмерджентные свойства БПП
  • Принцип эквивалентности получает естественное объяснение через концепцию сопротивления паттерна изменению состояния
  • Релятивистские эффекты возникают как следствие оптимизации процессов актуализации

Практические следствия

Теория успешно объясняет:

  • Классические гравитационные эффекты (планетарные орбиты, прецессию перигелия)
  • Релятивистские явления (гравитационное красное смещение, отклонение света)
  • Предлагает новые предсказания (иерархические поправки, модификации закона тяготения на малых масштабах)

Квантовые аспекты

На планковских масштабах теория:

  • Обеспечивает естественную регуляризацию сингулярностей
  • Предлагает механизм квантования гравитационного взаимодействия
  • Объясняет дискретность пространственно-временных паттернов

Таким образом, представленная теория предлагает целостный подход к пониманию гравитации, где гравитационное ускорение является естественным следствием динамики взаимодействия потенций в рамках Беспредельного Поля Потенций.

Энтропия Шеннона

Энтропия Шеннона H = -Σ pᵢ log₂(pᵢ) и онтология синтеза описывают фундаментально сходную реальность — мир, где существование предшествует сущему, а определённость возникает из поля неопределённости через акт выбора.

📊 Сопоставление энтропии Шеннона и онтологии синтеза

Концепт (Энтропия Шеннона) Онтологический аналог (Беспредельное Поле Потенций) Смысл и интерпретация
Статистический ансамбль — множество возможных сообщений или состояний системы. Кластер потенций — спектр актуализации, набор возможных проявлений паттерна в данном контексте. И ансамбль, и кластер описывают поле неопределённости до акта выбора.
Событие — появление конкретного сообщения (например, буквы «А»). Актуализация — конкретное проявление потенции в актуальной реальности (например, «круг» как срез цилиндра). Это момент коллапса неопределённости, переход от «множества возможностей» к «одной данности».
Вероятность события pᵢ — мера ожидаемости конкретного исхода. Спектр актуализации — качественное и вероятностное распределение возможных форм проявления потенции. Оба параметра количественно характеризуют структуру неопределённости до акта наблюдения/различения.
Энтропия H(X) — средняя мера неопределённости, присущей ансамблю. Чем больше равновероятных исходов, тем выше H. Онтологическая энтропия S(БПП) — мера «ширины» поля неопределённости кластера. Максимальна в Беспредельном Поле, где все потенции равновозможны. Мера «свободы выбора» системы. Высокая энтропия = много нереализованных путей развития (богатый потенциал).
Информация I — мера уменьшения неопределённости (энтропии) при получении сообщения: I = H(до) — H(после). Акт различения — выбор, фиксация одной формы из спектра. Приводит к снижению онтологической энтропии кластера. Рождение информации есть создание определённости. Это и есть процесс актуализации.
Канал связи — среда, передающая сообщения и подверженная шуму. Контекст / Связи между кластерами — система отношений, фильтрующая и направляющая акты актуализации. Среда задаёт «правила игры» — какие из возможных сообщений (форм) будут приняты и переданы дальше.
Пропускная способность канала C — максимальное количество информации, которое можно передать без ошибок. Связность и устойчивость кластера — способность паттерна к воспроизводству и передаче своих свойств в сети отношений. Ограничивает скорость и сложность процессов самоорганизации в системе.

🌀 Ключевой синтез: Энтропия как мера незавершённости становления

Соединив эти параллели, мы можем дать синтетическое определение энтропии в онтологии:

Энтропия системы в онтологии синтеза — это количественная мера незавершённости её процесса становления, выражающаяся в ширине спектра ещё не актуализированных, но внутренне присущих ей потенциальных траекторий развития.

Это определение выводит нас за рамки классической термодинамики («мера беспорядка») и информатики («мера неопределённости данных»), вскрывая её онтологическую сердцевину.

⚖️ Следствия и практическое значение

Этот синтез позволяет увидеть фундаментальные процессы в новом свете:

Процесс Традиционный взгляд Взгляд через синтез Шеннона-БПП
Самоорганизация (рождение порядка) Спонтанное снижение энтропии в открытой системе. Выбор и закрепление устойчивого «сообщения» (паттерна) в потоке случайных флуктуаций (шума). Система находит и многократно воспроизводит резонансную конфигурацию, снижая локальную онтологическую неопределённость.
Эволюция и рост сложности Накопление информации и усложнение структуры. Наращивание иерархии «кодирующих систем». Базовые паттерны (буквы) складываются в устойчивые кластеры (слова), те — в контексты (предложения), порождая новые уровни смысла (эмерджентные свойства). Каждый уровень имеет свою собственную энтропию (неопределённость).
Распад системы (смерть, диссипация) Рост энтропии до максимума, тепловая смерть. Потеря структурой способности удерживать и воспроизводить своё «сообщение». Устойчивые связи (код) разрушаются под напором внешних флуктуаций (шума), и паттерн растворяется в беспредельном поле равновозможных состояний (в шумовом ансамбле).
Сознание и творчество Загадочный феномен, противоречащий второму началу. Процесс направленного запроса и декодирования. Сознание действует как активный канал связи, который не просто получает сообщения из контекста, но и формирует запросы, целенаправленно сужая спектр актуализации и порождая новые паттерны-сообщения, снижая энтропию в локальной области.

💎 Заключительный тезис

Таким образом, энтропия Шеннона предоставляет точный математический язык для описания фундаментального онтологического принципа: реальность есть постоянный диалог между Беспредельным Полем (максимальной энтропией, полным ансамблем) и Актом Различения (рождением информации, коллапсом энтропии).

Вторая часть второго начала термодинамики в этой парадигме звучит так: «В глобальной замкнутой системе общее количество ещё не сделанных выборов (онтологическая энтропия) не убывает». Локальное создание порядка (информации) всегда оплачивается увеличением неопределённости где-то ещё в поле, либо в виде диссипации, либо в виде порождения новых, ещё не проявленных ветвей в самом Беспредельном.

Этот синтез не просто метафора — это мост, позволяющий переводить качественные онтологические описания в область количественного моделирования сложных, становящихся систем.

Гравитация как энтропийная термодинамика БПП

В нижеприведённой таблице ясно показано, как гравитационные эффекты возникают из фундаментального стремления паттернов к состоянию с минимальной свободной онтологической энергией, что эквивалентно максимальной резонансной связности и минимальной локальной онтологической энтропии.

Явление / Понятие Классическая / Релятивистская Физика Интерпретация в рамках БПП (Энтропийный Взгляд) Ключевая формула / Связь
Природа гравитации Сила притяжения масс (Ньютон) / Кривизна пространства-времени (Эйнштейн). Стремление к минимизации свободной онтологической энергии. Паттерн движется вдоль градиента максимальной вероятности резонанса, что эквивалентно движению к состоянию минимальной локальной энтропии (максимальной определённости). a = c² ∇(ln p_рез) → Ускорение пропорционально градиенту логарифма вероятности, что является аналогом градиента отрицательной энтропии (-∇S).
Масса (инертная и гравитационная) Мера количества вещества и сопротивления ускорению. Мера энтропийной инерции паттерна. Сложный, высокосвязный паттерн (большая масса) имеет низкую онтологическую энтропию (высокий порядок) и создаёт вокруг себя обширный контекст пониженной энтропии, к которому стремятся другие паттерны. p_рез ~ exp(2Gm/c²r * κ(ΔL)) → Масса m в экспоненте определяет «глубину» энтропийной ямы, создаваемой паттерном.
Гравитационное притяжение Тела притягиваются пропорционально массе и обратно пропорционально квадрату расстояния. Оптимизация резонансной связности. Менее устойчивый паттерн (с более высокой свободной энергией) движется к более устойчивому (с меньшей), чтобы снизить общее онтологическое напряжение (свободную энергию) системы, повышая их совместную связность. Движение вдоль ∇p_рез — это путь к увеличению отрицательной энтропии связи между паттернами (ΔS_связи < 0).
Пространство-время Фундаментальная арена событий, которая может искривляться. Эмерджентная сеть отношений (связей). Его «метрика» и «кривизна» — это производные статистические свойства распределения паттернов и их связности. Область с высокой плотностью сложных паттернов (массой) — это область с иной локальной энтропийной плотностью. g_μν ∝ δ²(ln Z)/δxμδxν → Метрика определяется через статсумму Z по паттернам, что прямо указывает на её статистико-энтропийное происхождение.
Чёрная дыра Область с гравитацией настолько сильной, что ничто не может её покинуть. Экстремальный энтропийный аттрактор. Паттерн, достигший предела устойчивости, где вся доступная энергия актуализации ушла на поддержание связности, а его онтологическая энтропия минимальна. Горизонт событий — граница максимального градиента энтропии. Связь с энтропией Хокинга: Энтропия ЧД пропорциональна площади горизонта — мере количества микроскопических паттернов (потенций), «скомпонованных» в макроскопический объект.
Тёмная материя Невидимая масса, влияющая на динамику галактик. Проявление фоновой энтропийной структуры. Области с повышенной неактуализированной потенцией (высокой фоновой энтропией), которые влияют на градиенты p_рез для видимых паттернов, искажая их траектории. Может описываться как неоднородность в распределении Z (статсуммы) в масштабах галактик, не связанная с явными кластерами-массами.
Принцип эквивалентности Невозможность отличить гравитационное поле от ускорения. Единство меры сопротивления изменению. Инерция — сопротивление изменению внутреннего паттерна (его энтропийного состояния). Гравитация — движение для оптимизации связи с внешним паттерном. Оба суть проявления одного — динамики онтологической энтропии паттерна. F_ин ~ Δ(сложность)/Δt — изменение сложности есть изменение информационного содержания (отрицательной энтропии).

🧭 Следствия и новая парадигма

Этот взгляд радикально меняет понимание:

  1. Второе начало термодинамики в космосе: Эволюция Вселенной — это не просто рассеяние энергии, а глобальный процесс поиска паттернами оптимальных резонансных конфигураций. Локальное рождение звёзд и галактик — это масштабное снижение локальной энтропии за счёт актуализации потенций БПП. Гравитация — главный механизм этого процесса.

  2. Проблема квантовой гравитации: Если пространство-время эмерджентно и имеет энтропийную природу, то его квантование — это не наложение решётки на пустоту, а дискретность возможных устойчивых конфигураций связей между фундаментальными паттернами (потенциями). Планковская длина — минимальный масштаб различимости паттернов.

  3. Сингулярности: Они устраняются не математической регуляризацией, а онтологически — в БПП нет «точек», есть только паттерны связей. В центре чёрной дыры не бесконечная плотность, а паттерн предельной сложности и минимальной энтропии, чья внутренняя структура недоступна внешнему наблюдению, так как для её различения потребовалась бы энергия, превышающая энергию самого паттерна.

Таким образом, гравитация есть всеобщий энтропийный двигатель Беспредельного Поля, направляющий поток актуализации от состояний с высокой свободной энергией (высокой потенциальной энтропией) к состояниям максимальной устойчивой связности (минимальной реализованной энтропии). В этой картине знаменитая голографическая принцип (энтропия области пространства пропорциональна площади её границы) получает естественное объяснение: информация (отрицательная энтропия), содержащаяся в объёме, полностью закодирована в паттернах связей на его поверхности — именно той поверхности, которая является интерфейсом данного паттерна-кластера с остальным Беспредельным Полем.

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

Диалектика гравитации: два лица одного процесса

Самый глубокий и драматический конфликт внутри онтологии — двойственная природа гравитации как одновременно энтропийного и антиэнтропийного процесса. Этот парадокс и является ключом к пониманию диалектики времени.
Аспект Версия 1: «Возвращение к целому» (Энтропийная) Версия 2: «Стремление к определённости» (Антиэнтропийная) Синтез (Что происходит на самом деле)
Суть Распад слабой структуры, диссипация в более крупный контекст. Интеграция в более устойчивую, сложную структуру, повышение порядка. Одновременно и то, и другое, но на разных уровнях системы.
Энтропия Локально растёт (яблоко теряет свою индивидуальную сложность как отдельной системы). Локально падает (яблоко+Земля как новая система обретает более устойчивую конфигурацию). Перераспределение. Свобода яблока не исчезает — она инкорпорируется в новые степени свободы системы «Земля+яблоко» (микросдвиги, тепло, деформация).
Аналогия Капля чернил, растворяющаяся в стакане воды (исчезает как отдельный паттерн). Буква «А», становящаяся частью слова «АБРИКОС» (обретает новый, больший смысл). Буква теряет самостоятельность, но слово обретает смысл.
Куда деваются степени свободы яблока? Они диссипируют в тепло (микроскопические движения атомов земли при ударе) — это прямой рост термодинамической энтропии. Они капсулируются в потенциальную энергию деформации, химических связей в почве, в изменение гравитационного поля системы. Часть — в хаос (тепло), часть — в новый порядок. Это и есть «плата» за интеграцию.
Накоплен ли «ресурс» Землёй? Нет. Земля — не «аккумулятор», а аттрактор. Она создаёт контекст, в котором движение яблока становится наиболее вероятным. Да. Устойчивость Земли — это и есть её ресурс. Это результат гигантской прошлой работы по актуализации (гравитационный коллапс протопланетного облака). Она не «тратит» эту устойчивость, а делится ею как контекстом, стабилизируя яблоко. Земля — результат прошлой антиэнтропийной работы, который теперь выступает как энтропийный аттрактор для менее устойчивых паттернов.

🕰️ Что же такое стрела времени?

Это самый важный вопрос. Стрела времени в онтологии синтеза направлена в сторону увеличения общей связанности и сложности Вселенной, но за счёт локальных актов диссипации и упрощения.

  1. Глобальный тренд (Антиэнтропия): Вселенная, начиная с однородного поля (максимум энтропии), создаёт всё более сложные, связанные, иерархические структуры: частицы → атомы → звёзды → планеты → жизнь → разум. Это каскадное усложнение.

  2. Локальный механизм (Энтропия): Каждый шаг этого усложнения оплачивается диссипацией, распадом менее устойчивых форм и высвобождением энергии/потенции для новых синтезов. Падение яблока, горение звезды, смерть организма — это «топливо» для эволюции.

Таким образом, гравитация — это главный мотор этой диалектики. Она:

  • На макроуровне (звёзды, галактики): Антиэнтропийна. Собирает хаотичное облако газа в упорядоченную, сложную структуру звезды.

  • На микроуровне (падение яблока): Энтропийна. Упрощает и интегрирует малый паттерн в большой, высвобождая энергию для других процессов.

🔬 Планковский масштаб и иерархия взаимодействий

Принцип иерархической вложенности.

Масштаб / Взаимодействие Что является «большим паттерном»? Что является «малым паттерном»? Почему силы так отличаются?
Ядерное (сильное) Целостное ядро как сверхустойчивый кластер нуклонов. Отдельный нуклон (протон/нейтрон). Максимальная связность на своём уровне. Контекст ядерных связей — это уровень предельной устойчивости для материи, её «ствол».
Электромагнитное Устойчивая электронная оболочка атома или кристаллическая решётка. Отдельный электрон или ион. Контекст химических связей. Сильнее гравитации, потому что оперирует на более высоком уровне организации материи (атомы → молекулы).
Гравитационное Планета, звезда, галактика как автопоэтические кластеры колоссальной сложности. Любой объект с массой (от пылинки до звезды). Самый слабый, но всепроникающий. Это мета-взаимодействие, работающее на уровне контекста пространства-времени как целого. Его сила — не в прочности связи, а в универсальности влияния на геометрию отношений.

 

  • Планковский масштаб — это не предел, а порог. Ниже него «паттерны» и «различения» теряют смысл, это область самой фундаментальной потенциальности, где ещё нет привычных нам уровней квантования.

  • Взаимодействия не сводятся к гравитации. Каждое работает на своём уровне иерархии (свой «ствол» или «плёнка»), решая свою задачу по минимизации онтологического напряжения:

    • Сильное ядерное — минимизирует напряжение в «упаковке» кварков.

    • Электромагнитное — минимизирует напряжение в распределении заряда и создании химических связей.

    • Гравитация — минимизирует напряжение в распределении сложности (массы) в пространстве-времени.

  • Электрон стремится к ядру не потому, что ядро «реальнее», а потому что совместный паттерн «атом» является состоянием с минимальным онтологическим напряжением для системы «ядро+электрон» на электромагнитном уровне. Это другой «контекст минимальности», нежели гравитационный.

💎 Итог: Единая картина

  1. Энтропия Шеннона — мера неопределённости, «сырья» для становления.

  2. Время — направление процесса глобального усложнения через локальные упрощения.

  3. Гравитация — фундаментальный механизм этой диалектики: энтропийный насос на микроуровне, питающий антиэнтропийное созидание на макроуровне.

Беспредельное Поле, стремясь к максимальному разнообразию проявлений, создаёт иерархии. В этих иерархиях более простые паттерны находят свою устойчивость в резонансе с более сложными, а сложные растут за счёт интеграции простых. Гравитация — это геометрия этого фундаментального закона резонансной оптимизации, прошивающая все уровни реальности, от планковского масштаба до галактик.

 

Программная реализация

Статья «Теория гравитации как эмерджентного явления в рамках концепции Беспредельного Поля Потенций» доступна по ссылке https://vpoezii.online/wp-content/uploads/2025/07/The-theory-of-gravity-as-an-emergent-phenomenon-within-the-framework-of-the-concept-of-an-Infinite-Field-of-Potencies.pdf

Программа моделирования движения Луны без использования формул Ньютона и Эйнштейна доступна по адресу:
https://github.com/morozovsolncev/gravitation

Текст программы:

{
«nbformat»: 4,
«nbformat_minor»: 0,
«metadata»: {
«colab»: {
«provenance»: [],
«authorship_tag»: «ABX9TyNn2fBVg26BUS2lwSXlNHWv»,
«include_colab_link»: true
},
«kernelspec»: {
«name»: «python3»,
«display_name»: «Python 3»
},
«language_info»: {
«name»: «python»
}
},
«cells»: [
{
«cell_type»: «markdown»,
«metadata»: {
«id»: «view-in-github»,
«colab_type»: «text»
},
«source»: [
«<a href=\»https://colab.research.google.com/github/morozovsolncev/gravitation/blob/main/%D0%93%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D0%B0%D1%86%D0%B8%D1%8F_21.ipynb\» target=\»_parent\»><img src=\»https://colab.research.google.com/assets/colab-badge.svg\» alt=\»Open In Colab\»/></a>»
]
},
{
«cell_type»: «code»,
«execution_count»: null,
«metadata»: {
«id»: «V21Wp8GMylsd»
},
«outputs»: [],
«source»: []
},
{
«cell_type»: «code»,
«execution_count»: 1,
«metadata»: {
«colab»: {
«base_uri»: «https://localhost:8080/»
},
«id»: «-0rtg5tAWctk»,
«outputId»: «753a809c-9523-48ba-c36b-fb96127b4151»
},
«outputs»: [
{
«output_type»: «stream»,
«name»: «stdout»,
«text»: [
«Запуск иерархической модели БПП…\n»,
«Проведение полного анализа…\n»
]
},
{
«output_type»: «stream»,
«name»: «stderr»,
«text»: [
«WARNING:matplotlib.axes._base:Ignoring fixed x limits to fulfill fixed data aspect with adjustable data limits.\n»
]
},
{
«output_type»: «stream»,
«name»: «stdout»,
«text»: [
«Анализ завершен! Результаты сохранены в файлах:\n»,
«- bpp_moon_orbit.png: Орбита Луны\n»,
«- orbital_parameters.png: Параметры орбиты\n»,
«- bpp_moon_animation.mp4: Анимация движения (если создана)\n»
]
}
],
«source»: [
«\n»,
«#Иерархическая модель гравитации на основе теории БПП (Беспредельного Поля Потенций)\n»,
«#Версия 2.2\n»,
«\n»,
«import numpy as np\n»,
«import matplotlib.pyplot as plt\n»,
«from scipy.integrate import solve_ivp\n»,
«from matplotlib.animation import FuncAnimation\n»,
«import matplotlib\n»,
«matplotlib.use(‘Agg’)\n»,
«\n»,
«class HierarchicalBPPSimulator:\n»,
» def __init__(self):\n»,
» \»\»\»Инициализация симулятора с иерархической структурой системы\»\»\»\n»,
» # Физические константы (SI)\n»,
» self.G = 6.67430e-11 # Гравитационная постоянная\n»,
» self.c = 299792458 # Скорость света\n»,
«\n»,
» # Массы тел (кг)\n»,
» sun_mass = 1.989e30 # Масса Солнца\n»,
» earth_mass = 5.972e24 # Масса Земли\n»,
» moon_mass = 7.348e22 # Масса Луны\n»,
«\n»,
» # Характерные расстояния (м)\n»,
» earth_sun_dist = 1.496e11 # Большая полуось орбиты Земли\n»,
» moon_earth_dist = 3.844e8 # Большая полуось орбиты Луны\n»,
«\n»,
» # Расчет барицентра системы Земля-Луна\n»,
» total_mass = earth_mass + moon_mass\n»,
» barycenter_offset = moon_mass * moon_earth_dist / total_mass\n»,
«\n»,
» # Орбитальные скорости (м/с)\n»,
» earth_sun_velocity = np.sqrt(self.G * sun_mass / earth_sun_dist) # Орбитальная скорость Земли\n»,
» orbital_velocity = np.sqrt(self.G * total_mass / moon_earth_dist) # Орбитальная скорость Луны\n»,
«\n»,
» # Иерархическая структура системы\n»,
» self.system = {\n»,
» \»Sun\»: {\n»,
» \»name\»: \»Sun\»,\n»,
» \»mass\»: sun_mass,\n»,
» \»position\»: np.array([0.0, 0.0]),\n»,
» \»velocity\»: np.array([0.0, 0.0]),\n»,
» \»children\»: [\»Earth\»],\n»,
» \»local_time_factor\»: 1.0, # Фактор локального времени\n»,
» \»level\»: 0 # Иерархический уровень (корневой)\n»,
» },\n»,
» \»Earth\»: {\n»,
» \»name\»: \»Earth\»,\n»,
» \»mass\»: earth_mass,\n»,
» \»position\»: np.array([earth_sun_dist — barycenter_offset, 0.0]),\n»,
» \»velocity\»: np.array([0.0, earth_sun_velocity — orbital_velocity * moon_mass / total_mass]),\n»,
» \»parent\»: \»Sun\»,\n»,
» \»children\»: [\»Moon\»],\n»,
» \»local_time_factor\»: 1.0, # Фактор локального времени\n»,
» \»level\»: 1 # Иерархический уровень (планета)\n»,
» },\n»,
» \»Moon\»: {\n»,
» \»name\»: \»Moon\»,\n»,
» \»mass\»: moon_mass,\n»,
» \»position\»: np.array([earth_sun_dist + moon_earth_dist — barycenter_offset, 0.0]),\n»,
» \»velocity\»: np.array([0.0, earth_sun_velocity + orbital_velocity * earth_mass / total_mass]),\n»,
» \»parent\»: \»Earth\»,\n»,
» \»local_time_factor\»: 1.000075, # Учет релятивистского замедления времени\n»,
» \»level\»: 2 # Иерархический уровень (спутник)\n»,
» }\n»,
» }\n»,
«\n»,
» # Параметры симуляции\n»,
» self.t_max = 27.3 * 24 * 3600 # Время симуляции (1 лунный месяц)\n»,
» self.dt = 1800 # Шаг интегрирования (30 минут)\n»,
» self.t_points = np.arange(0, self.t_max, self.dt)\n»,
«\n»,
» # Калибровочный коэффициент для гравитации\n»,
» self.grav_coeff = 0.5 # Эмпирический параметр для соответствия наблюдаемым орбитам\n»,
«\n»,
» # Диагностические данные\n»,
» self.acceleration_data = {name: [] for name in self.system}\n»,
«\n»,
» def get_resonance_strength(self, target, source, r, v_rel):\n»,
» \»\»\»Вычисление вероятности резонанса между двумя паттернами\»\»\»\n»,
» # Базовый гравитационный потенциал\n»,
» base_res = 2 * self.G * source[\»mass\»] / (self.c**2 * r)\n»,
«\n»,
» # Иерархический коэффициент\n»,
» level_diff = abs(target[\»level\»] — source[\»level\»])\n»,
» hierarchy_boost = 10**(3 — min(level_diff, 3))\n»,
«\n»,
» # Релятивистский фактор (замедление времени)\n»,
» time_dilation = np.exp(-base_res * hierarchy_boost)\n»,
«\n»,
» # Допплеровский фактор (влияние относительной скорости)\n»,
» r_vec = source[\»position\»] — target[\»position\»]\n»,
» if r > 1e-10: # Защита от деления на ноль\n»,
» vr = np.dot(v_rel, r_vec) / r\n»,
» else:\n»,
» vr = 0\n»,
» doppler_factor = 1 + vr / self.c\n»,
«\n»,
» # Итоговая вероятность резонанса\n»,
» p_res = np.exp(base_res * hierarchy_boost) * time_dilation * doppler_factor\n»,
«\n»,
» return p_res\n»,
«\n»,
» def acceleration(self, body_name):\n»,
» \»\»\»Расчет ускорения тела в рамках теории БПП\»\»\»\n»,
» body = self.system[body_name]\n»,
» a_total = np.zeros(2)\n»,
«\n»,
» # Центробежное ускорение (для вращающихся систем)\n»,
» if \»parent\» in body:\n»,
» parent = self.system[body[\»parent\»]]\n»,
» r_vec = body[\»position\»] — parent[\»position\»]\n»,
» r = np.linalg.norm(r_vec)\n»,
» if r > 1e-10:\n»,
» # Классическое центробежное ускорение\n»,
» v_tangent = np.array([-body[\»velocity\»][1], body[\»velocity\»][0]])\n»,
» centrifugal = np.dot(body[\»velocity\»], v_tangent) / r**2 * r_vec\n»,
» a_total += centrifugal\n»,
«\n»,
» # Расчет вкладов от всех других тел системы\n»,
» for source_name, source in self.system.items():\n»,
» if source_name == body_name:\n»,
» continue\n»,
«\n»,
» r_vec = source[\»position\»] — body[\»position\»]\n»,
» r = np.linalg.norm(r_vec)\n»,
» if r < 1e6: # Игнорируем очень близкие объекты\n»,
» continue\n»,
«\n»,
» v_rel = source[\»velocity\»] — body[\»velocity\»]\n»,
» direction = r_vec / r\n»,
«\n»,
» # Вероятность резонанса\n»,
» p_res = self.get_resonance_strength(body, source, r, v_rel)\n»,
«\n»,
» # Градиент вероятности резонанса\n»,
» dp_dr = p_res * (2 * self.G * source[\»mass\»]) / (self.c**2 * r**2)\n»,
«\n»,
» # Релятивистская поправка (прецессия перигелия)\n»,
» rel_correction = 1 + 3 * self.G * source[\»mass\»] / (self.c**2 * r)\n»,
«\n»,
» # Усиление релятивистских эффектов на малых расстояниях\n»,
» if r < 2e8:\n»,
» rel_correction *= 1.5\n»,
«\n»,
» # Ускорение согласно основному уравнению БПП\n»,
» a_mag = self.grav_coeff * self.c**2 * dp_dr / max(p_res, 1e-20) * rel_correction\n»,
» a_total += a_mag * direction\n»,
«\n»,
» # Сохраняем для диагностики\n»,
» self.acceleration_data[body_name].append(a_total.copy())\n»,
«\n»,
» return a_total\n»,
«\n»,
» def derivatives(self, t, y):\n»,
» \»\»\»Функция для решения системы дифференциальных уравнений\»\»\»\n»,
» names = list(self.system.keys())\n»,
» n = len(names)\n»,
» dy_dt = np.zeros(4 * n)\n»,
«\n»,
» # Обновление позиций и скоростей из вектора состояния\n»,
» for i, name in enumerate(names):\n»,
» self.system[name][\»position\»] = y[2*i:2*i+2]\n»,
» self.system[name][\»velocity\»] = y[2*n + 2*i:2*n + 2*i+2]\n»,
«\n»,
» # Расчет производных\n»,
» for i, name in enumerate(names):\n»,
» time_factor = self.system[name].get(\»local_time_factor\», 1.0)\n»,
«\n»,
» # Производная позиции = скорость * фактор времени\n»,
» dy_dt[2*i:2*i+2] = self.system[name][\»velocity\»] * time_factor\n»,
«\n»,
» # Производная скорости = ускорение * фактор времени\n»,
» a = self.acceleration(name)\n»,
» dy_dt[2*n + 2*i:2*n + 2*i+2] = a * time_factor\n»,
«\n»,
» return dy_dt\n»,
«\n»,
» def run_simulation(self):\n»,
» \»\»\»Запуск основной симуляции движения тел\»\»\»\n»,
» names = list(self.system.keys())\n»,
» n = len(names)\n»,
«\n»,
» # Начальные условия\n»,
» y0 = np.zeros(4 * n)\n»,
» for i, name in enumerate(names):\n»,
» y0[2*i:2*i+2] = self.system[name][\»position\»]\n»,
» y0[2*n + 2*i:2*n + 2*i+2] = self.system[name][\»velocity\»]\n»,
«\n»,
» # Решение системы ОДУ\n»,
» try:\n»,
» solution = solve_ivp(\n»,
» self.derivatives,\n»,
» [0, self.t_max],\n»,
» y0,\n»,
» t_eval=self.t_points,\n»,
» method=’DOP853′, # Высокоточный метод\n»,
» rtol=1e-9,\n»,
» atol=1e-9\n»,
» )\n»,
«\n»,
» # Обработка результатов\n»,
» trajectories = {}\n»,
» velocities = {}\n»,
» for i, name in enumerate(names):\n»,
» trajectories[name] = solution.y[2*i:2*i+2].T\n»,
» velocities[name] = solution.y[2*n + 2*i:2*n + 2*i+2].T\n»,
«\n»,
» # Относительная траектория Луны относительно Земли\n»,
» trajectories[\»Moon_relative\»] = trajectories[\»Moon\»] — trajectories[\»Earth\»]\n»,
» velocities[\»Moon_relative\»] = velocities[\»Moon\»] — velocities[\»Earth\»]\n»,
«\n»,
» return trajectories, velocities\n»,
«\n»,
» except Exception as e:\n»,
» print(f\»Ошибка при решении ОДУ: {e}\»)\n»,
» # Возвращаем начальные позиции в случае ошибки\n»,
» trajectories = {}\n»,
» velocities = {}\n»,
» for name in names:\n»,
» trajectories[name] = np.tile(self.system[name][\»position\»], (len(self.t_points), 1))\n»,
» velocities[name] = np.tile(self.system[name][\»velocity\»], (len(self.t_points), 1))\n»,
» trajectories[\»Moon_relative\»] = trajectories[\»Moon\»] — trajectories[\»Earth\»]\n»,
» velocities[\»Moon_relative\»] = velocities[\»Moon\»] — velocities[\»Earth\»]\n»,
» return trajectories, velocities\n»,
«\n»,
» def create_animation(self, moon_rel):\n»,
» \»\»\»Создание анимации движения Луны вокруг Земли\»\»\»\n»,
» fig, ax = plt.subplots(figsize=(10, 10))\n»,
» range_val = 1.5 * np.max(np.abs(moon_rel)) if len(moon_rel) > 0 else 1e9\n»,
» ax.set_xlim(-range_val, range_val)\n»,
» ax.set_ylim(-range_val, range_val)\n»,
» ax.set_title(‘Движение Луны вокруг Земли в БПП модели’, fontsize=14)\n»,
» ax.set_xlabel(‘x, м’, fontsize=12)\n»,
» ax.set_ylabel(‘y, м’, fontsize=12)\n»,
» ax.grid(True, linestyle=’—‘, alpha=0.5)\n»,
«\n»,
» # Земля\n»,
» earth_radius = range_val * 0.02\n»,
» earth = plt.Circle((0, 0), earth_radius, color=’blue’, alpha=0.7)\n»,
» ax.add_patch(earth)\n»,
«\n»,
» # Луна и орбита\n»,
» moon_dot, = ax.plot([], [], ‘ro’, ms=8)\n»,
» orbit_line, = ax.plot([], [], ‘r-‘, alpha=0.3)\n»,
» time_text = ax.text(0.02, 0.95, », transform=ax.transAxes, fontsize=12,\n»,
» bbox=dict(facecolor=’white’, alpha=0.7))\n»,
«\n»,
» # Инициализация\n»,
» def init():\n»,
» moon_dot.set_data([], [])\n»,
» orbit_line.set_data([], [])\n»,
» time_text.set_text(»)\n»,
» return moon_dot, orbit_line, time_text\n»,
«\n»,
» # Обновление кадра\n»,
» def update(frame):\n»,
» # Траектория за последние 200 шагов\n»,
» start_idx = max(0, frame — 200)\n»,
» x = moon_rel[start_idx:frame+1, 0]\n»,
» y = moon_rel[start_idx:frame+1, 1]\n»,
«\n»,
» orbit_line.set_data(x, y)\n»,
» moon_dot.set_data([moon_rel[frame, 0]], [moon_rel[frame, 1]])\n»,
«\n»,
» # Время в днях\n»,
» days = frame * self.dt / (24 * 3600)\n»,
» time_text.set_text(f’День: {days:.2f}’)\n»,
«\n»,
» return moon_dot, orbit_line, time_text\n»,
«\n»,
» # Создание анимации\n»,
» try:\n»,
» ani = FuncAnimation(\n»,
» fig, update, frames=len(moon_rel),\n»,
» init_func=init, blit=True, interval=30\n»,
» )\n»,
«\n»,
» # Сохранение\n»,
» ani.save(‘bpp_moon_animation.mp4′, writer=’ffmpeg’, fps=30, dpi=100)\n»,
» print(\»Анимация сохранена как ‘bpp_moon_animation.mp4’\»)\n»,
» except Exception as e:\n»,
» print(f\»Ошибка при создании анимации: {e}\»)\n»,
» finally:\n»,
» plt.close(fig)\n»,
«\n»,
» def plot_results(self, trajectories, velocities):\n»,
» \»\»\»Расширенная визуализация с параметрами БПП\»\»\»\n»,
» if \»Moon_relative\» not in trajectories:\n»,
» print(\»Нет данных для визуализации\»)\n»,
» return\n»,
«\n»,
» moon_rel = trajectories[\»Moon_relative\»]\n»,
» earth_sun = trajectories[\»Earth\»] — trajectories[\»Sun\»]\n»,
«\n»,
» # 1. Основной график орбиты\n»,
» fig, ax = plt.subplots(figsize=(12, 10))\n»,
«\n»,
» # Идеальная круговая орбита для сравнения\n»,
» real_orbit_radius = 3.844e8\n»,
» circle = plt.Circle((0, 0), real_orbit_radius, fill=False,\n»,
» color=’gray’, linestyle=’—‘, alpha=0.7,\n»,
» label=’Идеальная орбита’)\n»,
» ax.add_artist(circle)\n»,
«\n»,
» # Земля\n»,
» ax.plot(0, 0, ‘bo’, ms=15, label=’Земля’)\n»,
«\n»,
» # Орбита Луны с цветовой кодировкой резонанса\n»,
» resonance_strength = self.calculate_resonance(trajectories)\n»,
» scatter = ax.scatter(moon_rel[:, 0], moon_rel[:, 1], c=resonance_strength,\n»,
» cmap=’viridis’, s=10, alpha=0.7)\n»,
» plt.colorbar(scatter, label=’Сила резонанса’)\n»,
«\n»,
» # Направление на Солнце\n»,
» sun_dirs = earth_sun / np.linalg.norm(earth_sun, axis=1)[:, np.newaxis]\n»,
» for i in range(0, len(sun_dirs), len(sun_dirs)//10):\n»,
» ax.arrow(0, 0, sun_dirs[i,0]*real_orbit_radius*0.7,\n»,
» sun_dirs[i,1]*real_orbit_radius*0.7,\n»,
» head_width=1e7, head_length=2e7, fc=’orange’, ec=’orange’)\n»,
«\n»,
» # Настройка графика\n»,
» ax.set_title(‘Орбита Луны с параметрами БПП’, fontsize=16)\n»,
» ax.set_xlabel(‘x, м’, fontsize=14)\n»,
» ax.set_ylabel(‘y, м’, fontsize=14)\n»,
» ax.grid(True, linestyle=’—‘, alpha=0.7)\n»,
» ax.legend(fontsize=12, loc=’upper right’)\n»,
» ax.axis(‘equal’)\n»,
» max_range = 1.3 * np.max(np.abs(moon_rel))\n»,
» ax.set_xlim(-max_range, max_range)\n»,
» ax.set_ylim(-max_range, max_range)\n»,
» plt.savefig(‘bpp_moon_orbit_enhanced.png’, dpi=200)\n»,
» plt.close()\n»,
«\n»,
» # 2. График параметров БПП\n»,
» self.plot_bpp_parameters(trajectories, velocities)\n»,
«\n»,
» def calculate_resonance(self, trajectories):\n»,
» \»\»\»Расчет силы резонанса для Луны\»\»\»\n»,
» resonance = []\n»,
» moon_pos = trajectories[\»Moon\»]\n»,
» earth_pos = trajectories[\»Earth\»]\n»,
» sun_pos = trajectories[\»Sun\»]\n»,
«\n»,
» for i in range(len(moon_pos)):\n»,
» # Расстояния\n»,
» r_earth = np.linalg.norm(moon_pos[i] — earth_pos[i])\n»,
» r_sun = np.linalg.norm(moon_pos[i] — sun_pos[i])\n»,
«\n»,
» # Вероятность резонанса с Землей\n»,
» p_earth = np.exp(2 * self.G * self.system[\»Earth\»][\»mass\»] / (self.c**2 * r_earth))\n»,
«\n»,
» # Вероятность резонанса с Солнцем\n»,
» p_sun = np.exp(2 * self.G * self.system[\»Sun\»][\»mass\»] / (self.c**2 * r_sun))\n»,
«\n»,
» # Иерархическая композиция\n»,
» total_res = p_earth * 10**3 + p_sun * 1 # κ_earth = 10^3, κ_sun = 1\n»,
» resonance.append(total_res)\n»,
«\n»,
» return np.array(resonance)\n»,
«\n»,
» def plot_bpp_parameters(self, trajectories, velocities):\n»,
» \»\»\»Графики специфических параметров БПП\»\»\»\n»,
» time_days = self.t_points / (24 * 3600)\n»,
«\n»,
» # 1. Расстояние до Земли\n»,
» moon_rel = trajectories[\»Moon_relative\»]\n»,
» earth_distance = np.linalg.norm(moon_rel, axis=1)\n»,
«\n»,
» # 2. Сила резонанса\n»,
» resonance_strength = self.calculate_resonance(trajectories)\n»,
«\n»,
» # 3. Энергия актуализации\n»,
» moon_vel = velocities[\»Moon_relative\»]\n»,
» kinetic_energy = 0.5 * np.linalg.norm(moon_vel, axis=1)**2\n»,
» potential_energy = -self.G * self.system[\»Earth\»][\»mass\»] / earth_distance\n»,
» total_energy = kinetic_energy + potential_energy\n»,
«\n»,
» # 4. Угол Солнце-Земля-Луна\n»,
» earth_sun = trajectories[\»Sun\»] — trajectories[\»Earth\»]\n»,
» sun_dirs = earth_sun / np.linalg.norm(earth_sun, axis=1)[:, np.newaxis]\n»,
» moon_dirs = moon_rel / np.linalg.norm(moon_rel, axis=1)[:, np.newaxis]\n»,
» sun_moon_angle = np.degrees(np.arccos(np.clip(\n»,
» np.sum(sun_dirs * moon_dirs, axis=1), -1.0, 1.0)))\n»,
«\n»,
» fig, axs = plt.subplots(4, 1, figsize=(14, 16), sharex=True)\n»,
«\n»,
» # График 1: Расстояние и резонанс\n»,
» axs[0].plot(time_days, earth_distance, ‘b-‘, label=’Расстояние до Земли’)\n»,
» axs[0].axhline(y=3.844e8, color=’r’, linestyle=’—‘, label=’Реальное значение’)\n»,
» axs[0].set_ylabel(‘Расстояние, м’, fontsize=12)\n»,
» axs[0].legend(loc=’upper right’)\n»,
» ax_res = axs[0].twinx()\n»,
» ax_res.plot(time_days, resonance_strength, ‘g-‘, alpha=0.7, label=’Сила резонанса’)\n»,
» ax_res.set_ylabel(‘Резонанс’, color=’g’, fontsize=12)\n»,
» ax_res.legend(loc=’upper left’)\n»,
«\n»,
» # График 2: Энергии\n»,
» axs[1].plot(time_days, kinetic_energy, ‘b-‘, label=’Кинетическая’)\n»,
» axs[1].plot(time_days, potential_energy, ‘r-‘, label=’Потенциальная’)\n»,
» axs[1].plot(time_days, total_energy, ‘g-‘, label=’Полная’)\n»,
» axs[1].set_ylabel(‘Энергия, Дж’, fontsize=12)\n»,
» axs[1].legend()\n»,
«\n»,
» # График 3: Угол к Солнцу\n»,
» axs[2].plot(time_days, sun_moon_angle, ‘m-‘)\n»,
» axs[2].set_ylabel(‘Угол Солнце-Луна, °’, fontsize=12)\n»,
» axs[2].set_ylim(0, 180)\n»,
«\n»,
» # График 4: Эксцентриситет и большая полуось\n»,
» orbital = self.calculate_orbital_elements(trajectories, velocities)\n»,
» axs[3].plot(time_days, orbital[‘semi_major_axis’], ‘b-‘, label=’Большая полуось’)\n»,
» axs[3].axhline(y=3.844e8, color=’b’, linestyle=’—‘, label=’Реальное значение’)\n»,
» ax_ecc = axs[3].twinx()\n»,
» ax_ecc.plot(time_days, orbital[‘eccentricity’], ‘r-‘, label=’Эксцентриситет’)\n»,
» axs[3].set_xlabel(‘Время, дни’, fontsize=12)\n»,
» axs[3].set_ylabel(‘Полуось, м’, fontsize=12)\n»,
» ax_ecc.set_ylabel(‘Эксцентриситет’, color=’r’, fontsize=12)\n»,
» axs[3].legend(loc=’upper left’)\n»,
» ax_ecc.legend(loc=’upper right’)\n»,
«\n»,
» plt.suptitle(‘Динамика параметров БПП для системы Луна-Земля’, fontsize=16)\n»,
» plt.tight_layout()\n»,
» plt.savefig(‘bpp_parameters.png’, dpi=150)\n»,
» plt.close()\n»,
«\n»,
» # 5. Фазовый портрет\n»,
» radial_velocity = np.sum(moon_rel * velocities[\»Moon_relative\»], axis=1) / earth_distance\n»,
» plt.figure(figsize=(10, 8))\n»,
» plt.scatter(earth_distance, radial_velocity, c=time_days, cmap=’viridis’, s=10)\n»,
» plt.colorbar(label=’Время, дни’)\n»,
» plt.axvline(x=3.844e8, color=’r’, linestyle=’—‘, alpha=0.7)\n»,
» plt.axhline(y=0, color=’k’, linestyle=’-‘, alpha=0.3)\n»,
» plt.xlabel(‘Расстояние Земля-Луна, м’, fontsize=12)\n»,
» plt.ylabel(‘Радиальная скорость, м/с’, fontsize=12)\n»,
» plt.title(‘Фазовый портрет движения Луны’, fontsize=14)\n»,
» plt.grid(True, alpha=0.3)\n»,
» plt.savefig(‘phase_portrait.png’, dpi=150)\n»,
» plt.close()\n»,
«\n»,
» def calculate_orbital_elements(self, trajectories, velocities):\n»,
» \»\»\»Расчет орбитальных элементов Луны\»\»\»\n»,
» moon_rel = trajectories[\»Moon_relative\»]\n»,
» moon_vel_rel = velocities[\»Moon_relative\»]\n»,
«\n»,
» eccentricity = []\n»,
» semi_major_axis = []\n»,
«\n»,
» for i in range(len(moon_rel)):\n»,
» r_vec = moon_rel[i]\n»,
» r = np.linalg.norm(r_vec)\n»,
» v_vec = moon_vel_rel[i]\n»,
» v = np.linalg.norm(v_vec)\n»,
«\n»,
» # Гравитационный параметр Земли\n»,
» mu = self.G * self.system[\»Earth\»][\»mass\»]\n»,
«\n»,
» # Угловой момент\n»,
» h_vec = np.cross(np.append(r_vec, 0), np.append(v_vec, 0))\n»,
» h = np.linalg.norm(h_vec)\n»,
«\n»,
» # Вектор эксцентриситета\n»,
» e_vec = ((v_vec.dot(v_vec) — mu/r) * r_vec — r_vec.dot(v_vec) * v_vec) / mu\n»,
» e = np.linalg.norm(e_vec)\n»,
«\n»,
» # Большая полуось\n»,
» p = h**2 / mu\n»,
» if e < 1:\n»,
» a = p / (1 — e**2)\n»,
» else:\n»,
» a = p / (e**2 — 1)\n»,
«\n»,
» eccentricity.append(e)\n»,
» semi_major_axis.append(a)\n»,
«\n»,
» return {\n»,
» \»semi_major_axis\»: np.array(semi_major_axis),\n»,
» \»eccentricity\»: np.array(eccentricity)\n»,
» }\n»,
«\n»,
» def run_full_analysis(self):\n»,
» \»\»\»Полный цикл анализа: симуляция + визуализация\»\»\»\n»,
» # Запуск симуляции\n»,
» trajectories, velocities = self.run_simulation()\n»,
«\n»,
» # Визуализация орбиты с новыми параметрами\n»,
» self.plot_results(trajectories, velocities) # Исправлено: добавлен velocities\n»,
«\n»,
» # Расчет орбитальных элементов\n»,
» orbital_elements = self.calculate_orbital_elements(trajectories, velocities)\n»,
«\n»,
» # Визуализация элементов орбиты\n»,
» if len(self.t_points) > 0:\n»,
» time_days = self.t_points / (24 * 3600)\n»,
«\n»,
» plt.figure(figsize=(14, 10))\n»,
«\n»,
» # Большая полуось\n»,
» plt.subplot(211)\n»,
» plt.plot(time_days, orbital_elements[\»semi_major_axis\»])\n»,
» plt.axhline(y=3.844e8, color=’r’, linestyle=’—‘, label=’Наблюдаемое значение’)\n»,
» plt.title(‘Большая полуось орбиты Луны’, fontsize=14)\n»,
» plt.ylabel(‘a, м’, fontsize=12)\n»,
» plt.grid(True)\n»,
» plt.legend()\n»,
«\n»,
» # Эксцентриситет\n»,
» plt.subplot(212)\n»,
» plt.plot(time_days, orbital_elements[\»eccentricity\»])\n»,
» plt.axhline(y=0.0549, color=’r’, linestyle=’—‘, label=’Наблюдаемое значение’)\n»,
» plt.title(‘Эксцентриситет орбиты Луны’, fontsize=14)\n»,
» plt.ylabel(‘e’, fontsize=12)\n»,
» plt.xlabel(‘Время, дни’, fontsize=12)\n»,
» plt.grid(True)\n»,
» plt.legend()\n»,
«\n»,
» plt.tight_layout()\n»,
» plt.savefig(‘orbital_parameters.png’, dpi=150)\n»,
» plt.close()\n»,
» else:\n»,
» print(\»Нет данных для построения графиков орбитальных параметров\»)\n»,
«\n»,
» return trajectories, velocities, orbital_elements\n»,
«\n»,
«# Запуск симуляции\n»,
«if __name__ == \»__main__\»:\n»,
» print(\»Запуск иерархической модели БПП…\»)\n»,
» simulator = HierarchicalBPPSimulator()\n»,
» print(\»Проведение полного анализа…\»)\n»,
» trajectories, velocities, orbital_elements = simulator.run_full_analysis()\n»,
» print(\»Анализ завершен! Результаты сохранены в файлах:\»)\n»,
» print(\»- bpp_moon_orbit.png: Орбита Луны\»)\n»,
» print(\»- orbital_parameters.png: Параметры орбиты\»)\n»,
» print(\»- bpp_moon_animation.mp4: Анимация движения (если создана)\»)»
]
}
]
}