{ "cells": [ { "cell_type": "markdown", "id": "looking-guest", "metadata": {}, "source": [ "# Прикладные дифференциальные уравнения\n", "## Домашнее задание №2\n", "\n", "\n", "*Илья Щуров*\n", "\n", "Факультет компьютерных наук, Прикладная математики и информатика, 2021-22 учебный год\n", "\n", "[Страница курса](http://math-info.hse.ru/2021-22/Прикладные_дифференциальные_уравнения)" ] }, { "cell_type": "markdown", "id": "later-valuation", "metadata": {}, "source": [ "Задание выполнил(а): *впишите ваше имя*" ] }, { "cell_type": "markdown", "id": "prostate-blend", "metadata": {}, "source": [ "Задание выполняется самостоятельно. Вам запрещено смотреть в чужое решение до сдачи работы или давать своё решения для прочтения кому-либо, а также совершать эквивалентные действия — например, обсуждать решения устно, если в результате такого обсуждения тексты работ могут оказаться настолько сходными, чтобы вызвать подозрения в несамостоятельном решении.\n", "\n", "В случае сдачи работы после срока сдачи оценка будет вычисляться как решение дифференциального уравнения $\\dot x = -x$ с начальным условием $x(0)=x_0$, где $x_0$ — оценка, которую вы получили бы за работу, если бы сдали её в срок; время измеряется в днях, но течёт непрерывно, округлений нет." ] }, { "cell_type": "markdown", "id": "derived-reservation", "metadata": {}, "source": [ "### Задача 1 (аналитическая)\n", "\n", "Эта задача решается с помощью ручки и бумаги.\n", "\n", "Простейшая модель сражения двух армий выглядит следующим образом. За единицу времени каждый солдат первой армии уничтожает $\\alpha$ солдат второй армии, а каждый солдат второй армии уничтожает $\\beta$ солдат первой. Величины $\\alpha$ и $\\beta$ соответствуют качеству вооружения, боевой подготовке и в целом эффективности каждой армии.\n", "\n", "1. Допустим, вторая армия перед сражение вдвое больше первой по численности. Как вы думаете, во сколько раз эффективность первой армии должна быть выше, чтобы свести сражение в ничью? Запишите ответ, основываясь на своей интуиции, прежде, чем делать следующие пункты. (Ответ не будет оцениваться, просто интересно будет потом сравнить интуицию с реальными результатами, так что не стоит думать слишком долго :) )" ] }, { "cell_type": "markdown", "id": "informative-highway", "metadata": {}, "source": [ "*ваш ответ здесь*" ] }, { "cell_type": "markdown", "id": "annual-sacramento", "metadata": {}, "source": [ "2. Запишем модель в виде системы дифференциальных уравнений:\n", "$$\\begin{cases}\n", "\\dot x = - \\beta y, \\\\\n", "\\dot y = - \\alpha x,\n", "\\end{cases}$$\n", "где $x(t)$ и $y(t)$ — численность каждой из армий в момент времени $t$, фазовое пространство $x\\ge 0$, $y\\ge 0$. Найдите уравнения фазовых кривых и первый интеграл этой системы (аналитически). " ] }, { "cell_type": "markdown", "id": "announced-lodging", "metadata": {}, "source": [ "*ваше решние здесь*" ] }, { "cell_type": "markdown", "id": "normal-barcelona", "metadata": {}, "source": [ "3. Возьмите значения $\\alpha$ и $\\beta$, соответствующие вашему ответу в пункте 1. Постройте без использования компьютера векторное поле этой системы и фазовый портрет. (Можно вставить картинку со сканом.) Отметьте стрелочками направление движения по фазовым кривым. При каких начальных условиях (то есть стартовых размерах армий) побеждает первая армия, при каких вторая, при каких будет ничья? (Заметим, что нам не нужно находить зависимость $x$ и $y$ от $t$, чтобы ответить на этот вопрос.) Верен ли ваш ответ на пункт 1? Какой ответ верный? Если ваша интуиция вас подвела, попробуйте проанализировать, почему так вышло, какой фактор вы не учли?" ] }, { "cell_type": "markdown", "id": "relevant-accordance", "metadata": {}, "source": [ "*ваше решние здесь*" ] }, { "cell_type": "markdown", "id": "spectacular-familiar", "metadata": {}, "source": [ "### Задача 2 (компьютерная)\n", "\n", "В этой задаче нужно писать код. Можно использовать `scipy.integrate.odeint`, `scipy.integrate.ode` и все материалы с семинара.\n", "\n", "Рассмотрим движение спутника с пренебрежимо малой массой $m$ в поле тяготения массивной планеты. Пусть планета находится в начале координат, её масса равна $M$. Обозначим через $\\mathbf r(t)$ радиус-вектор спутника в момент времени $t$. Сила, действующая на спутник, равна\n", "$$F(\\mathbf r)=-G mM\\frac{\\mathbf r}{\\left|\\mathbf r\\right|^3},$$\n", "где $G$ — гравитационная постоянная. Движение спутника происходит в одной и той же плоскости, поэтому можно считать, что $\\mathbf r(t) \\in \\mathbb R^2$.\n", "\n", "0. С помощью второго закона Ньютона запишите систему дифференциальных уравнений первого порядка, описывающую движение спутника. (Какова размерность фазового пространства этой системы?)" ] }, { "cell_type": "markdown", "id": "automated-attitude", "metadata": {}, "source": [ "*ваше решение здесь*" ] }, { "cell_type": "markdown", "id": "floral-allah", "metadata": {}, "source": [ "1. Напишите функцию, которая для данного начального положения и скорости спутника строит его орбиту (то есть кривую $\\{(x_1(t), x_2(t)) \\mid t\\in [0, T]\\}$, где $\\mathbf r(t)=(x_1(t), x_2(t))$). Постройте несколько орбит с разными значениями стартовых параметров." ] }, { "cell_type": "code", "execution_count": 27, "id": "infinite-adams", "metadata": {}, "outputs": [], "source": [ "# ваше решение здесь" ] }, { "cell_type": "markdown", "id": "solar-calendar", "metadata": {}, "source": [ "2. Напишите функцию, которая для данного начального положения и скорости спутника строит анимацию его движения по орбите. В каждый момент времени должен быть нарисован сам спутник и к нему приложен его вектор скорости $\\dot{\\mathbf{r}}$. Постройте анимацию с какими-нибудь начальными значениями параметров (так, чтобы орбита были эллиптической).\n" ] }, { "cell_type": "code", "execution_count": 28, "id": "decreased-actor", "metadata": {}, "outputs": [], "source": [ "# ваше решение здесь" ] }, { "cell_type": "markdown", "id": "steady-triumph", "metadata": {}, "source": [ "3. Проверьте с помощью симуляции, что функция\n", "$$H(\\mathbf r, \\mathbf v)=\\frac{\\left|\\mathbf v\\right|^2}{2} - \\frac{MG}{\\left|\\mathbf r\\right|}$$ \n", "является первым интегралом системы. (Эта функция пропорциональна полной механической энергии системы.)" ] }, { "cell_type": "code", "execution_count": 29, "id": "spanish-nirvana", "metadata": {}, "outputs": [], "source": [ "# ваше решение здесь" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.10" } }, "nbformat": 4, "nbformat_minor": 5 }