]> AND Private Git Repository - cours-mesi.git/commitdiff
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
j master
authorcouchot <jf.couchot@gmail.com>
Thu, 21 Nov 2013 08:22:21 +0000 (09:22 +0100)
committercouchot <jf.couchot@gmail.com>
Thu, 21 Nov 2013 08:22:21 +0000 (09:22 +0100)
13 files changed:
complexite.tex
equations.tex
interpol.tex
partiels/13mesi/main.log
partiels/13mesi/main.pdf
partiels/13mesi/main.tex
partiels/main.tex [deleted file]
tps/chap2/diff_div.py
tps/chap3/jjm.py~ [deleted file]
tps/chap3/methodes.py
tps/chap3/methodes.pyc
tps/chap3/methodes.py~ [deleted file]
tps/chap3/ordre.py

index 4fdf00d8a2f7e29714be2c1206576b5786d4c1eb..6d66125ba533d9007322991cb77ee6cc0b066fab 100644 (file)
@@ -36,7 +36,7 @@ $5n^3\leq 10.\dfrac{n^3}{2}$.
 constante $c$ telle que 
 $\dfrac{n^3}{2} \leq c.(n^2 +17n + 5)$ soit encore 
 $\dfrac{n^3}{2(n^2 +17n + 5)} \leq c$ et donc  
 constante $c$ telle que 
 $\dfrac{n^3}{2} \leq c.(n^2 +17n + 5)$ soit encore 
 $\dfrac{n^3}{2(n^2 +17n + 5)} \leq c$ et donc  
-$\dfrac{n^3}{2} \leq c$ ce qui est impossible. 
+$\dfrac{n}{2} \leq c$ ce qui est impossible. 
 \end{itemize}
 
 
 \end{itemize}
 
 
@@ -200,7 +200,7 @@ On considère tout d'abord l'algorithme suivant:
  \KwData{$n$: degré, $(a_i)_{0 \le i \le n}$: coefficients, $t$: 
    réel en lequel on évalue}
  \KwResult{$\textit{val}$: réel tel que $\textit{val}= p(t)$}
  \KwData{$n$: degré, $(a_i)_{0 \le i \le n}$: coefficients, $t$: 
    réel en lequel on évalue}
  \KwResult{$\textit{val}$: réel tel que $\textit{val}= p(t)$}
- $a' = a$ \; \nllabel{laff1} 
+ $a' = a_n$ \; \nllabel{laff1} 
  \For{$i=n-1$ \KwTo $0$}{\nllabel{laford} 
     $a' = a_i + t \times a'$ \; \nllabel{lafori}
  \nllabel{laforf}}
  \For{$i=n-1$ \KwTo $0$}{\nllabel{laford} 
     $a' = a_i + t \times a'$ \; \nllabel{lafori}
  \nllabel{laforf}}
@@ -280,7 +280,7 @@ n & T_1(n) & T_2(n) \\
 \begin{enumerate}
 \item En déduire quel sera le temps nécessaire au traitement de données 
   de taille $n'=10^4$.
 \begin{enumerate}
 \item En déduire quel sera le temps nécessaire au traitement de données 
   de taille $n'=10^4$.
-\item Même question avec $n'=200\lambda$ où $\lambda$ réel de $[1, +\infty[$.
+\item Même question avec $n'=200\lambda$ où $\lambda$ réel de $[0, +\infty[$.
 \item Déterminer la taille maximale des données que peuvent traiter 
   $A_1$ et $A_2$ si le temps disponible est $t=10^5$.
 \end{enumerate}
 \item Déterminer la taille maximale des données que peuvent traiter 
   $A_1$ et $A_2$ si le temps disponible est $t=10^5$.
 \end{enumerate}
index 8fec68db40a8ac876ab93fea2ccb036f3a07bb59..bd10efcfa0140d3c94c7a1bb7b546b1c622068d3 100644 (file)
@@ -1,6 +1,5 @@
 \section{Motivation}
 \section{Motivation}
-Bien qu’il puisse être posé simplement (trouver tous les $x$ tel que $P(x) =0$),
-résoudre algébriquement des équations
+Résoudre algébriquement des équations
 est un problème difficile.
 Depuis l'antiquité, l’homme a cherché des algorithmes donnant les
 valeurs des racines d'un polynôme 
 est un problème difficile.
 Depuis l'antiquité, l’homme a cherché des algorithmes donnant les
 valeurs des racines d'un polynôme 
@@ -12,18 +11,17 @@ la forme
 $ 
 x^3 + px+q = 0
 $ avec $p$ et $q$ non nuls. Calculons le discriminant 
 $ 
 x^3 + px+q = 0
 $ avec $p$ et $q$ non nuls. Calculons le discriminant 
-$\Delta = \frac{4}{27}p^3+ p^2$ et discutons de son signe:
+$\Delta = \frac{4}{27}p^3+ q^2$ et discutons de son signe:
 \begin{itemize}
 \item si $\Delta$ est nul, l'équation possède
   deux solutions réelles, une simple et une double :
 \begin{itemize}
 \item si $\Delta$ est nul, l'équation possède
   deux solutions réelles, une simple et une double :
-
-$$
+$
 \begin{cases}
   x_0=2\sqrt[3]{\frac{-q}2}=\frac{3q}p
   \\
   x_1=x_2=-\sqrt[3]{\frac{-q}2}=\frac{-3q}{2p}
 \end{cases}
 \begin{cases}
   x_0=2\sqrt[3]{\frac{-q}2}=\frac{3q}p
   \\
   x_1=x_2=-\sqrt[3]{\frac{-q}2}=\frac{-3q}{2p}
 \end{cases}
-$$
+$
 
 
 \item Si $\Delta$ est positif, l'équation possède une solution réelle
 
 
 \item Si $\Delta$ est positif, l'équation possède une solution réelle
@@ -31,21 +29,21 @@ $$
 $u = \sqrt[3]{\frac{-q + \sqrt{\Delta}}2}$ et $v = \sqrt[3]{\frac{-q - \sqrt{\Delta}}2}$.
 La seule solution réelle est alors $x_0=u+v$. 
 Il existe également deux solutions complexes conjuguées l'une de l'autre:
 $u = \sqrt[3]{\frac{-q + \sqrt{\Delta}}2}$ et $v = \sqrt[3]{\frac{-q - \sqrt{\Delta}}2}$.
 La seule solution réelle est alors $x_0=u+v$. 
 Il existe également deux solutions complexes conjuguées l'une de l'autre:
-$$
+$
 \begin{cases}
 x_1= j u +\bar{j} v \\ 
 x_2= j^2u +\overline{j^2}\end{cases}
 \begin{cases}
 x_1= j u +\bar{j} v \\ 
 x_2= j^2u +\overline{j^2}\end{cases}
