{ "cells": [ { "cell_type": "markdown", "id": "innovative-prayer", "metadata": {}, "source": [ "# Прикладные дифференциальные уравнения\n", "## Домашнее задание №5\n", "\n", "\n", "*Илья Щуров*\n", "\n", "Факультет компьютерных наук, Прикладная математики и информатика, 2021-22 учебный год\n", "\n", "[Страница курса](http://math-info.hse.ru/2021-22/Прикладные_дифференциальные_уравнения)" ] }, { "cell_type": "markdown", "id": "rental-syracuse", "metadata": {}, "source": [ "### Отображение Пуанкаре\n", "Рассмотрим дифференциальное уравнение на плоскости:\n", "$$\\dot z = v(z),\\quad z \\in \\mathbb R^2.$$\n", "Обозначим его решение с начальным условием $z(0)=z_0$ через $z=\\varphi(t, z_0)$.\n", "\n", "Рассмотрим некоторую гладкую кривую в фазовом пространстве $\\Gamma \\subset \\mathbb R^2$. Предположим, что ни в одной своей точке $\\Gamma$ не касается векторов векторного поля $v$. Отображение Пуанкаре $P$ действует с $\\Gamma$ на $\\Gamma$ (при этом оно может быть не определено в каких-то точках $\\Gamma$) и задаётся следующим образом.\n", "\n", "Возьмём какую-то точку $z_0 \\in \\Gamma$ и рассмотрим решение $z=\\varphi(t, z_0)$. Соответствующая траектория стартует на $\\Gamma$ в точке $z_0$ и, возможно, в какой-то момент снова пересечёт $\\Gamma$. Если это случилось, мы обозначим точку первого пересечения (при $t>0$) через $z_1$ и положим по определению $P(z_0) := z_1$. \n", "\n", "Формально: рассмотрим множество моментов пересечения\n", "$$\\{t>0 \\mid \\varphi(t, z_0) \\in \\Gamma\\}.$$\n", "Если это множество непусто, у него есть минимальный элемент. (Это следует из условия трансверсальности, но мы не будем сейчас это доказывать.) Обозначим его через $t_1(z_0)$. Тогда по определению\n", "\n", "$$P(z_0) := \\varphi(t_1(z_0), z_0).$$\n", "Если множество моментов пересечения пусто, $P(z_0)$ не определено." ] }, { "cell_type": "markdown", "id": "digital-evaluation", "metadata": {}, "source": [ "### Задача 1 (аналитическая, 10 баллов)\n", "Рассмотрим систему\n", "$$\\dot x = y, \\quad \\dot y = -x - \\mu y$$\n", "Она встречалась вам в задаче про маятник с трением. Будем считать, что $\\mu$ может быть как положительным, так и отрицательным.\n", "\n", "Пусть $\\Gamma = \\{(x, 0)\\mid x>0\\}$. В качестве координаты на $\\Gamma$ возьмём $x$.\n", "\n", "1. Найдите отображение Пуанкаре с $\\Gamma$ на себя.\n", "\n", "2. Пусть $x_0=1$. Рассмотрим *орбиту* точки $x_0$ под действием $P$, то есть последовательность $x_n=P^n(x_0)$, где $P^n$ — $n$-я композиционная степень $P$. Иными словами, $x_{n}=P(x_{n-1})$, $n \\in \\mathbb N$. Что вы можете сказать про эту последовательность в зависимости от $\\mu$? Что можно сказать про её предел? Как свойства этой последовательности связаны со свойствами решений исходного дифференциального уравнения?" ] }, { "cell_type": "markdown", "id": "surgical-franchise", "metadata": {}, "source": [ "### Задача 2 (компьютерная, 20 баллов)\n", "Рассмотрим систему\n", "$$\\dot x = -\\varepsilon x + 3y + x\\rho(\\rho-1)(\\rho-2), \\quad \\dot y = -3x - \\varepsilon y + y \\rho(\\rho-1)(\\rho-2),$$\n", "где $\\rho=x^2+y^2$.\n", "\n", "Пусть $\\Gamma=\\{(x, 0) \\mid x \\in (0, 1.2)\\}$.\n", "\n", "1. Напишите функцию `poincare(x_0, eps)`, которая вычисляет значение отображения Пуанкаре в точке $(x_0, 0) \\in \\Gamma$. Сделать это можно так: с помощью `scipy.integrate.ode` совершать маленькие шажки по траектории до того момента, как две соседние точки траектории окажутся по разные стороны от горизонтальной оси. Затем нужно соединить эти точки отрезком и найти точку его пересечения с горизонтальной прямой. Если эта точка попала в интервал $(0, 1.2)$, её $x$-координата и будет искомым значением $P(x_0)$ (здесь мы считаем, что траектория хорошо приближается своей хордой, что правда, если шажки маленькие). Если не попала, нужно двигаться дальше, до тех пор, пока не пройдёт достаточно много времени, или до тех пор, пока точка не уйдёт достаточно далеко от начала координат. Если найти точку пересечения так и не удалось, следует вернуть `np.nan`. \n", "\n", "2. Постройте график отображения Пуанкаре для значений $\\varepsilon=0$, $\\varepsilon=0.1$, $\\varepsilon=0.3$, $\\varepsilon=0.38$, $\\varepsilon=0.4$. На том же графике постройте график тождественного отображения. Для каждого из рассмотренных значений $\\varepsilon$ найдите (хотя бы примерно) все неподвижные точки отображения Пуанкаре (то есть такие точки $x_*$, что $P(x_*)=x_*$. Что происходит с неподвижными точками при изменении $\\varepsilon$?\n", "\n", "3. Постройте фазовые портреты исходной системы для тех же значений $\\varepsilon$. Постройте притягивающие и отталкивающие предельные циклы (подсказка: отталкивающий предельный цикл — это такой предельный цикл, к которому траектории стремятся при $t \\to -\\infty$, так что их можно строить так же, как притягивающие предельные циклы, только для системы с обращённым временем). Как связаны притягивающие и отталкивающие циклы с неподвижными точками отображения Пуанкаре? Что вы можете сказать про производную отображения Пуанкаре в точках, соответствующих притягивающим / отталкивающим предельным циклам, которые вы наблюдаете? Что происходит с предельными циклами при изменении $\\varepsilon$?" ] }, { "cell_type": "markdown", "id": "historical-program", "metadata": {}, "source": [ "### Задача 3 (бонусная, компьютерная, 0 баллов)\n", "Напишите функцию, которая находит отображение Пуанкаре для произвольной системы на плоскости и произвольного $\\Gamma$, имеющего вид интервала (заданного своими концами, не обязательно лежащими на координатных прямых)." ] } ], "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 }