113 lines
4.2 KiB
TeX
113 lines
4.2 KiB
TeX
\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}
|