-\qquad\textrm{ où }\qquad j=-\frac12+ i \frac{\sqrt3}2=e^{i\frac{2\pi}3}
-$$
-
-\item si $\Delta$ est négatif,  l'équation possède trois solutions réelles:
-$$
-x_k = 2 \sqrt{\frac{-p}{3}} \cos{\left(\frac13\arccos{\left(\frac{-q}{2}\sqrt{\frac{27}{-p^3}}\right)}+ \frac{2k\pi}{3}\right)}\qquad\mbox{ avec }\qquad k\in\{0,1,2\}.
-$$
+\textrm{ où } j=-\frac12+ i \frac{\sqrt3}2=e^{i\frac{2\pi}3}
+$
 
 
+\item sinon,  l'équation a trois solutions réelles:
+$
+x_k = 2 \sqrt{\frac{-p}{3}} \cos{\left(\frac13\arccos{\left(\frac{-q}{2}\sqrt{\frac{27}{-p^3}}\right)}+ \frac{2k\pi}{3}\right)}\textrm{ avec } k\in\{0,1,2\}.
+$
 
 \end{itemize}
 
 \end{itemize}
-Donnée à titre d'exemple, ce travail montre que rapidement on obtient 
+%Donnée à titre d'exemple, 
+Ce travail montre que rapidement on obtient 
 des algorithmes compliqués.
 De plus, Abel a montrée en 1824 qu'il n'est pas toujours possible 
 d'exprimer les racines de l'équation générale de
 des algorithmes compliqués.
 De plus, Abel a montrée en 1824 qu'il n'est pas toujours possible 
 d'exprimer les racines de l'équation générale de
@@ -83,7 +81,7 @@ le résultat est établi, c.-à-d. $f(a_{n+1})f(b_{n+1})\leq 0$;
 \item sinon, $f(a_n)f(x_n)> 0$. Ainsi $f(a_{n+1})f(b_{n+1})$ a le même 
 signe que $f(a_{n+1})f(b_{n+1})f(a_n)f(x_n)$ c.-à-d. le signe de  
 $f(x_{n})f(b_{n})f(a_n)f(x_n)$ soit encore le signe de  $f(a_n)f(b_n)$.
 \item sinon, $f(a_n)f(x_n)> 0$. Ainsi $f(a_{n+1})f(b_{n+1})$ a le même 
 signe que $f(a_{n+1})f(b_{n+1})f(a_n)f(x_n)$ c.-à-d. le signe de  
 $f(x_{n})f(b_{n})f(a_n)f(x_n)$ soit encore le signe de  $f(a_n)f(b_n)$.
-Ce dernier est positif d'après l'hypothèse de récurence. 
+Ce dernier est négatif d'après l'hypothèse de récurence. 
 \end{itemize}
 
 A chaque itération, l'intervalle $[a_n,b_n]$ est découpé 
 \end{itemize}
 
 A chaque itération, l'intervalle $[a_n,b_n]$ est découpé 
@@ -221,9 +219,9 @@ Dans cet exercice, on suppose en plus que:
 \begin{enumerate}
 \item Montrer que l'on a $x_{n+1} \neq x_{n}$.
 \item Montrer que (\ref{eq:num:class}) est équivalente à 
 \begin{enumerate}
 \item Montrer que l'on a $x_{n+1} \neq x_{n}$.
 \item Montrer que (\ref{eq:num:class}) est équivalente à 
-\begin{equation}
+$
 x_{n+1} = x_{n} - \frac{f(x_n)}{q_n} \label{eq:num:gen}
 x_{n+1} = x_{n} - \frac{f(x_n)}{q_n} \label{eq:num:gen}
-\end{equation}
+$
 \item Dans la représentation graphique donnée figure~\ref{fig:graphe1}:
   \begin{enumerate}
   \item donner l'équation de la droite tracée;
 \item Dans la représentation graphique donnée figure~\ref{fig:graphe1}:
   \begin{enumerate}
   \item donner l'équation de la droite tracée;
@@ -234,14 +232,14 @@ x_{n+1} = x_{n} - \frac{f(x_n)}{q_n} \label{eq:num:gen}
 \end{enumerate}
 
 \item Dans la méthode de la corde, $q_n$ est constante et égale à 
 \end{enumerate}
 
 \item Dans la méthode de la corde, $q_n$ est constante et égale à 
-\begin{equation}
-q_{n} = \frac{f(b) - f(a)}{b - a} \label{eq:num:corde}
-\end{equation}
+%\begin{equation}
+$q_{n} = \frac{f(b) - f(a)}{b - a} \label{eq:num:corde}
+$%\end{equation}
 
 \item Dans la méthode de Lagrange on a 
 
 \item Dans la méthode de Lagrange on a 
-\begin{equation}
-q_{n} = \frac{f(x_{n}) - f(x_{n-1})}{x_n - x_{n-1}} \label{eq:num:lagrange}
-\end{equation}
+%\begin{equation}
+$q_{n} = \frac{f(x_{n}) - f(x_{n-1})}{x_n - x_{n-1}} \label{eq:num:lagrange}
+$%\end{equation}
 
 \item Dans la méthode de Newton on a $q_n = f'(x_n)$
 \end{enumerate}
 
 \item Dans la méthode de Newton on a $q_n = f'(x_n)$
 \end{enumerate}
@@ -282,6 +280,8 @@ solution $\alpha$ de cet intervalle.
 
 
 \begin{Prop}[Vitesse de convergence]
 
 
 \begin{Prop}[Vitesse de convergence]
+Si la suite des itérés obtenus par dichotomie converge,
+alors la convergence est linéaire.
 Si la suite des itérés de Lagrange converge, alors la convergence est 
 d'ordre $(1+\sqrt{5})/2$.
 Si la suite des itérés de Newton converge, 
 Si la suite des itérés de Lagrange converge, alors la convergence est 
 d'ordre $(1+\sqrt{5})/2$.
 Si la suite des itérés de Newton converge, 
@@ -310,6 +310,67 @@ fixe $g_i(x) =x$ avec
 \end{itemize}
 
 
 \end{itemize}
 
 
