%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper, 10pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\title{}
\author{}
\date{}

%%------------------------------------------------------------------------------
%% Packages

\usepackage[]{geometry}
\usepackage{amsmath,amsfonts,amsthm}
\usepackage[matha,mathb,mathx]{mathabx} % french mathematical symbols and more
\usepackage[svgnames]{xcolor}
\usepackage{fancyhdr}
\usepackage{hyperref}
\usepackage{mathtools}
\usepackage{lastpage}

\usepackage[french]{babel}

%%------------------------------------------------------------------------------
%% Packages setup

% geometry
\geometry{textwidth = 0.75\paperwidth,
  textheight = 0.75\paperheight}
%defaults : textwidth = 0.7\paperwidth = 1675.8pt, textheight = 0.7\paperheight = 4788pt

% hyperref
\hypersetup{colorlinks=true,
  citecolor=DarkBlue,
  linkcolor=DarkBlue,
  linktoc=page,
  urlcolor=black}

% fancyhdr
%% BUG: Do not issue \fancypagestyle{fancy}{<fancyhdr commands>}, the LaTeX compiler will hang at the first \pagestyle{fancy} call since it will enter in an infinite recursive loop.

%% \fancypagestyle{fancy}{%
%%   \fancyhf{} % clear all header and footer fields
%%   \lhead{École Normale Supérieure de Lyon\\Département de mathématiques}
%%   \rhead{2021--2022\\Option B pour l'agrégation}
%%   \rfoot{\thepage /\pageref{LastPage}}
%%   \renewcommand{\footrulewidth}{0.5pt}
%%   \setlength{\headheight}{24.2pt}} % required for headers spanning two lines

\fancypagestyle{plain}{%
  \fancyhf{}
  \rfoot{\thepage /\pageref{LastPage}}
  \renewcommand{\headrulewidth}{0pt}}

\pagestyle{fancy} % sets page style for the whole document
\fancyhf{} % clear all header and footer fields
\lhead{École Normale Supérieure de Lyon\\Département de mathématiques}
\rhead{2021--2022\\Option B pour l'agrégation}
\rfoot{\thepage /\pageref{LastPage}}
\renewcommand{\footrulewidth}{0.5pt}
\setlength{\headheight}{24.2pt} % required for headers spanning two lines


%%------------------------------------------------------------------------------
%% Custom environments/macros

\theoremstyle{definition}
\newtheorem*{defi}{Définition}

%% correction stuff
%\newcommand{\correc}[1]{}
%\renewcommand{\correc}[1]{#1}  % comment out to remove corrections
% do not forget to compile twice to get page numbering right

\newtheorem*{solution}{Solution}
\newcommand{\sol}[1]{%
  \correc{\begin{solution}
      #1 \end{solution}}}

%\renewcommand{\thesection}{\Alph{section}}

\newcommand{\R}{\mathbb{R}}
\newcommand{\C}{\mathbb{C}}
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\Q}{\mathbb{Q}}
\newcommand{\N}{\mathbb{N}}
\newcommand{\Sph}{\mathbb{S}}
\newcommand{\mc}{\mathcal}
\newcommand{\eps}{\varepsilon}

\renewcommand{\Im}{\operatorname{Im}}
\renewcommand{\Re}{\operatorname{Re}}
\newcommand{\Id}{\operatorname{Id}}
\DeclareMathOperator{\Tr}{Tr}

\newcommand{\fonction}[5]{%
  \begin{array}[t]{lrcl}
    #1 :&#2 &\longrightarrow &\displaystyle #3\\
    &#4& \longmapsto &\displaystyle #5
  \end{array}
}

\newcommand{\dbra}[1]{\ldbrack #1 \rdbrack}
\DeclarePairedDelimiter{\norm}{\lVert}{\rVert} %% requires mathtools
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\DeclarePairedDelimiter{\sbra}{[}{]}
\DeclarePairedDelimiter{\pare}{(}{)}
\DeclarePairedDelimiter{\osbral}{]}{]}
\DeclarePairedDelimiter{\osbra}{]}{[}
\DeclarePairedDelimiter{\osbrar}{[}{[}

% Exercices numbering and more 
\newcounter{exercice}
\newcounter{question}[section]
\newcounter{subquestion}[question]

\newcommand{\qstn}{\stepcounter{question}\paragraph{\thequestion.}~}
\newcommand{\sqstn}{\stepcounter{subquestion}\paragraph{\thequestion.\thesubquestion.}~}
\newcommand{\ex}{\refstepcounter{exercice}\paragraph{Exercice \theexercice.}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\begin{center}
  {\Large \bf TD 6 : Résolution d'équations différentielles ordinaires}
\end{center}
\bigskip

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\section{Résolutions explicites}

\ex (Quelques résolutions explicites de systèmes non-linéaires)
On se donne $a$, $b$ et $c :\R\rightarrow \R$ des fonctions continues.
\begin{enumerate}
\item Résoudre l'équation suivante sur $\R$ :
  \begin{equation*}
    y'(t) = a(t) y(t) + b(t).
  \end{equation*}
\item Équation de Bernoulli : en étudiant le changement de variable $z = y^{1-\alpha}$, résoudre l'équation suivante sur $\R$ :
  \begin{equation*}
    y'(t) = a(t) y(t)^\alpha + b(t)y(t).
  \end{equation*}
\item Équation de Ricatti :
  supposons que l'on connaisse une solution particulière de
  \begin{equation*}
    y'(t) = a(t) y(t)^2 + b(t)y(t) + c(t)
  \end{equation*}
  et supposons que $y_2$ en soit une autre.
  De quelle EDO $y_2 - y_1$ est-elle solution ?
\end{enumerate}

%%%%%%%%%%%%%%%%%%%%
  
\ex (D'autres résolutions explicites)
Résoudre les problèmes de Cauchy suivant :
\begin{enumerate}
\item Sur $\R_+^*$ :
  \begin{equation*}
    y'(t) = \frac 1 2 y^3(t) - \frac{1}{2t} y(t) , \ y(1) = 1.
  \end{equation*}
\item Sur $\R$ :
  \begin{equation*}
    (1+t^2) y'(t) - ty(t) = 1+t^2 , \ y(0) = 1.
  \end{equation*}
\end{enumerate}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Méthodes numériques}

On rappelle les schémas basiques pour résoudre l'EDO \(y'=f(t,y)\) :
\begin{itemize}
\item Euler explicite : \(y_{k+1} = y_k + h_kf(t_k,y_k)\)
\item Euler implicite : \(y_{k+1} = y_k + h_kf(t_{k+1},y_{k+1})\)
\item Crank-Nicholson : \(y_{k+1} = y_k + \frac{h_k}{2}(f(t_k,y_k)+f(t_{k+1},y_{k+1}))\)
\item Tableaux des méthodes de Runge-Kutta :
  \[
  \begin{array}{c|cc}
    \multicolumn{3}{l}{\text{Heun :}}\\
    0 & & \\
    1 & 1 & \\ \hline
    1 & 1/2 & 1/2
  \end{array}\qquad
  \begin{array}{c|cc}
    \multicolumn{3}{l}{\text{Runge-Kutta 2 :}}\\
    0 & & \\
    1/2 & 1/2 & \\ \hline
    1 & 0 & 1 
  \end{array}\qquad
  \begin{array}{c|cccc}
    \multicolumn{5}{l}{\text{Runge-Kutta 4 :}}\\
    0 & & & & \\
    1/2 & 1/2 & & & \\
    1/2 & 0 & 1/2 & & \\
    1 & 0 & 0 & 1 &\\ \hline
    1 & 1/6 & 1/3 & 1/3 & 1/6
  \end{array}
  \]
\end{itemize}



%%%%%%%%%%%%%%%%%%%%


\ex (Erreur de consistance)
Dans tout l'exercice, on étudie l'équation différentielle ordinaire $y' = f(t,y)$. On suppose que \(f\) est de classe \(\mc C^2\).
\begin{enumerate}
\item  Montrer que le schéma d'Euler explicite (i.e. Runge-Kutta 1) est consistant d'ordre 1.
\item Montrer que le schéma de Runge-Kutta 2 est consistant d'ordre 2.
\item Montrer que le schéma de Heun est consistant d'ordre 2.
\end{enumerate}
 
%%%%%%%%%%%%%%%%%%%%

\ex (Mise en œuvre)
Programmer (en dimension 1) les schémas numériques classiques (Runge-Kutta 1, 2 et si vous êtes motivés 4, Heun, Euler explicite, implicite et Crank-Nicholson).
On pensera à tester ces schémas sur une EDO dont on connaît une solution exacte.
Illustrer l'erreur faite par ces schémas en fonction du pas de discrétisation.

\emph{Remarque} : on pourra aussi penser à utiliser le module \texttt{integrate} de \texttt{scipy} qui contient plein de routines très pratiques ! On rappelle que dans le programme de l'agrégation figure explicitement l'\og utilisation de méthodes d’ordre élevé via les routines proposées par les logiciels\fg.

%%%%%%%%%%%%%%%%%%%%

\ex (Champs de vecteurs)
Écrire une matrice qui prend une matrice $A\in M_2(\R)$ en entrée
et renvoie le champ des vitesses de l'EDO autonome $y' = Ay$.
On pourra utiliser la fonction \texttt{quiver} de \texttt{matplotlib}.

%%%%%%%%%%%%%%%%%%%%

\ex (Problèmes raides)
On va s'intéresser dans cet exercice à la notion de \emph{problèmes raides} intervenant dans plusieurs configurations
\begin{enumerate}
\item   On considère dans un premier temps le système
  \begin{equation*}
    y'(t) = -\lambda y(t) + c, \ y(0) = 1
  \end{equation*}
  \begin{enumerate}
  \item Donner la solution de ce système ainsi que son point d'équilibre $l$.
  \item On note $x^n$ la suite donnée par une discrétisation de cette EDO par l'algorithme d'Euler explicite pour un pas de temps $\Delta t$.
    Donner une expression de $x^n$.
  \item Commenter en fonction des valeurs de $\lambda$ et $\Delta t$.
  \item Reprendre les deux questions précédentes avec le schéma d'Euler implicite.
  \end{enumerate}
  Quand $\lambda$ est grand, on dit que le problème est \emph{raide}. 
  Les problèmes raides interviennent dans beaucoup de domaines et font souvent intervenir des 
  dynamiques ayant des temps caractéristiques très petits ou grands.
  
\item Historiquement, ce genre de problème est apparu dans des équations du type :
  \begin{equation*}
    y'(t) = \frac{-y(t) + \cos(t)}{\eps}.
  \end{equation*}
  \begin{enumerate}
  \item Donner les solutions explicites de cette équation différentielle.
  \item Donner la suite $y^n$ générée par une discrétisation de cette EDO de
    type Euler explicite jusqu'à l'ordre $O(\eps \Delta t)$ (\emph{Indication :} chercher une solution de la forme \(y^n = (1-\Delta t/\eps)^n(y^0-A) + A\cos(n\Delta t) + B\sin(n\Delta t)\))
  \item Que remarque-t-on pour $\eps$ petit ? (\emph{Indication :} on peut montrer que \(A = 1 + O(\eps\Delta t)\) et \(B = \eps + O(\eps\Delta t)\)).
  \end{enumerate}
  
\item Un autre domaine courant est celui de la cinétique chimique.
  En effet, lorsque l'on mélange plusieurs réactifs, certaines réactions peuvent se faire largement plus rapidement que d'autres,
  ce qui va se traduire par des constantes avec différents ordre de grandeurs.
  On considère par exemple le système d'équations :
  \begin{equation*}
    \left\{
    \begin{aligned}
      x' &= -k_1x + k_3 yz \\
      y' &= k_1x - k_3yz - k_2y^2 \\
      z' &= k_2y^2
    \end{aligned}
    \right.
    \textrm{ avec } x(0) = 1, \ y(0)=z(0) = 0,
  \end{equation*}
  modélisant les évolutions de concentrations de trois réactifs.
  On pose $k_1 = 0.04$, $k_2 = 10^7$ et $k_3 = 10^4$.
  \begin{enumerate}
  \item Tester sur ce système les méthodes d'Euler explicite et Runge-Kutta 4 jusqu'au temps $T=0.5$ pour différents pas de temps.
  \item Tester sur ce système la méthode d'Euler implicite jusqu'au temps $T=0.5$.
  \end{enumerate}
\end{enumerate}

%%%%%%%%%%%%%%%%%%%%

\ex (Un schéma d'Euler modifié)
On s'intéresse à l'équation différentielle $y' = \alpha y(1-y)$ munie d'une donnée initiale $y_0 \in\osbra{0,1}$.
\begin{enumerate}
\item Montrer qu'il existe une unique solution maximale sur $\R_+$, qu'elle est définie sur $\R_+$ tout entier et qu'elle reste comprise entre 0 et 1.
\item On note $(y_n)_n$ la suite donnée par le schéma d'Euler explicite de pas de temps $\Delta t$.
  Montrer que si $\alpha \Delta t \leqslant 1$, alors $y_n \in \osbra{0,1}$ pour tout $n$.
\item Montrer que si $\alpha \Delta t > 1$, il existe une donnée initiale $y_0$ telle que $y_1 >1$.
  En quoi cela est-ce un problème ?
\item On regarde maintenant un schéma d'Euler modifié :
  \begin{equation*}
    y_{n+1} = y_n + \Delta t \alpha y_n(1-y_{n+1}).
  \end{equation*}
  Montrer que ce schéma est convergent, puis que $y_n \in \osbra{0,1}$ pour tout $n$, inconditionnellement sur $\alpha$,  $\Delta t$, $y_0$.
\end{enumerate}
    
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{De la modélisation}

\ex (Lotka-Volterra)
On considère le système proie-prédateur suivant :
\[
\left\{
\begin{aligned}
  x'(t) &= ax(t) -bx(t)y(t) \\
  y'(t) &= -cy(t) +dx(t)y(t)
\end{aligned}\right.
\]
muni d'une condition initiale de Cauchy : $(x(0),y(0)) = (x_0,y_0)$
avec $x_0,y_0 >0$ et $a,b,c,d>0$.
\begin{enumerate}
\item Expliquer la modélisation et montrer que le problème admet une unique solution maximale $(X,Y)$
  sur un intervalle $\osbrar{0,T}$ ($T$ pouvant être infini).
  Montrer que $X$ et $Y$ restent strictement positives.
\item Montrer que la fonction
  \begin{equation*}
    \fonction{H}{(\R_+^*)^2}{\R}{(z_1,z_2)}{dz_1 - c\log(z_1) + bz_2 - a\log(z_2)}
  \end{equation*}
  est une intégrale première du système, i.e. que \(\frac{d}{dt}H(x(t),y(t))=0\) si \((x(t),y(t))\) est une solution.
  En déduire que $X$ et $Y$ sont bornées et que $T=+\infty$.
\item Quels sont les point d'équilibre du champ ?
  Quelle est leur stabilité ?
  \emph{Indication :} Pour un point d'équilibre $(\alpha,\beta)$,
  on pourra utiliser la fonction de Lyapounov suivante :
  \begin{equation*}
    \fonction{\phi}{(\R_+^*)^2}{\R}{(z_1,z_2)}{H(z_1,z_2) - H(\alpha,\beta)}
  \end{equation*}
\item Tracer le champ des vitesses. 
  Que remarque-t-on ?
\item Montrer que les solutions du système sont périodiques.
  \emph{Indication :} découper $(\R_+^*)^2$ en quatre parties bien choisies.
  On peut supposer sans perdre de généralité que 
  $(x_0,y_0) \in A = \osbra{0,\alpha}\times \osbra{0,\beta}$. 
  Montrer alors que l'on sort de $A$ au temps $t_1$, que l'on visite chacune des parties successivement,
  que l'on re-rentre dans $A$ et que l'on en ressort au temps $t_2$.
  Utiliser l'intégrale première $H$ pour conclure.
\item Si $\bar T$ est une période des solutions,
  montrer que les moyennes de $X$ et $Y$ sur $[0,\bar T]$ sont $\alpha$ et $\beta$.
\item On va maintenant chercher à calculer $\bar T$.
  On se fixe des paramètres $a,b,c,d$, un point de départ initial, un temps $T^*$ ainsi
  qu'un pas de discrétisation pour toute la question.
  \begin{enumerate}
  \item Programmer différentes méthodes (Euler explicite, implicite, Runge-Kutta 4, Crank-Nicholson) pour ce problème 
  \item Tracer les représentations graphiques des solutions approchées dans l'espace des phases.
    Que remarque-t-on ?
  \item Donner une approximation de $\bar T$ donnée par ces différentes méthodes
  \item Tracer les valeurs de l'intégrale première associée aux solutions approchées.
    Que remarque-t-on ?
  \item Que se passe-t-il pour les méthodes les plus précises si on augmente $T^*$ ?
  \end{enumerate}
\item On considère le système de Lotka-Volterra linéarisé autour de son point d'équilibre $(\alpha,\beta)$.
  \begin{enumerate}
  \item Expliciter ce système linéarisé et en trouver une intégrale première $\tilde H$.
  \item Considérons les schémas d'Euler explicite, d'Euler implicite, et de Crank-Nicholson.
    Exprimer $\tilde H(x_{k+1},y_{k+1})$ en fonction de $\tilde H(x_k,y_k)$.
  \item Quelle méthode permet le mieux de conserver l'intégrale première $\tilde H$ ?
  \end{enumerate}
\end{enumerate}

%%%%%%%%%%%%%%%%%%%%

\ex (Euler-Lagrange)
On va s'intéresser à l'optimisation de la fonctionnelle suivante :
\begin{equation*}
  \fonction{\mathcal L}{\mc C^1_*([a,b],\R^n)}{\R}{q}{\int_a^b L(s,q(s),q'(s))  ds},
\end{equation*}
avec $L : (t,x,v) \mapsto L(t,x,v)$ une fonction de classe $\mc C^1$ sur $\R \times \R^n \times \R^n$,  $\mc C^1_*([a,b],\R^n)$ l'ensemble des fonctions $q$ de classe $\mc C^1$ vérifiant $q(a) = q_a$, $q(b) = q_b$ avec $q_a,q_b$ des vecteurs de $\R^n$ fixés.
On introduit la notation de différentielle directionnelle suivante :
\begin{equation*}
  \forall q\in \mc C^1_*([a,b],\R^n), \ \forall w\in \mc C^1_0([a,b],\R^n), \ D\mathcal L(q)(w) = 
  \lim_{\eps\rightarrow 0} \frac{\mathcal L(q+\eps w) - \mathcal L(q)}{\eps}
\end{equation*}
et on dit que $q$ est un point critique de $\mathcal L$ si et seulement si
pour tout $w \in \mc C^1_0([a,b],\R^n)$, $D\mathcal L(q)(w) = 0$.

\begin{enumerate}
\item Montrer que $\forall q\in \mc C^1_*([a,b],\R^n), \ \forall w\in \mc C^1_0([a,b],\R^n)$, 
  \begin{equation*}
    D\mathcal L(q)(w) = \int_a^b \partial_{x}L(s,q(s),q'(s))\cdot w(s) + \partial_{v}L(s,q(s),q'(s))\cdot w'(s)  ds.
  \end{equation*}
\item Montrer que $q$ est un point critique de $\mathcal L$ si et seulement si 
  c'est une solution de l'équation d'Euler Lagrange :
  \begin{equation*}
    \frac{ d}{ dt}\left(\partial_{v}L(t,q(t),q'(t))\right) = \partial_{x}L(t,q(t),q'(t))
  \end{equation*}
\item Montrer que si $q$ est une solution $\mc C^2$ de l'équation d'Euler-Lagrange,
  si $L$ est indépendante du temps, 
  \begin{equation*}
    \exists c\in\R, \textrm{ tel que } L(q(t),q'(t)) - \partial_{v}L(q(t),q'(t))\cdot q'(t) = c.
  \end{equation*}
\item Application : quelle équation retrouve-t-on pour $L(x,v) = \frac{m|v|^2}{2} - V(x)$ ?
\item Application : montrer que le plus court chemin entre deux points du plan euclidien est la droite.
\item On définit le Hamiltonien $H$ comme la transformée de Legendre du Lagrangien :
  \begin{equation*}
    H(t,x,v) = \sup_{y \in \R^n}\left\{v\cdot y - L(t,x,y)  \right\}.
  \end{equation*}
  On peut montrer que si $L$ est $\mc C^2$, convexe en $v$ et croissant plus rapidement que $|v|^2$, alors
  $H$ est bien défini et $\mc C^1$.
  \begin{enumerate}
  \item Soit $q : [a,b] \rightarrow \R^n$ un chemin $\mc C^2$ et $p(t) = \partial_{v} L(t,\gamma,\dot \gamma)$.
    Montrer que $q$ vérifie l'équation d'Euler-Lagrange si, et seulement si, $(q,p)$ vérifie :
    \begin{equation*}
      \left\{
      \begin{aligned}
        \dot q &= \partial_{v} H(t,x,v) \\
        \dot p &= -\partial_{x} H(t,x,v).
      \end{aligned}
      \right.
    \end{equation*}
  \item Que retrouve-t-on pour $L(x,v) = \frac{m|v|^2}{2} - V(x)$ ?
  \item Quelle est la quantité conservée au cours du temps si $L$ ne dépend pas de $t$ ?
  \end{enumerate}
\end{enumerate}
 


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
