На этом этапе осуществляется перевод физической задачи в форму, пригодную для численного интегрирования.
1.1. Определение основных физических констант (
2.1. Определение вектора состояния
На этом этапе реализуются и запускаются методы решения задачи Коши.
1.1.1 Метод Рунге-Кутты 4-го порядка (РК-4)
Мы решаем систему первого порядка
Формулы для шага от
-
Первый наклон (
$\mathbf{k}_1$ ): Наклон в начале интервала.$$\mathbf{k}_1 = h \cdot \mathbf{f}(t_n, \mathbf{Y}_n)$$ -
Второй наклон (
$\mathbf{k}_2$ ): Наклон в средней точке (1).$$\mathbf{k}_2 = h \cdot \mathbf{f}\left(t_n + \frac{h}{2}, \mathbf{Y}_n + \frac{\mathbf{k}_1}{2}\right)$$ -
Третий наклон (
$\mathbf{k}_3$ ): Наклон в средней точке (2).$$\mathbf{k}_3 = h \cdot \mathbf{f}\left(t_n + \frac{h}{2}, \mathbf{Y}_n + \frac{\mathbf{k}_2}{2}\right)$$ -
Четвертый наклон (
$\mathbf{k}_4$ ): Наклон в конце интервала.$$\mathbf{k}_4 = h \cdot \mathbf{f}(t_n + h, \mathbf{Y}_n + \mathbf{k}_3)$$
Обновление вектора состояния
(Все операции выполняются векторно (покомпонентно) над массивами NumPy).
1.2.1 Начальные условия (
Для запуска метода РК-4 требуется только один начальный вектор состояния $\mathbf{Y}0$ в момент времени $t_0=0$. Этот вектор формируется на основе заданных параметров **$V{start}$** (величина начальной скорости) и
| Компонента | Формула | Описание |
|---|---|---|
| Начальное положение X (Старт с поверхности Земли) | ||
| Начальное положение Y | ||
| Начальная скорость X ( |
||
| Начальная скорость Y |
Таким образом, начальный вектор состояния: $$\mathbf{Y}0 = \begin{pmatrix} R{Земли} \cos \alpha \ R_{Земли} \sin \alpha \ V_{start} \cos \alpha \ V_{start} \sin \alpha \end{pmatrix}$$
1.1.3 Процесс вычисления первых 4-х точек
Для многошагового метода Адамса-Башфорта 4-го порядка требуется
| Шаг | Входные данные | Выходные данные | Время |
|---|---|---|---|
| 0 | Заданы | ||
| 1 |
|
||
| 2 |
|
||
| 3 |
|
После этого мы передаём эти 4 вектора
1.2.1 Метод Адамса-Башфорта 4-го порядка (АБ-4)
Метод Адамса-Башфорта 4-го порядка — это явный, многошаговый метод, используемый для численного интегрирования системы ОДУ
1.2.2 Фундаментальное требование (Начальная стадия)
Поскольку АБ-4 является многошаговым и требует знаний о четырёх предыдущих векторах состояния, он не может начать расчёт с одной начальной точки
Начальные условия: Четыре начальных вектора состояния (
$\mathbf{Y}_0, \mathbf{Y}_1, \mathbf{Y}_2, \mathbf{Y}_3$ ) и соответствующие им значения правой части ($\mathbf{f}_0, \mathbf{f}_1, \mathbf{f}_2, \mathbf{f}_3$ ) обязательно вычисляются с помощью более точного одношагового метода, такого как Рунге-Кутта 4-го порядка (РК-4).
1.2.3 Формула Адамса-Башфорта 4-го порядка
После того как первые четыре точки получены, метод АБ-4 использует их для вычисления последующего вектора состояния
Где:
- $\mathbf{Y}{n+1}$ — искомый вектор состояния в момент $t{n+1}$.
-
$\mathbf{Y}_n$ — вектор состояния на предыдущем шаге$t_n$ . -
$h$ — шаг интегрирования. -
$\mathbf{f}_k = \mathbf{f}(t_k, \mathbf{Y}_k)$ — вектор производных (ускорений) в момент$t_k$ .
Для вычисления
-
$\mathbf{f}_n$ : Производная на текущем шаге. - $\mathbf{f}{n-1}, \mathbf{f}{n-2}, \mathbf{f}_{n-3}$: Производные на трёх предыдущих шагах.
После вычисления $\mathbf{Y}{n+1}$, его производная $\mathbf{f}{n+1} = \mathbf{f}(t_{n+1}, \mathbf{Y}{n+1})$ сразу же вычисляется и сохраняется. Она будет использована на следующем шаге, когда потребуется вычислить $\mathbf{Y}{n+2}$.
2.1. Выбор цели: Задача 1 — "Сделать полный оборот вокруг Луны".
2.2. Определение начальной позиции ($\mathbf{r}3(0)$): Старт с поверхности Земли (например, $\mathbf{r}3(0)$ по углу $\alpha$ с радиусом $R{Земли} = 6,371,000 \text{ м}$).
2.3. Определение начальной скорости ($\mathbf{v}3(0)$):
* Величина скорости $V{start}$ должна быть $\ge 11200 \text{ м/с}$ (вторая космическая скорость). Выбирается $V{start} = 11250 \text{ м/с}$.
* Направление скорости
3.1. Расчет первых 4 точек с помощью РК-4.
3.2. Расчет полной траектории
На этом этапе создается финальный продукт — анимация, демонстрирующая физическую суть процесса.
1.1. Создание функции animate_solution с использованием matplotlib.animation.FuncAnimation.
1.2. Фиксация масштаба: Установка пределов осей update(i) для динамического обновления положения Земли, Луны и ЛА на каждом кадре. Увеличение параметра interval для замедления воспроизведения.