+
+\begin{TP}[Comparaison d'approches]
+
+\begin{enumerate}
+\item Écrire la fonction 
+\verb+[n,X] = iteration_dichotomie(a,b,m,epsilon,f)+ où
+\begin{itemize}
+\item \verb+a+, \verb+b+ sont les bornes de l'intervalle, \verb+m+
+  est le nombre maximal 
+  d'itérations, \texttt{epsilon} est la précision souhaitée 
+  (voir équation (\ref{eq:erreur:epsilon})) et \verb+f+ la fonction à itérer;
+\item \verb+n+ est le nombre d'itérations réalisées pour que 
+\verb+f(+$\verb+x+_{\verb+n+}$\verb+)+=0 ou que 
+$|\verb+x+_{\verb+n+}- \verb+x+_{\verb+n-1+}| \leq \verb+epsilon+$, \verb+n+ étant inférieur à \verb+m+ et \verb+X+ est 
+  le vecteur contenant les 
+  valeurs $\verb+x+_{\verb+0+},\ldots,\verb+x+_{\verb+n+}$.
+\end{itemize}
+\item Écrire la fonction 
+\verb+[n,X] = iteration_corde(a,b,+$\verb+x+_{\verb+0+}$\verb+,m,epsilon,f)+ où
+\begin{itemize}
+\item $\verb+x+_{\verb+0+}$ est le premier terme de la suite;
+\end{itemize}
+\item Écrire la fonction 
+\verb+[n,X] = iteration_Newton(+$\verb+x+_{\verb+0+}$\verb+,m,epsilon,f)+.
+\end{enumerate}
+\end{TP}
+
+
+\begin{TP}
+L'objectif du TP est de mesurer l'ordre de grandeur de la convergence d'une 
+méthode.
+On suppose que la suite $(x_n)$ converge vers $l$ avec l'ordre $p\geq 1$. 
+On note $e_n= l -x_n$. On a $|e_{n+1}| \approx c |e_n|^p$ et donc 
+$\ln(|e_{n+1}|) \approx p \ln(|e_n|) + \ln(c)$.
+En posant $y = \ln(|e_{n+1}|)$, $x = \ln(|e_n|)$ et $k = \ln(c)$ on a 
+$y = px + k$ soit l'équation d'une droite de pente $p$.
+Pour estimer $p$, on peut donc tracer l'ensemble de points 
+$(\ln(|e_{n}|),\ln(|e_{n+1}|))$, contruire la droite de regression linéaire
+et prendre son coefficient directeur.
+
+\begin{enumerate}
+\item Construire la méthode 
+\verb+p=ordre_convergence(X,l)+ telle que 
+\begin{itemize}
+\item \texttt{X} est le vecteur contenant les valeurs des itérés $\verb+x+_{\verb+0+}$, \ldots, $\verb+x+_{\verb+n+}$ et 
+  \verb+l+ est la limite présumée de la suite;
+\item cette fonction exploite la fonction 
+\verb+scipy.stats.linregress(x, y=None)+;
+\item \verb+p+ est l'ordre de convergence calculé numériquement.
+\end{itemize}
+
+\item Tester les méthodes du TP précédent 
+  (dichotomie, corde, Lagrange, Newton) pour la fonction 
+  $f$ définie par $f(x)=\cos(x)-x$ sur $[0,\pi/2]$.
+  Calculer l'ordre à l'aide de la fonction développée à la première question.
+\item Comparer avec la fonction \verb+scipy.optimize.newton+.
+\end{enumerate}
+\end{TP}
+
+
+
 \subsection{Algorithme du point fixe}
 L'algorithme du point fixe donné ci dessous (Algorithme~\ref{algo:pf}) est 
 une version constructive de la suite $(x_n)$ définie par $x_0$ et pour tout $n \in \N$, 
 \subsection{Algorithme du point fixe}
 L'algorithme du point fixe donné ci dessous (Algorithme~\ref{algo:pf}) est 
 une version constructive de la suite $(x_n)$ définie par $x_0$ et pour tout $n \in \N$, 
@@ -358,7 +419,7 @@ Pour chacune des équations suivantes, étudier la convergence de la suite des
 itérés du point fixe pour un $x_0$ choisi dans l'intervalle proposé.
 \begin{enumerate}
 \item fonction $g_3$ de Ferrari sur $[2;4]$;
 itérés du point fixe pour un $x_0$ choisi dans l'intervalle proposé.
 \begin{enumerate}
 \item fonction $g_3$ de Ferrari sur $[2;4]$;
-\item fonction $g_2$ de Ferrari sur $[3;\textrm{3,1}]$;
+\item fonction $g_2$ de Ferrari sur $[3;\textrm{3,1}]$.
 \end{enumerate}
 \end{Exo}
 
 \end{enumerate}
 \end{Exo}
 
@@ -376,62 +437,5 @@ proposition~\ref{th:csconv:pf}  sont suffisantes, pas nécessaires.
 \end{enumerate}
 \end{Exo}
 
 \end{enumerate}
 \end{Exo}
 
-\begin{TP}
-Tout le code suivant est à faire en python.
-\begin{enumerate}
-\item Écrire la fonction 
-\verb+[n,X] = iteration_dichotomie(a,b,m,epsilon,f)+ où
-\begin{itemize}
-\item \verb+a+, \verb+b+ sont les bornes de l'intervalle, \verb+m+
-  est le nombre maximal 
-  d'itérations, \texttt{epsilon} est la précision souhaitée 
-  (voir équation (\ref{eq:erreur:epsilon})) et \verb+f+ la fonction à itérer;
-\item \verb+n+ est le nombre d'itérations réalisées pour que 
-\verb+f(+$\verb+x+_{\verb+n+}$\verb+)+=0 ou que 
-$|\verb+x+_{\verb+n+}- \verb+x+_{\verb+n-1+}| \leq \verb+epsilon+$, \verb+n+ étant inférieur à \verb+m+ et \verb+X+ est 
-  le vecteur contenant les 
-  valeurs $\verb+x+_{\verb+0+},\ldots,\verb+x+_{\verb+n+}$.
-\end{itemize}
-\item Écrire la fonction 
-\verb+[n,X] = iteration_corde(a,b,+$\verb+x+_{\verb+0+}$\verb+,m,epsilon,f)+ où
-\begin{itemize}
-\item $\verb+x+_{\verb+0+}$ est le premier terme de la suite;
-\end{itemize}
-\item Écrire la fonction 
-\verb+[n,X] = iteration_Newton(+$\verb+x+_{\verb+0+}$\verb+,m,epsilon,f)+.
-\end{enumerate}
-\end{TP}
-
-
-\begin{TP}
-L'objectif du TP est de mesurer l'ordre de grandeur de la convergence d'une 
-méthode.
-On suppose que la suite $(x_n)$ converge vers $l$ avec l'ordre $p\geq 1$. 
-On note $e_n= l -x_n$. On a $|e_{n+1}| \approx c |e_n|^p$ et donc 
-$\ln(|e_{n+1}|) \approx p \ln(|e_n|) + \ln(c)$.
-En posant $y = \ln(|e_{n+1}|)$, $x = \ln(|e_n|)$ et $k = \ln(c)$ on a 
-$y = px + k$ soit l'équation d'une droite de pente $p$.
-Pour estimer $p$, on peut donc tracer l'ensemble de points 
-$(\ln(|e_{n}|),\ln(|e_{n+1}|))$, contruire la droite de regression linéaire
-et prendre son coefficient directeur.
-
-\begin{enumerate}
-\item Construire la méthode 
-\verb+p=ordre_convergence(X,l)+ telle que 
-\begin{itemize}
-\item \texttt{X} est le vecteur contenant les valeurs des itérés $\verb+x+_{\verb+0+}$, \ldots, $\verb+x+_{\verb+n+}$ et 
-  \verb+l+ est la limite présumée de la suite;
-\item cette fonction exploite la fonction 
-\verb+scipy.stats.linregress(x, y=None)+;
-\item \verb+p+ est l'ordre de convergence calculé numériquement.
-\end{itemize}
-
-\item Tester les méthodes du TP précédent 
-  (dichotomie, corde, Lagrange, Newton) pour la fonction 
-  $f$ définie par $f(x)=\cos(x)-x$ sur $[0,\pi/2]$.
-  Calculer l'ordre à l'aide de la fonction développée à la première question.
-\item Comparer avec la fonction \verb+scipy.optimize.newton+.
-\end{enumerate}
-\end{TP}
 
 
 
 
index b5eef1fe37ef5f30c368d0699b3968457316d745..a3d0cdaacd9bbb7e12a9a04c7da44596e837c741 100644 (file)
@@ -74,11 +74,11 @@ $$p_i(x) = p_{i-1}(x) + d_i  \left[  \prod_{j=0}^{i-1} (x - x_j)\right].$$
 
 Ainsi pour obtenir $p$ sur $x_0$, $x_1$, \ldots, $x_n$, il suffit:
 \begin{itemize}
 
 Ainsi pour obtenir $p$ sur $x_0$, $x_1$, \ldots, $x_n$, il suffit:
 \begin{itemize}
-\item de calculer $d_0$, pour définir $p_0$ qui interpole $p$ sur $x_0$,
-\item de calculer $d_1$, pour définir $p_1$  qui interpole $p$ sur $x_0$ 
+\item de calculer $d_0$, pour définir $p_0$ qui interpole $f$ sur $x_0$,
+\item de calculer $d_1$, pour définir $p_1$  qui interpole $f$ sur $x_0$ 
   et $x_1$,
 \item \ldots
   et $x_1$,
 \item \ldots
-\item de calculer $d_n$, pour définir $p_n$  qui interpole $p$ sur 
+\item de calculer $d_n$, pour définir $p_n$  qui interpole $f$ sur 
   $x_0$, $x_1$, \ldots, $x_n$.
 \end{itemize}
 
   $x_0$, $x_1$, \ldots, $x_n$.
 \end{itemize}
 
index 5f4531eac1376f843c766bde7e008ed2bffd389f..401fce16e66e8d3c50312b19c743344122233824 100644 (file)
@@ -1,4 +1,4 @@
-This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) (format=pdflatex 2013.11.3)  3 NOV 2013 21:53
+This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) (format=pdflatex 2013.11.3)  4 NOV 2013 10:10
 entering extended mode
  restricted \write18 enabled.
  %&-line parsing enabled.
 entering extended mode
  restricted \write18 enabled.
  %&-line parsing enabled.
