\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}