\documentclass[10pt,a4paper]{article}
\usepackage{/media/documents/Cours/Prof/TD_maple/2012_2013/style}

\title{Méthode d'Euler}
\author{}
\date{}

\begin{document}
\maketitle
\thispagestyle{fancy}

Le but de ce TD est de chercher puis d'approximer les solutions sur $[a,b]$ de
\begin{eqnarray*}
    y'(t) &= & f(t,y(t))  \quad \forall t \in [a,b]\\
    y(a) & = & z_0
\end{eqnarray*}


\section{Solution Exacte (Calcul formel)}

Maple arrive parfois à résoudre formellement ce type d'équation. 


\begin{itemize}
    \item Résoudre l'équation différentielle et tracer la courbe de la solution.
        \begin{eqnarray*}
            y' + y &=& e^{-t} \cos(10t) \quad \forall t \in [0,2] \\
            y(0) &=& 0
        \end{eqnarray*}
    \item Écrire une procédure qui prend pour entrée $f$ et $z_0$ (la valeur en $a$ de la solution) et qui renvoie la fonction solution. 
\end{itemize}


\paragraph{Commandes utiles:}
\begin{itemize}
    \item Pour résoudre l’équation différentielle, utiliser \texttt{dsolve}. 
    \item \texttt{dsolve} ne renvoie pas exactement une fonction. Pour obtenir une fonction solution, utiliser \texttt{subs}.
\end{itemize}

\section{Schéma d'Euler (Analyse numérique)}

\paragraph{Rappel:}(Méthode d'Euler):\\
On pose $t_i = a + i * \frac{b-a}{n}$. 

On prend comme valeur approchée de la solution $y(t_i)$ la valeur $z_i$ définie par récurrence par : $$z_{i+1}=z_i+\frac{b-a}{n}*f(t_i,z_i)$$
Une représentation approchée de la solution est la ligne brisée passant par les points $(t_i,z_i)$.

\begin{itemize}
    \item Écrire une procédure qui prend en entrée :
    \begin{itemize}
        \item $f$
        \item $n$ le nombre de subdivision de l'intervalle
        \item $a,b$ les extrémités de l'intervalle
        \item $z_0$ la valeur en $a$ de la solution recherchée.
    \end{itemize}
    et qui renvoie la séquence $(t_i, z_i)_{i \in \{0..n\}}$ calculée par la méthode d'Euler.

    \item Tester la procédure sur l'équation différentielle avec $n = 10$ et tracer le résultat
        \begin{eqnarray*}
            y' + y &=& e^{-t} \cos(10t) \quad \forall t \in [0,2] \\
            y(0) &=& 0
        \end{eqnarray*}

    \item Écrire une procédure qui prend en entrée :
    \begin{itemize}
        \item $f$
        \item $n$ le nombre de subdivision de l'intervalle
        \item $a,b$ les extrémités de l'intervalle
        \item $z_0$ la valeur en $a$ de la solution recherchée.
    \end{itemize}
    et qui renvoie le graphe de la solution approchée et celui de la solution exacte sur un même graphe.

    \item Tester la procédure sur l'équation différentielle avec différents $n$
        \begin{eqnarray*}
            y' + y &=& e^{-t} \cos(10t) \quad \forall t \in [0,2] \\
            y(0) &=& 0
        \end{eqnarray*}
\end{itemize}

\paragraph{Commandes utiles:}
\begin{itemize}
    \item En Maple, $t_i$ se note \texttt{t[i]}.
    \item Pour créer la liste des points $(t_i,z_i)$, utiliser \texttt{seq}. Si la liste est trop grande, Maple vous demandera d'utiliser \texttt{array}.
    \item Pour tracer plusieurs courbes sur un même graphe, donner un nom à chaque courbe puis utiliser \texttt{display}.
\end{itemize}

\section{Évaluation de l'erreur}

Nous allons maintenant nous intéresser à l'erreur commise par la méthode d'Euler. On calcule l'erreur suivante
\begin{eqnarray*}
    E_n = \max_{i \in \{0..n\}} |y(t_i) - z_i|
\end{eqnarray*}
Où $y(t)$ est la solution exacte et $z_i$ la valeur en $t_i$ de la solution approchée.

\begin{itemize}
    \item Écrire une procédure qui prend en entrée :
    \begin{itemize}
        \item $y$ la solution exacte
        \item $(t_i, z_i)_{i\in \{0..n\}}$ la solution approchée
    \end{itemize}
    et qui renvoie l'erreur
    \item On restreint à l'équation $y'(t) = y(t)$ que l'on sait résoudre. Écrire une procédure qui prend en entrée :
    \begin{itemize}
        \item $a,b$ les extrémités de l'intervalle
        \item $z_0$ la valeur en $a$ de la solution recherchée.
        \item $(n_k)$ la liste des valeurs de $n$ à tester
    \end{itemize}
    et qui renvoie $(n_k, E_{n_k})$ les erreurs correspondant aux différentes  valeurs de $n$.
    \item Tester la procédure avec $[a,b] = [0,10]$, $z_0 = 1$ et $(n_k) = \{10, 20, .., 100\}$
\end{itemize}

\end{document}