@@ -8,8 +8,8 @@ LaTeX2e <2011/06/27>
 Babel <3.9f> and hyphenation patterns for 4 languages loaded.
 (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
 Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
 Babel <3.9f> and hyphenation patterns for 4 languages loaded.
 (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
 Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
-(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo
-File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
+(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo
+File: size11.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
 )
 \c@part=\count79
 \c@section=\count80
 )
 \c@part=\count79
 \c@section=\count80
 * \topmargin=-80.81725pt
 * \headheight=12.0pt
 * \headsep=25.0pt
 * \topmargin=-80.81725pt
 * \headheight=12.0pt
 * \headsep=25.0pt
-* \topskip=10.0pt
+* \topskip=11.0pt
 * \footskip=30.0pt
 * \marginparwidth=72.26999pt
 * \footskip=30.0pt
 * \marginparwidth=72.26999pt
-* \marginparsep=11.0pt
+* \marginparsep=10.0pt
 * \columnsep=10.0pt
 * \columnsep=10.0pt
-* \skip\footins=9.0pt plus 4.0pt minus 2.0pt
+* \skip\footins=10.0pt plus 4.0pt minus 2.0pt
 * \hoffset=0.0pt
 * \voffset=0.0pt
 * \mag=1000
 * \hoffset=0.0pt
 * \voffset=0.0pt
 * \mag=1000
@@ -1162,24 +1162,24 @@ False_position_method.pdf>]
 
  [2] (./main.aux) ) 
 Here is how much of TeX's memory you used:
 
  [2] (./main.aux) ) 
 Here is how much of TeX's memory you used:
- 10017 strings out of 495002
- 150021 string characters out of 6180262
- 301242 words of memory out of 5000000
- 12956 multiletter control sequences out of 15000+600000
- 13949 words of font info for 48 fonts, out of 8000000 for 9000
+ 10013 strings out of 495002
+ 150022 string characters out of 6180262
+ 301263 words of memory out of 5000000
+ 12954 multiletter control sequences out of 15000+600000
+ 13798 words of font info for 46 fonts, out of 8000000 for 9000
  14 hyphenation exceptions out of 8191
  44i,6n,64p,565b,257s stack positions out of 5000i,500n,10000p,200000b,80000s
 {/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc}<
 /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/s
  14 hyphenation exceptions out of 8191
  44i,6n,64p,565b,257s stack positions out of 5000i,500n,10000p,200000b,80000s
 {/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc}<
 /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/s
-hare/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi5.pfb></usr/share/te
-xlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb></usr/share/texlive/t
+hare/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi6.pfb></usr/share/te
+xlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi8.pfb></usr/share/texlive/t
 exmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texlive/texmf-di
 exmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texlive/texmf-di
-st/fonts/type1/public/amsfonts/cm/cmr7.pfb></usr/share/texlive/texmf-dist/fonts
+st/fonts/type1/public/amsfonts/cm/cmr8.pfb></usr/share/texlive/texmf-dist/fonts
 /type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texlive/texmf-dist/fonts/type1
 /type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texlive/texmf-dist/fonts/type1
