2012-2013/TD_maple/TD_Euler/TDmaple-euler.tex

113 lines
4.2 KiB
TeX
Raw Normal View History

2019-05-05 07:28:34 +00:00
\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*}
$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}