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

113 lines
4.2 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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