-/public/amsfonts/cm/cmsy7.pfb></usr/share/texlive/texmf-dist/fonts/type1/public
+/public/amsfonts/cm/cmsy8.pfb></usr/share/texlive/texmf-dist/fonts/type1/public
 /doublestroke/dsrom10.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/
 utmr8a.pfb>
 /doublestroke/dsrom10.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/
 utmr8a.pfb>
-Output written on main.pdf (2 pages, 113686 bytes).
+Output written on main.pdf (2 pages, 113815 bytes).
 PDF statistics:
  58 PDF objects out of 1000 (max. 8388607)
  40 compressed objects within 1 object stream
 PDF statistics:
  58 PDF objects out of 1000 (max. 8388607)
  40 compressed objects within 1 object stream
index 4268ee44f8fc98b2ffef98d894abfabd6516bf62..0060fb731cd154ffb3afdd2dcb8861f5136e95ce 100644 (file)
Binary files a/partiels/13mesi/main.pdf and b/partiels/13mesi/main.pdf differ
index e8c257703eb536a93159608b339e3f51532402d8..5ed0b086e840fac327c3a85eb32b7f1d7ad4f9c3 100644 (file)
@@ -1,4 +1,4 @@
-\documentclass[10pt,a4paper,french]{article}
+\documentclass[11pt,a4paper,french]{article}
 \usepackage[francais]{babel}
 \usepackage[utf8]{inputenc}
 \usepackage{a4}
 \usepackage[francais]{babel}
 \usepackage[utf8]{inputenc}
 \usepackage{a4}
@@ -29,7 +29,7 @@
   Novembre 2013 (durée 45 mn).  J.-F.  Couchot,}
 
 \maketitle
   Novembre 2013 (durée 45 mn).  J.-F.  Couchot,}
 
 \maketitle
-\vspace{-5em}
+\vspace{-3em}
 % \begin{tabular}{ll}
 % Nom:& ........................................\\
 % Prénom:& ........................................\\
 % \begin{tabular}{ll}
 % Nom:& ........................................\\
 % Prénom:& ........................................\\
@@ -82,31 +82,35 @@ Vos réponses seront données directement ci-dessous.
 \item (2pts) Montrer que l'équation de la droite $(D_n)$ est  
 $y - f(b_n) = \frac{f(b_n)-f(a_n)}{b_n-a_n} (x-b_n)$. 
 
 \item (2pts) Montrer que l'équation de la droite $(D_n)$ est  
 $y - f(b_n) = \frac{f(b_n)-f(a_n)}{b_n-a_n} (x-b_n)$. 
 
-\vspace{4cm}
+\vspace{3cm}
 
 \item (2pts) Montrer que le nombre $x_n$ est donné par l'équation
 $x_n = a_n - \frac{a_n-b_n}{f(a_n)-f(b_n)} f(a_n)$.
  
 
 \item (2pts) Montrer que le nombre $x_n$ est donné par l'équation
 $x_n = a_n - \frac{a_n-b_n}{f(a_n)-f(b_n)} f(a_n)$.
  
-\vspace{4cm}
+\vspace{3cm}
 
 
 \item (2pts) En moyenne, l'ordre de cette méthode est 1,618. 
   Comparer cet ordre avec celui des autres méthodes du cours. 
 
 
 \item (2pts) En moyenne, l'ordre de cette méthode est 1,618. 
   Comparer cet ordre avec celui des autres méthodes du cours. 
-\vspace{4cm}
+\vspace{3cm}
 
 \item (5pts)  Quelle partie de cette méthode est commune avec la 
   méthode par dichotomie? Est-elle toujours plus efficace? 
 
 \item (5pts)  Quelle partie de cette méthode est commune avec la 
   méthode par dichotomie? Est-elle toujours plus efficace? 
-  Comparer les approches par exemple 
-  sur l'intervalle $[-1,1]$ avec fonction $f$ définie sur $\mathds{R}$ par
+  Comparer les deux approches par exemple 
+  sur l'intervalle $[-1,1]$ avec la fonction $f$ définie sur $\mathds{R}$ par
   $f(x)= 2x^3-4x^2+3x$. 
 \vspace{6cm}
 
   $f(x)= 2x^3-4x^2+3x$. 
 \vspace{6cm}
 
+\newpage
+\vspace{5cm}
 \item  (4pts) Quelle partie de cette méthode est commune avec la méthode de Lagrange? 
 Est-ce la même méthode? Si ce n'est pas le cas, Expliquer ce qui diffère.
 \vspace{4cm}
 
 
 \item  (4pts) Quelle partie de cette méthode est commune avec la méthode de Lagrange? 
 Est-ce la même méthode? Si ce n'est pas le cas, Expliquer ce qui diffère.
 \vspace{4cm}
 
 
-\item (5pts) Donner le code d'un programme qui implanterait cette méthode.
+\item (5pts) Donner le code d'un programme qui implanterait cette méthode, 
+  et ce dans le langage de votre choix.
+  
 
 \vspace{4cm}
 
 
 \vspace{4cm}
 
