2 Bien qu’il puisse être posé simplement (trouver tous les $x$ tel que $P(x) =0$),
3 résoudre algébriquement des équations
4 est un problème difficile.
5 Depuis l'antiquité, l’homme a cherché des algorithmes donnant les
6 valeurs des racines d'un polynôme
7 en fonction de ses coefficients.
8 On connaît une solution pour les polynômes de degré 2.
10 en 1545 les formules de résolution de certaines équations cubiques de
14 $ avec $p$ et $q$ non nuls. Calculons le discriminant
15 $\Delta = \frac{4}{27}p^3+ p^2$ et discutons de son signe:
17 \item si $\Delta$ est nul, l'équation possède
18 deux solutions réelles, une simple et une double :
22 x_0=2\sqrt[3]{\frac{-q}2}=\frac{3q}p
24 x_1=x_2=-\sqrt[3]{\frac{-q}2}=\frac{-3q}{2p}
29 \item Si $\Delta$ est positif, l'équation possède une solution réelle
30 et deux complexes. On pose alors
31 $u = \sqrt[3]{\frac{-q + \sqrt{\Delta}}2}$ et $v = \sqrt[3]{\frac{-q - \sqrt{\Delta}}2}$.
32 La seule solution réelle est alors $x_0=u+v$.
33 Il existe également deux solutions complexes conjuguées l'une de l'autre:
36 x_1= j u +\bar{j} v \\
37 x_2= j^2u +\overline{j^2}\end{cases}
38 \qquad\textrm{ où }\qquad j=-\frac12+ i \frac{\sqrt3}2=e^{i\frac{2\pi}3}
41 \item si $\Delta$ est négatif, l'équation possède trois solutions réelles:
43 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\}.
48 Donnée à titre d'exemple, ce travail montre que rapidement on obtient
49 des algorithmes compliqués.
50 De plus, Abel a montrée en 1824 qu'il n'est pas toujours possible
51 d'exprimer les racines de l'équation générale de
52 degré supérieur ou égal à 5 à partir des coefficients du polynôme, des
53 quatre opérations et des racines nièmes...
54 On s'intéresse donc aux méthodes numériques.
58 \section{Méthodes classiques}
59 On considère pour l'ensemble du chapitre l'équation $f(x)=0$, où
60 $x$ décrit l'intervalle $[a,b]$ de $\R$ et $f$ désigne une fonction
61 définie et continue sur $[a,b]$ et à valeur dans $\R$.
62 On suppose de plus la condition $f(a)f(b)\leq 0$ qui garantit
63 l'existence d'(au moins) une solution sur $[a,b]$.
64 On présente la méthode par dichotomie et on ferra ensuite des exercices
65 sur d'autres méthodes.
67 \subsection{Méthode par dichotomie}
68 Construisons trois suites $(x_n)_{n \in \N}$,
69 $(a_n)_{n \in \N}$ et $(b_n)_{n \in \N}$ définies par:
71 \item $a_0=a$, $b_0=b$ et pour tout $n \in \N$, $x_n = (a_n+b_n)/2$, soit
72 le milieu de $[a_n,b_n]$;
73 \item si $f(a_n)f(x_n)\leq 0$, alors $a_{n+1} = a_{n}$ et $b_{n+1}=x_n$;
74 \item si $f(a_n)f(x_n)> 0$, alors $a_{n+1} = x_{n}$ et $b_{n+1}=b_n$.
77 Par récurrence montrons que $f(a_n)f(b_n)\leq 0$ pour tout $n\in \N$.
78 C'est vrai au rang 0. Supposons que ce le soit jusqu'au rang $n$.
79 Évaluons $f(a_{n+1})f(b_{n+1})$:
81 \item si $f(a_n)f(x_n)\leq 0$ alors comme $a_{n+1} = a_{n}$ et $b_{n+1}=x_n$,
82 le résultat est établi, c.-à-d. $f(a_{n+1})f(b_{n+1})\leq 0$;
83 \item sinon, $f(a_n)f(x_n)> 0$. Ainsi $f(a_{n+1})f(b_{n+1})$ a le même
84 signe que $f(a_{n+1})f(b_{n+1})f(a_n)f(x_n)$ c.-à-d. le signe de
85 $f(x_{n})f(b_{n})f(a_n)f(x_n)$ soit encore le signe de $f(a_n)f(b_n)$.
86 Ce dernier est positif d'après l'hypothèse de récurence.
89 A chaque itération, l'intervalle $[a_n,b_n]$ est découpé
104 a \le a_n \le x_n \le b_n \le b,
112 On obtient alors par récurrence que
113 \begin{equation}\label{eq:met:maj}
126 La suite $(a_n)$ est croissante, majorée. Elle converge vers une limite
127 $\alpha$ quand $n$ tend vers l'infini.
129 la suite $(b_n)$ est décroissante, minorée. Elle converge vers une limite
130 $\alpha'$ quand $n$ tend vers l'infini.
131 D'après l'inégalité précédente, $\alpha = \alpha'$.
132 La suite $(x_n)$ est encadrée par $(a_n)$ et $(b_n)$. Elle converge donc aussi
134 Enfin, comme $f$ est continue et comme
135 $f(a_n)f(b_n)\leq 0$, on a $f(\alpha)f(\alpha)\leq 0$ et donc
136 $f(\alpha)=0$ et donc $\alpha$ est une racine.
137 On a donc trouvé une méthode algorithmique simple qui converge vers une
140 Essayons maintenant de déterminer une majoration de l'erreur commise à
142 Tout d'abord, comme $(a_n)$ est croissante et converge vers $\alpha$ on a
143 $a_n \leq \alpha$. De même $\alpha \leq b_n$ et donc
144 $a_n \leq \{ \alpha,x_n\} \leq b_n$.
145 Ainsi, d'après l'équation (\ref{eq:met:maj}), on a
158 Ainsi pour un $\epsilon$ donné positif représentant l'amplitude maximale de l'erreur, posons
159 \begin{equation}\label{eq:erreur:epsilon}
160 n_0 = \lfloor \dfrac{ \ln(\frac{b-a}{\epsilon})}{\ln(2)} \rfloor + 1
163 Si $n \geq n_0$, alors
165 2^n \geq 2^{\frac{ \ln(\frac{b-a}{\epsilon})}{\ln(2)}} \geq
166 e^{ \ln(\frac{b-a}{\epsilon})} \geq
167 \frac{b-a}{\epsilon}.
169 Ainsi $\frac{1}{2^n}(b-a) \leq {\epsilon}$ et donc
176 Pour un $\epsilon$ donné, on sait calculer un rang $n_0$ à partir duquel
177 l'erreur avec la limite est inférieure à cet $\epsilon$.
182 \psset{xunit=3cm,yunit=0.8cm}
183 \savedata{\mydata}[{{0.0, -1.25}, {0.1, -1.24}, {0.2, -1.21}, {0.3, -1.16}, {0.4, -1.0899999999999999}, {0.5, -1.0}, {0.6, -0.89}, {0.7, -0.76}, {0.8, -0.6099999999999999}, {0.9, -0.43999999999999995}, {1.0, -0.25}, {1.1, -0.039999999999999813}, {1.2, 0.18999999999999995}, {1.3, 0.44000000000000017}, {1.4, 0.7099999999999997}, {1.5, 1.0}, {1.6, 1.3100000000000005}, {1.7, 1.6399999999999997}, {1.8, 1.9900000000000002}, {1.9, 2.36}, {2.0, 2.75}, {2.1, 3.16}, {2.2, 3.5900000000000007}, {2.3, 4.039999999999999}, {2.4, 4.51}}]
184 \dataplot[plotstyle=curve,showpoints=true]{\mydata}
185 \psline{<->}(0,2)(0,-2)(0,0)(3,0)
186 \psline{-}(1.3125,0)(2.2,3.55)
189 % \begin{pspicture}(9,9)
190 % \psaxes[labels=none,ticks=none]{->}(0,0)(8,8)[$x$,0][$y$,0]
191 % \pscurve(1,1)(3,4)(6,6)(8,4)
192 % \pscurve[linestyle=symbol,symbolStep=11.6pt,% must be positive
193 % curveticks,startAngle=60](1,1)(3,4)(6,6)(8,4)
195 % \begin{pspicture}(8,8)
196 % \psaxes[labels=none,ticks=none]{->}(0,0)(8,8)[$x$,0][$y$,0]
197 % \pscurve[linestyle=symbol,symbolStep=-20,% must be negative !
198 % curveticks,startAngle=60](1,1)(3,4)(6,6)(8,4)
200 \caption{Représentation graphique de méthodes itératives de construction de racine}\label{fig:graphe1}
204 Soit $f$ une fonction de $\R$ dans $\R$. On suppose
205 que $f$ possède une racine $\alpha$ dans l'intervalle $[a,b]$ et
206 on cherche une valeur approchée de cette racine.
207 L'idée commune des méthodes de Lagrange et Newton est d'écrire
209 0 = f(\alpha)= f(x) + (\alpha-x)f'(\zeta), \textrm{ où } \zeta \in [\alpha,x]
211 On construit de façon itérative une suite $(x_n)_{n \in \N}$ censée converger
212 vers $\alpha$ en remplaçant l'équation précédente par
214 0 = f(x_n) + (x_{n+1}-x_{n})q_n \label{eq:num:class}
216 où $q_n$ est une approximation de $f'(x_n)$.
218 Dans cet exercice, on suppose en plus que:
220 \item $f(x_n) \neq 0$ : sinon, la racine est trouvée;
221 \item $f$ est injective sur $[a,b]$ (pour tout $x$, $y$ de $[a,b]$,
222 si $f(x) = f(y) \Rightarrow x = y$);
223 \item $q_n$ n'est jamais nul.
227 \item Méthode globale
229 \item Montrer que l'on a $x_{n+1} \neq x_{n}$.
230 \item Montrer que (\ref{eq:num:class}) est équivalente à
232 x_{n+1} = x_{n} - \frac{f(x_n)}{q_n} \label{eq:num:gen}
234 \item Dans la représentation graphique donnée figure~\ref{fig:graphe1}:
236 \item donner l'équation de la droite tracée;
237 \item montrer que l'abscisse du point d'intersection
238 de cette droite avec l'axe des abscisses est $x_{n+1}$;
239 \item Construire quelques $x_i$ supplémentaires.
243 \item Dans la méthode de la corde, $q_n$ est constante et égale à
245 q_{n} = \frac{f(b) - f(a)}{b - a} \label{eq:num:corde}
248 \item Dans la méthode de Lagrange on a
250 q_{n} = \frac{f(x_{n}) - f(x_{n-1})}{x_n - x_{n-1}} \label{eq:num:lagrange}
253 \item Dans la méthode de Newton on a $q_n = f'(x_n)$
259 \section{Convergence des méthodes de Lagrange et Newton}
263 Soit l'équation $f(x)=0$ et la suite $(x_n)$ des itérés de Newton définie par
264 $x_0$ et $\forall n \in N$, $x_{n+1} = x_{n} -\frac{f(x_n)}{f'(x_n)}$.
265 Sous les hypothèses suivantes:
267 \item $f$ de classe $C^2$ sur $[a,b]$,
268 \item $f(a)f(b) < 0$,
269 \item $ \forall x \in [a,b]$, $f'(x)\neq 0$,
270 \item $f''$ de signe constant sur $[a,b]$,
271 \item $\frac{|f(a)|}{|f'(a)|} < b-a $ et $\frac{|f(b)|}{|f'(b)|} < b-a $,
273 la suite des itérés de Newton converge pour tout choix de $x_0$ dans $[a,b]$ vers l'unique
274 solution $\alpha$ de cet intervalle.
279 \begin{Def}[Erreur et ordre]
280 Soit $(x_n)$ une suite convergeant vers une valeurs $\alpha$.
281 On appelle \emph{erreur de rang $n$} le réel $e_n=\alpha-x_n$. On
282 dit que la convergence est d'ordre $p \in \R^*_+$ si
284 \lim\limits_{n \to \infty} \dfrac{|e_{n+1}|}{|e_n|^p} = c
286 où $c$ est un réel positif non nul.
287 On remarque que plus l'ordre est élevé, plus la méthode converge vite.
291 \begin{Prop}[Vitesse de convergence]
292 Si la suite des itérés de Lagrange converge, alors la convergence est
293 d'ordre $(1+\sqrt{5})/2$.
294 Si la suite des itérés de Newton converge,
295 alors la convergence est au moins d'ordre 2.
299 \section{Méthode de point fixe}
300 Soit $f$ une application d'un ensemble $E$ dans lui-même.
301 On appelle \emph{point fixe} de l'application $f$ tout élément
302 $u$ dans $E$ tel que $g(u)=u$.
303 On voit que résoudre ce type d'équation
304 est un cas particulier des équations numériques
306 Cependant, on peut les étudier pour les algorithmes spécifiques
309 \subsection{Exemples de points fixe}
310 L'équation $x^4+6x^2-60x+36=0$ dite de Ferrari admet deux racines réelles dans l'intervalle $[0,4]$.
311 Pour résoudre numériquement ce problème, on peut transformer l'équation en une équation du point
312 fixe $g_i(x) =x$ avec
314 \item $g_1(x) = \frac{1}{60}(x^4 + 6x^2 +36)$;
315 \item $g_2(x) = - \frac{36}{x^3+6x-60}$;
316 \item $g_3(x) = (-6x^2+ 60x -36)^{\frac{1}{4}}$.
320 \subsection{Algorithme du point fixe}
321 L'algorithme du point fixe donné ci dessous (Algorithme~\ref{algo:pf}) est
322 une version constructive de la suite $(x_n)$ définie par $x_0$ et pour tout $n \in \N$,
328 \KwData{$x_0$: terme initial, $g$: fonction définissant les itérés}
329 \KwResult{$n$: nombre d'itérations effectuées, $[x_1, \ldots,x_n]$: vecteurs des itérés}
331 initialisation du booléen d'\textit{arrêt}\;
333 $x_{n+1} = g(x_n)$ \;
335 \caption{Algorithme du point fixe}\label{algo:pf}
338 \subsection{Conditions suffisantes de convergence}
341 \begin{Prop}\label{th:csconv:pf}
342 Supposons qu'il existe un intervalle $[a,b]$ de $\R$ sur lequel $g$ vérifie:
344 \item $g$ est définie sur $[a,b]$ et $g([a,b]) \subset [a,b]$;
345 \item $g$ est dérivable sur $[a,b]$ et il existe un réel $k\in[0,1[$ tel que pour
346 tout $x \in [a,b]$ on a $|g'(x)|<k$;
350 \item $g$ admet un point fixe $l$ dans $[a,b]$;
351 \item pour tout $x_0$ de $[a,b]$, la suite $x_n$ converge vers $l$, unique solution dans
357 \subsection{Vitesse de convergence}
358 \begin{Prop}[Vitesse de convergence de la méthode du point fixe]
359 Sous les hypothèses de la proposition précédente, on peut dire qu'en général
360 la convergence de la méthode du point fixe est linéaire.
364 Pour chacune des équations suivantes, étudier la convergence de la suite des
365 itérés du point fixe pour un $x_0$ choisi dans l'intervalle proposé.
367 \item fonction $g_3$ de Ferrari sur $[2;4]$;
368 \item fonction $g_2$ de Ferrari sur $[3;\textrm{3,1}]$;
374 On verra dans cet exercice que les conditions de la
375 proposition~\ref{th:csconv:pf} sont suffisantes, pas nécessaires.
377 \item Quels sont les points fixes de $g(x)=x - x^3$ sur $[-1;1]$?
378 \item La fonction $g$ vérifie-t-elle les hypothèses de la proposition~\ref{th:csconv:pf}?
379 \item Montrer que pour tout $x_0 \in [-1;1]$, la suite des itérés converge.
380 On pourra se restreindre à étudier $x_0$ sur $[0;1]$ comme
381 la fonction est paire.
382 \item Mêmes questions avec $g(x)=x + x^3$.
387 Tout le code suivant est à faire en python.
389 \item Écrire la fonction
390 \verb+[n,X] = iteration_dichotomie(a,b,m,epsilon,f)+ où
392 \item \verb+a+, \verb+b+ sont les bornes de l'intervalle, \verb+m+
393 est le nombre maximal
394 d'itérations, \texttt{epsilon} est la précision souhaitée
395 (voir équation (\ref{eq:erreur:epsilon})) et \verb+f+ la fonction à itérer;
396 \item \verb+n+ est le nombre d'itérations réalisées pour que
397 \verb+f(+$\verb+x+_{\verb+n+}$\verb+)+=0 ou que
398 $|\verb+x+_{\verb+n+}- \verb+x+_{\verb+n-1+}| \leq \verb+epsilon+$, \verb+n+ étant inférieur à \verb+m+ et \verb+X+ est
399 le vecteur contenant les
400 valeurs $\verb+x+_{\verb+0+},\ldots,\verb+x+_{\verb+n+}$.
402 \item Écrire la fonction
403 \verb+[n,X] = iteration_corde(a,b,+$\verb+x+_{\verb+0+}$\verb+,m,epsilon,f)+ où
405 \item $\verb+x+_{\verb+0+}$ est le premier terme de la suite;
407 \item Écrire la fonction
408 \verb+[n,X] = iteration_Newton(+$\verb+x+_{\verb+0+}$\verb+,m,epsilon,f)+.
414 L'objectif du TP est de mesurer l'ordre de grandeur de la convergence d'une
416 On suppose que la suite $(x_n)$ converge vers $l$ avec l'ordre $p\geq 1$.
417 On note $e_n= l -x_n$. On a $|e_{n+1}| \approx c |e_n|^p$ et donc
418 $\ln(|e_{n+1}|) \approx p \ln(|e_n|) + \ln(c)$.
419 En posant $y = \ln(|e_{n+1}|)$, $x = \ln(|e_n|)$ et $k = \ln(c)$ on a
420 $y = px + k$ soit l'équation d'une droite de pente $p$.
421 Pour estimer $p$, on peut donc tracer l'ensemble de points
422 $(\ln(|e_{n}|),\ln(|e_{n+1}|))$, contruire la droite de regression linéaire
423 et prendre son coefficient directeur.
426 \item Construire la méthode
427 \verb+p=ordre_convergence(X,l)+ telle que
429 \item \texttt{X} est le vecteur contenant les valeurs des itérés $\verb+x+_{\verb+0+}$, \ldots, $\verb+x+_{\verb+n+}$ et
430 \verb+l+ est la limite présumée de la suite;
431 \item cette fonction exploite la fonction
432 \verb+scipy.stats.linregress(x, y=None)+;
433 \item \verb+p+ est l'ordre de convergence calculé numériquement.
436 \item Tester les méthodes du TP précédent
437 (dichotomie, corde, Lagrange, Newton) pour la fonction
438 $f$ définie par $f(x)=\cos(x)-x$ sur $[0,\pi/2]$.
439 Calculer l'ordre à l'aide de la fonction développée à la première question.
440 \item Comparer avec la fonction \verb+scipy.optimize.newton+.