diff --git a/partiels/main.tex b/partiels/main.tex
deleted file mode 100644 (file)
index 57c391d..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-\documentclass[10pt,a4paper,french]{article}
-\usepackage[francais]{babel}
-\usepackage[utf8]{inputenc}
-\usepackage{a4}
-\usepackage{amsmath}
-\usepackage{amsfonts}
-\usepackage{amssymb}
-\usepackage{framed}
-\usepackage{dsfont}
-\usepackage[amsmath,thmmarks,thref,framed]{ntheorem}
-\usepackage[dvips]{graphics}
-\usepackage{epsfig}
-\usepackage{calc}
-\usepackage{tabls}
-\usepackage{slashbox}
-\usepackage{times}
-\usepackage{multicol}
-\usepackage{tabularx}
-\usepackage{textcomp}
-
-\usepackage{pst-all}
-
-\usepackage[a4paper]{geometry}
-
-
-\date{}
-\geometry{hmargin=1cm, tmargin=1cm,bmargin=1.5cm}
-\begin{document}
-\title{UE MESI, Master IMR 2ème année.\\
-  Novembre 2012 (durée 1h).  J.-F.  Couchot,}
-
-\maketitle
-\vspace{-5em}
-\begin{tabular}{ll}
-Nom:& ........................................\\
-Prénom:& ........................................\\
-\end{tabular}
-
-
-On s'intéresse à résoudre une équation de la forme $f(x)=0$ par la 
-méthode de Müller. Dans cette méthode, on considère que l'on 
-a le triplet de points $(x_{n-2},x_{n-1},x_{n})$. Pour calculer 
-$x_{n+1}$, on fait comme suit:
-\begin{enumerate}
-\item \label{itm:1} on approche $f(x)$ par un polynôme $P(x)$ aux points
-  $(x_{n-2},x_{n-1},x_{n})$,
-\item\label{itm:2} on résout l'équation $P(x)=0$. La racine la plus proche de $x_n$ est $x_{n+1}$;
-\item on recommence avec le triplet $(x_{n-1},x_{n},x_{n+1})$\ldots
-\end{enumerate}
-
-
-
-
-
-
-Vos réponses seront données directement ci-dessous.
-
-\begin{enumerate}
-
-\item En utilisant une base de Lagrange, montrer que le polynôme $P(x)$ 
-  obtenu à l'étape 1. de la première itération est défini par 
-$$
-P(x) =  \dfrac{(x-x_{n-1})(x-x_{n-2})f(x_n)}{(x_n-x_{n-1})(x_n-x_{n-2})}  +
-\dfrac{(x-x_{n})(x-x_{n-2})f(x_{n-1})}{(x_{n-1}-x_{n})(x_{n-1}-x_{n-2})} +
-\dfrac{(x-x_{n})(x-x_{n-1})f(x_{n-2})}{(x_{n-2}-x_{n})(x_{n-2}-x_{n-1})} 
-$$   
-
-\vspace{4cm}
-
-\item Montrer que le polynôme de la question précédente est de degré 2. 
-  Est-ce cohérent avec le fait qu'on veuille approximer $f$ en trois points? 
-\vspace{4cm}
-
-\item Montrer que le polynôme de la première question peut s'écrire 
-  sous la forme $P(x) = a_n x^2 + b_n x + c $ où 
-\begin{eqnarray*}
-a_n & = & \dfrac{f(x_n)}{(x_n-x_{n-1})(x_n-x_{n-2})} +
-\dfrac{f(x_{n-1})}{(x_{n-1}-x_{n})(x_{n-1}-x_{n-2})} +
-\dfrac{f(x_{n-2})}{(x_{n-2}-x_{n})(x_{n-2}-x_{n-1})} \\
-b_n & = &-\dfrac{f(x_n)(x_{n-1}+x_{n-2})}{(x_n-x_{n-1})(x_n-x_{n-2})} -
-\dfrac{f(x_{n-1})(x_{n}+x_{n-2})}{(x_{n-1}-x_{n})(x_{n-1}-x_{n-2})} -
-\dfrac{f(x_{n-2})(x_{n}+x_{n-1})}{(x_{n-2}-x_{n})(x_{n-2}-x_{n-1})} \\
-c_n & = & \dfrac{f(x_n)x_{n-1}x_{n-2}}{(x_n-x_{n-1})(x_n-x_{n-2})} +
-\dfrac{f(x_{n-1})x_{n}x_{n-2}}{(x_{n-1}-x_{n})(x_{n-1}-x_{n-2})} +
-\dfrac{f(x_{n-2})x_{n}x_{n-1}}{(x_{n-2}-x_{n})(x_{n-2}-x_{n-1})} 
-\end{eqnarray*}
-\vspace{8cm}
-
-
-\item Exprimer les deux racines $x'_{n}$ et $x''_{n}$ du polynôme précédent
-en fonctions de $a_n$, $b_n$ et  $c_n$ lorsqu'on itère dans les réels.
-\vspace{3cm}
-
-\item Comment est alors défini $x_{n+1}$?
-\vspace{3cm}
-
-\item On pourrait montrer que l'ordre de la convergence est 1,84. Comparer cette vitesse de convergence avec celle de Newton et celle de Lagrange.
-\vspace{3cm}
-
-
-\item Donner le code Python de la fonction 
-  $\verb+[n,X] = iteration_muller(x+_{\verb+0+},\verb+x+_{\verb+1+},\verb+x+_{\verb+2+}\verb+,m,epsilon,f)+$ où
-\begin{itemize}
-\item $\verb+x+_{\verb+0+}$, $\verb+x+_{\verb+1+}$ et $\verb+x+_{\verb+2+}$ sont les trois premières valeurs des itérés, \verb+m+
-  est le nombre maximal 
-  d'itérations, \texttt{epsilon} est la précision souhaitée 
-  et \verb+f+ la fonction à itérer;
-\item \verb+n+ est le nombre d'itérations réalisées pour que 
-\verb+f(+$\verb+x+_{\verb+n+}$\verb+)+=0 ou que 
-$|\verb+x+_{\verb+n+}- \verb+x+_{\verb+n-1+}| \leq \verb+epsilon+$, \verb+n+ étant inférieur à \verb+m+ et \verb+X+ est 
-  le vecteur contenant les 
-  valeurs $\verb+x+_{\verb+0+},\ldots,\verb+x+_{\verb+n+}$.
-\end{itemize}
-\end{enumerate}
-
-
-\end{document}
\ No newline at end of file
index 8ac41e36cdd50c4d84096dd9da827a858f2ce432..a2c7573aeaad4ce6914a33a1f514f4fa32f40918 100644 (file)
@@ -4,12 +4,12 @@ from math import *
 
 
 def coeffs(X,Y):
 
 
 def coeffs(X,Y):
-    n = len(X)-1
-    diff_div=[[0 for _ in xrange(n+1)] for _ in xrange(n+1)]
-    for i in xrange(n+1):
+    n = len(X)
+    diff_div=np.zeros((n,n))
+    for i in range(n):
         diff_div[i][0] = Y[i]
         diff_div[i][0] = Y[i]
-    for j in xrange(1,n+1):
-        for i in xrange(n-j+1):
+    for j in range(1,n):
+        for i in range(n-j):
             r = float(diff_div[i+1][j-1]-diff_div[i][j-1])/(X[i+j]-X[i])
             diff_div[i][j] = r
     print diff_div
             r = float(diff_div[i+1][j-1]-diff_div[i][j-1])/(X[i+j]-X[i])
             diff_div[i][j] = r
     print diff_div
@@ -34,6 +34,7 @@ def construit_et_eval_pol(X,Y,x):
 
 def construit_pol(X,Y):
     d = coeffs(X,Y)
 
 def construit_pol(X,Y):
     d = coeffs(X,Y)
+    print "les coeffs sont",d
     n = len(X)-1
     return lambda x : \
         sum([d[i]*prod([x - X[j] for j in xrange(i)]) for i in xrange(n+1)])
     n = len(X)-1
     return lambda x : \
         sum([d[i]*prod([x - X[j] for j in xrange(i)]) for i in xrange(n+1)])
@@ -41,17 +42,18 @@ def construit_pol(X,Y):
 
 
 
 
 
 
-"""
+
 
 print "tp 2.1....."
 X = [10,25,60]
 XX= [15,40,100]
 Y = [2.3, 8, 24.6]
 p = construit_pol(X,Y)
 
 print "tp 2.1....."
 X = [10,25,60]
 XX= [15,40,100]
 Y = [2.3, 8, 24.6]
 p = construit_pol(X,Y)
+
 Yp =[p(x) for x in XX]
 Ypp = [construit_et_eval_pol(X,Y,x) for x in XX]
 
 Yp =[p(x) for x in XX]
 Ypp = [construit_et_eval_pol(X,Y,x) for x in XX]
 
-print Yp, Ypp
+print "Yp", Yp#, Ypp
 
 
 x=np.linspace(10,100,100)
 
 
 x=np.linspace(10,100,100)
@@ -106,4 +108,4 @@ plt.ylabel('exp')
 plt.xlabel("x")
 plt.show()
 
 plt.xlabel("x")
 plt.show()
 
-
+"""
diff --git a/tps/chap3/jjm.py~ b/tps/chap3/jjm.py~
deleted file mode 100644 (file)
index da9ef8b..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-def iteration_lagrange(x0, q0, m, epsilon, f):
-    def maj_test(xn,xnm1):
-        return f(xn)!=0 and abs(xn-xnm1)>epsilon
-
-    n=0
-    test=f(x0)!=0
-    X=[x0]
-    xnm1=x0
-    xn=float(x0-f(x0))/q0
-    qn=q0
-    print(xn,q0)
-    while n<=m and test:
-        qn=float((f(xn)-f(xnm1)))/(xn-xnm1)
-        xnm1=xn
-        xn=xnm1-f(xnm1)/qn
-
-        X+=[xn]
-        test=maj_test(xn,xnm1)
-        n+=1
-    return (n,X)
-
-////////////////////////////////////////////////////////////////////////////
-print(iteration_lagrange(pi/4,1,200,0.0000001,f))
index 8ae3b711091bd03d226b2fea6df00ce5e62ea04f..9c9424e6110fff1b72177deac4a9b90f5f6cffce 100644 (file)
@@ -16,79 +16,61 @@ def fp(x):
 
 
 def  iteration_dichotomie(a,b,m,epsilon,f):
 
 
 def  iteration_dichotomie(a,b,m,epsilon,f):
-    def maj_test(xn,xnm1):
-        return f(xn) != 0 and abs(xnm1-xn) > epsilon  
-    xnm1 = a 
-    xn= a
+    def maj_test(xn,xnm1,n,m):
+        return f(xn) == 0 or abs(xnm1-xn) <= epsilon or n >= m    
+    xn= float(a)
+    xnm1 =float(b) 
     X=[]
     X=[]
-    n = 1
-    an= a
-    bn=b
-    test = True
-    while n <= m and test:
+    n = 0
+    an= float(a)
+    bn=float(b)
+    test = maj_test(xn,xnm1,n,m)
+    while not test:
         xnm1 = xn
         xn=float(an+bn)/2
         xnm1 = xn
         xn=float(an+bn)/2
-        test = maj_test(xn,xnm1)
         X +=[xn]
         if f(an)*f(xn)<=0 : 
             bn=xn
         else :
             an=xn
         n +=1
         X +=[xn]
         if f(an)*f(xn)<=0 : 
             bn=xn
         else :
             an=xn
         n +=1
+        test = maj_test(xn,xnm1,n,m)
     return (n,X)
 
 def  iteration_newton(x0,m,epsilon,f,fp):
     return (n,X)
 
 def  iteration_newton(x0,m,epsilon,f,fp):
-    def maj_test(xn,xnm1):
-        return f(xn) != 0 and abs(xnm1-xn) > epsilon  
-    n=0;
-    test= f(x0) != 0
-    xn=x0
-    X=[x0]
-    while n < m and test:
+    def maj_test(xn,xnm1,epsilon,n,m,f):
+        return f(xn) == 0 or abs(xnm1-xn) <= epsilon or n >= m
+    n = 0
+    xn = float(x0)
+    X = [x0]
+    test = maj_test(xn,xn+2*epsilon,epsilon,n,m,f)
+    while not test:
         qn=fp(xn)
         xnm1=xn
         xn= xn-f(xn)/qn
         X += [xn]
         n=n+1
         qn=fp(xn)
         xnm1=xn
         xn= xn-f(xn)/qn
         X += [xn]
         n=n+1
-        test= maj_test(xn,xnm1)
-
-#f(x) !=0 and n<m  and abs(x-xm1)>epsilon
+        test= maj_test(xn,xnm1,epsilon,n,m,f)
     return (n,X)
 
 
 def  iteration_corde(a,b,x0,m,epsilon,f):
     return (n,X)
 
 
 def  iteration_corde(a,b,x0,m,epsilon,f):
-    def maj_test(xn,xnm1):
-        return f(xn) != 0 and abs(xnm1-xn) > epsilon  
-    n=0;
+    def maj_test(xn,xnm1,n,m,f):
+        return f(xn)== 0 or abs(xnm1-xn) <= epsilon or n >= m
+    n=0
     q=float(f(b)-f(a))/(b-a)
     q=float(f(b)-f(a))/(b-a)
-    test= f(x0) != 0
-    xn=x0
-    X=[x0]
-    while n < m and test:
+    xnm1 = float(b)
+    xn=float(x0)
+    test= maj_test(xn,xnm1,n,m,f)
+    X=[float(x0)]
+    while not test:
         xnm1=xn
         xnm1=xn
-        xn= xn-f(xn)/q
+        xn= xn-float(f(xn))/q
         X += [xn]
         n=n+1
         X += [xn]
         n=n+1
-        test= maj_test(xn,xnm1)
-
-#f(x) !=0 and n<m  and abs(x-xm1)>epsilon
+        test= maj_test(xn,xnm1,n,m,f)
     return (n,X)
 
     return (n,X)
 
-"""def  iteration_newton(x0,m,epsilon,f,fp):
-    n=0;
-    delta=float(1)/fp(x0)
-    test= f(x0) != 0
-    x=x0
-    X=[x0]
-    while(test):
-        xm1=x
-        x= x-delta*f(x)
-        delta=float(1)/fp(x)
-        X += [x]
-        n=n+1
-        test= not (f(x)==0 or n>=m  or abs(x-xm1)<=epsilon)
-    return (n,X)
-"""
 
 def  iteration_lagrange(x0,x1,m,epsilon,f):
     n=0;
 
 def  iteration_lagrange(x0,x1,m,epsilon,f):
     n=0;
@@ -138,24 +120,24 @@ def  iteration_muller(x0,x1,x2,m,epsilon,f):
 
 def main():
     print "TP 3.1 ............ dichotomie"
 
 def main():
     print "TP 3.1 ............ dichotomie"
-    print iteration_dichotomie(0,pi/2,200,0.00000001,f)
+    print iteration_dichotomie(0,pi/2,45,1E-9,f)
 
 
-    
     print "TP 3.1 ............ corde"
     print "TP 3.1 ............ corde"
-    print iteration_corde(0,pi/2,0,200,0.00000001,f)
-
+    print iteration_corde(0,pi/2,0,200,1E-9,f)
 
     print "TP 3.1 ............ newton"
 
     print "TP 3.1 ............ newton"
-    print iteration_newton(0,200,0.00000001,f,fp)
+    print iteration_newton(0,200,1E-9,f,fp)
 
 
 
 
+
+"""
     print "TP 3.1 ............ lagrange"
     print iteration_lagrange(0,pi/2,200,0.00000001,f)
 
     print "TP 3.1 ............ muller"
     print iteration_muller(0,pi/4,pi/2,200,0.00000001,f)
     
     print "TP 3.1 ............ lagrange"
     print iteration_lagrange(0,pi/2,200,0.00000001,f)
 
     print "TP 3.1 ............ muller"
     print iteration_muller(0,pi/4,pi/2,200,0.00000001,f)
     
-
+"""
 if __name__ == '__main__':
     main()
 
 if __name__ == '__main__':
     main()
 
index 29f025b357c103ef7ae073440747650c45c18c7f..92edf69e31dd458a3155546e98878358085851e2 100644 (file)
Binary files a/tps/chap3/methodes.pyc and b/tps/chap3/methodes.pyc differ
diff --git a/tps/chap3/methodes.py~ b/tps/chap3/methodes.py~
deleted file mode 100644 (file)
index c7080e2..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-import matplotlib.pyplot as plt
-import numpy as np
-from math import *
-
-
-
-
-
-def f(x):
-    return cos(x)-x
-
-def fp(x):
-    return -sin(x)-1
-
-
-
-
-def  iteration_dichotomie(a,b,m,epsilon,f):
-    def maj_test(xn,xnm1):
-        return f(xn) != 0 and abs(xnm1-xn) > epsilon  
-    xnm1 = a 
-    xn= a
-    X=[]
-    n = 1
-    an= a
-    bn=b
-    test = True
-    while n <= m and test:
-        xnm1 = xn
-        xn=float(an+bn)/2
-        test = maj_test(xn,xnm1)
-        X +=[xn]
-        if f(an)*f(xn)<=0 : 
-            bn=xn
-        else :
-            an=xn
-        n +=1
-    return (n,X)
-
-def  iteration_newton(x0,m,epsilon,f,fp):
-    def maj_test(xn,xnm1):
-        return f(xn) != 0 and abs(xnm1-xn) > epsilon  
-    n=0;
-    test= f(x0) != 0
-    xn=x0
-    X=[x0]
-    while n < m and test:
-        qn=fp(xn)
-        xnm1=xn
-        xn= xn-f(xn)/qn
-        X += [xn]
-        n=n+1
-        test= maj_test(xn,xnm1)
-
-#f(x) !=0 and n<m  and abs(x-xm1)>epsilon
-    return (n,X)
-
-
-def  iteration_corde(a,b,x0,m,epsilon,f):
-    def maj_test(xn,xnm1):
-        return f(xn) != 0 and abs(xnm1-xn) > epsilon  
-    n=0;
-    q=float(f(b)-f(a))/(b-a)
-    test= f(x0) != 0
-    xn=x0
-    X=[x0]
-    while n < m and test:
-        xnm1=xn
-        xn= xn-f(xn)/q
-        X += [xn]
-        n=n+1
-        test= maj_test(xn,xnm1)
-
-#f(x) !=0 and n<m  and abs(x-xm1)>epsilon
-    return (n,X)
-
-"""def  iteration_newton(x0,m,epsilon,f,fp):
-    n=0;
-    delta=float(1)/fp(x0)
-    test= f(x0) != 0
-    x=x0
-    X=[x0]
-    while(test):
-        xm1=x
-        x= x-delta*f(x)
-        delta=float(1)/fp(x)
-        X += [x]
-        n=n+1
-        test= not (f(x)==0 or n>=m  or abs(x-xm1)<=epsilon)
-    return (n,X)
-"""
-
-def  iteration_lagrange(x0,x1,m,epsilon,f):
-    n=0;
-    delta=float(x1-x0)/(f(x1)-f(x0))
-    test= f(x0) != 0
-    x=x1
-    X=[x1]
-    while(test):
-        xm1=x
-        x= x-delta*f(x)
-        delta=float(x-xm1)/(f(x)-f(xm1))
-        X += [x]
-        n=n+1
-        test= not (f(x)==0 or n>=m  or abs(x-xm1)<=epsilon)
-    return (n,X)
-
-
-def main():
-    print "TP 3.1 ............ dichotomie"
-    print iteration_dichotomie(0,pi/2,200,0.00000001,f)
-
-    
-    print "TP 3.1 ............ corde"
-    print iteration_corde(0,pi/2,0,200,0.00000001,f)
-
-
-    print "TP 3.1 ............ newton"
-    print iteration_newton(0,200,0.00000001,f,fp)
-
-
-    print "TP 3.1 ............ lagrange"
-    print iteration_lagrange(0,pi/2,200,0.00000001,f)
-    
-
-if __name__ == '__main__':
-    main()
-
index 95517ffc67be2088680975980bbaa331859fecd5..00283a85314a24951d1cd3cc8a759fd595edf6e3 100644 (file)
@@ -22,16 +22,17 @@ def ordre_convergence(X,l=None) :
 
 def main():
 
 
 def main():
 
-    print "TP 3.2 ............ ordre convergence corde"
-    print ordre_convergence(iteration_corde(0,pi/2,0,200,0.00000001,f)[1])
+    print "TP 4.2 ............ ordre convergence corde"
+    print ordre_convergence(iteration_corde(0,pi/2,0,200,1E-9,f)[1])
 
 
 
 
-    print "TP 3.2 ............ ordre convergence newton"
-    print ordre_convergence(iteration_newton(0,200,0.00000001,f,fp)[1])
+    print "TP 4.2 ............ ordre convergence lagrange"
+    print ordre_convergence(iteration_lagrange(0,pi/2,200,1E-9,f)[1])
 
 
 
 
-    print "TP 3.1 ............ ordre convergence lagrange"
-    print ordre_convergence(iteration_lagrange(0,pi/2,200,0.00000001,f)[1])
+    print "TP 4.2 ............ ordre convergence newton"
+    print ordre_convergence(iteration_newton(0,200,1E-9,f,fp)[1])
+
 
 
 if __name__ == '__main__':
 
 
 if __name__ == '__main__':