2 Résoudre algébriquement des équations
3 est un problème difficile.
4 Depuis l'antiquité, l’homme a cherché des algorithmes donnant les
5 valeurs des racines d'un polynôme
6 en fonction de ses coefficients.
7 On connaît une solution pour les polynômes de degré 2.
9 en 1545 les formules de résolution de certaines équations cubiques de
13 $ avec $p$ et $q$ non nuls. Calculons le discriminant
14 $\Delta = \frac{4}{27}p^3+ q^2$ et discutons de son signe:
16 \item si $\Delta$ est nul, l'équation possède
17 deux solutions réelles, une simple et une double :
20 x_0=2\sqrt[3]{\frac{-q}2}=\frac{3q}p
22 x_1=x_2=-\sqrt[3]{\frac{-q}2}=\frac{-3q}{2p}
27 \item Si $\Delta$ est positif, l'équation possède une solution réelle
28 et deux complexes. On pose alors
29 $u = \sqrt[3]{\frac{-q + \sqrt{\Delta}}2}$ et $v = \sqrt[3]{\frac{-q - \sqrt{\Delta}}2}$.
30 La seule solution réelle est alors $x_0=u+v$.
31 Il existe également deux solutions complexes conjuguées l'une de l'autre:
34 x_1= j u +\bar{j} v \\
35 x_2= j^2u +\overline{j^2}\end{cases}
36 \textrm{ où } j=-\frac12+ i \frac{\sqrt3}2=e^{i\frac{2\pi}3}
39 \item sinon, l'équation a trois solutions réelles:
41 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\}.
45 %Donnée à titre d'exemple,
46 Ce travail montre que rapidement on obtient
47 des algorithmes compliqués.
48 De plus, Abel a montrée en 1824 qu'il n'est pas toujours possible
49 d'exprimer les racines de l'équation générale de
50 degré supérieur ou égal à 5 à partir des coefficients du polynôme, des
51 quatre opérations et des racines nièmes...
52 On s'intéresse donc aux méthodes numériques.
56 \section{Méthodes classiques}
57 On considère pour l'ensemble du chapitre l'équation $f(x)=0$, où
58 $x$ décrit l'intervalle $[a,b]$ de $\R$ et $f$ désigne une fonction
59 définie et continue sur $[a,b]$ et à valeur dans $\R$.
60 On suppose de plus la condition $f(a)f(b)\leq 0$ qui garantit
61 l'existence d'(au moins) une solution sur $[a,b]$.
62 On présente la méthode par dichotomie et on ferra ensuite des exercices
63 sur d'autres méthodes.
65 \subsection{Méthode par dichotomie}
66 Construisons trois suites $(x_n)_{n \in \N}$,
67 $(a_n)_{n \in \N}$ et $(b_n)_{n \in \N}$ définies par:
69 \item $a_0=a$, $b_0=b$ et pour tout $n \in \N$, $x_n = (a_n+b_n)/2$, soit
70 le milieu de $[a_n,b_n]$;
71 \item si $f(a_n)f(x_n)\leq 0$, alors $a_{n+1} = a_{n}$ et $b_{n+1}=x_n$;
72 \item si $f(a_n)f(x_n)> 0$, alors $a_{n+1} = x_{n}$ et $b_{n+1}=b_n$.
75 Par récurrence montrons que $f(a_n)f(b_n)\leq 0$ pour tout $n\in \N$.
76 C'est vrai au rang 0. Supposons que ce le soit jusqu'au rang $n$.
77 Évaluons $f(a_{n+1})f(b_{n+1})$:
79 \item si $f(a_n)f(x_n)\leq 0$ alors comme $a_{n+1} = a_{n}$ et $b_{n+1}=x_n$,
80 le résultat est établi, c.-à-d. $f(a_{n+1})f(b_{n+1})\leq 0$;
81 \item sinon, $f(a_n)f(x_n)> 0$. Ainsi $f(a_{n+1})f(b_{n+1})$ a le même
82 signe que $f(a_{n+1})f(b_{n+1})f(a_n)f(x_n)$ c.-à-d. le signe de
83 $f(x_{n})f(b_{n})f(a_n)f(x_n)$ soit encore le signe de $f(a_n)f(b_n)$.
84 Ce dernier est négatif d'après l'hypothèse de récurence.
87 A chaque itération, l'intervalle $[a_n,b_n]$ est découpé
102 a \le a_n \le x_n \le b_n \le b,
110 On obtient alors par récurrence que
111 \begin{equation}\label{eq:met:maj}
124 La suite $(a_n)$ est croissante, majorée. Elle converge vers une limite
125 $\alpha$ quand $n$ tend vers l'infini.
127 la suite $(b_n)$ est décroissante, minorée. Elle converge vers une limite
128 $\alpha'$ quand $n$ tend vers l'infini.
129 D'après l'inégalité précédente, $\alpha = \alpha'$.
130 La suite $(x_n)$ est encadrée par $(a_n)$ et $(b_n)$. Elle converge donc aussi
132 Enfin, comme $f$ est continue et comme
133 $f(a_n)f(b_n)\leq 0$, on a $f(\alpha)f(\alpha)\leq 0$ et donc
134 $f(\alpha)=0$ et donc $\alpha$ est une racine.
135 On a donc trouvé une méthode algorithmique simple qui converge vers une
138 Essayons maintenant de déterminer une majoration de l'erreur commise à
140 Tout d'abord, comme $(a_n)$ est croissante et converge vers $\alpha$ on a
141 $a_n \leq \alpha$. De même $\alpha \leq b_n$ et donc
142 $a_n \leq \{ \alpha,x_n\} \leq b_n$.
143 Ainsi, d'après l'équation (\ref{eq:met:maj}), on a
156 Ainsi pour un $\epsilon$ donné positif représentant l'amplitude maximale de l'erreur, posons
157 \begin{equation}\label{eq:erreur:epsilon}
158 n_0 = \lfloor \dfrac{ \ln(\frac{b-a}{\epsilon})}{\ln(2)} \rfloor + 1
161 Si $n \geq n_0$, alors
163 2^n \geq 2^{\frac{ \ln(\frac{b-a}{\epsilon})}{\ln(2)}} \geq
164 e^{ \ln(\frac{b-a}{\epsilon})} \geq
165 \frac{b-a}{\epsilon}.
167 Ainsi $\frac{1}{2^n}(b-a) \leq {\epsilon}$ et donc
174 Pour un $\epsilon$ donné, on sait calculer un rang $n_0$ à partir duquel
175 l'erreur avec la limite est inférieure à cet $\epsilon$.
181 \begin{minipage}{0.5\textwidth}
183 \psset{xunit=3cm,yunit=0.8cm}
184 \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}}]
185 \dataplot[plotstyle=curve,showpoints=true]{\mydata}
186 \psline{<->}(0,2)(0,-2)(0,0)(3,0)
187 \psline{-}(1.3125,0)(2.2,3.55)
191 \caption{Représentation graphique de méthodes itératives de construction de racine}\label{fig:graphe1}
195 Soit $f$ une fonction de $\R$ dans $\R$. On suppose
196 que $f$ possède une racine $\alpha$ dans l'intervalle $[a,b]$ et
197 on cherche une valeur approchée de cette racine.
198 L'idée commune des méthodes de Lagrange et Newton est d'écrire
200 0 = f(\alpha)= f(x) + (\alpha-x)f'(\zeta), \textrm{ où } \zeta \in [\alpha,x]
202 On construit de façon itérative une suite $(x_n)_{n \in \N}$ censée converger
203 vers $\alpha$ en remplaçant l'équation précédente par
205 0 = f(x_n) + (x_{n+1}-x_{n})q_n \label{eq:num:class}
207 où $q_n$ est une approximation de $f'(x_n)$.
209 Dans cet exercice, on suppose en plus que:
211 \item $f(x_n) \neq 0$ : sinon, la racine est trouvée;
212 \item $f$ est injective sur $[a,b]$ (pour tout $x$, $y$ de $[a,b]$,
213 si $f(x) = f(y) \Rightarrow x = y$);
214 \item $q_n$ n'est jamais nul.
218 \item Méthode globale
220 \item Montrer que l'on a $x_{n+1} \neq x_{n}$.
221 \item Montrer que (\ref{eq:num:class}) est équivalente à
223 x_{n+1} = x_{n} - \frac{f(x_n)}{q_n} \label{eq:num:gen}
225 \item Dans la représentation graphique donnée figure~\ref{fig:graphe1}:
227 \item donner l'équation de la droite tracée;
228 \item montrer que l'abscisse du point d'intersection
229 de cette droite avec l'axe des abscisses est $x_{n+1}$;
230 \item Construire quelques $x_i$ supplémentaires.
234 \item Dans la méthode de la corde, $q_n$ est constante et égale à
236 $q_{n} = \frac{f(b) - f(a)}{b - a} \label{eq:num:corde}
239 \item Dans la méthode de Lagrange on a
241 $q_{n} = \frac{f(x_{n}) - f(x_{n-1})}{x_n - x_{n-1}} \label{eq:num:lagrange}
244 \item Dans la méthode de Newton on a $q_n = f'(x_n)$
250 \section{Convergence des méthodes de Lagrange et Newton}
254 Soit l'équation $f(x)=0$ et la suite $(x_n)$ des itérés de Newton définie par
255 $x_0$ et $\forall n \in N$, $x_{n+1} = x_{n} -\frac{f(x_n)}{f'(x_n)}$.
256 Sous les hypothèses suivantes:
258 \item $f$ de classe $C^2$ sur $[a,b]$,
259 \item $f(a)f(b) < 0$,
260 \item $ \forall x \in [a,b]$, $f'(x)\neq 0$,
261 \item $f''$ de signe constant sur $[a,b]$,
262 \item $\frac{|f(a)|}{|f'(a)|} < b-a $ et $\frac{|f(b)|}{|f'(b)|} < b-a $,
264 la suite des itérés de Newton converge pour tout choix de $x_0$ dans $[a,b]$ vers l'unique
265 solution $\alpha$ de cet intervalle.
270 \begin{Def}[Erreur et ordre]
271 Soit $(x_n)$ une suite convergeant vers une valeurs $\alpha$.
272 On appelle \emph{erreur de rang $n$} le réel $e_n=\alpha-x_n$. On
273 dit que la convergence est d'ordre $p \in \R^*_+$ si
275 \lim\limits_{n \to \infty} \dfrac{|e_{n+1}|}{|e_n|^p} = c
277 où $c$ est un réel positif non nul.
278 On remarque que plus l'ordre est élevé, plus la méthode converge vite.
282 \begin{Prop}[Vitesse de convergence]
283 Si la suite des itérés obtenus par dichotomie converge,
284 alors la convergence est linéaire.
285 Si la suite des itérés de Lagrange converge, alors la convergence est
286 d'ordre $(1+\sqrt{5})/2$.
287 Si la suite des itérés de Newton converge,
288 alors la convergence est au moins d'ordre 2.
292 \section{Méthode de point fixe}
293 Soit $f$ une application d'un ensemble $E$ dans lui-même.
294 On appelle \emph{point fixe} de l'application $f$ tout élément
295 $u$ dans $E$ tel que $g(u)=u$.
296 On voit que résoudre ce type d'équation
297 est un cas particulier des équations numériques
299 Cependant, on peut les étudier pour les algorithmes spécifiques
302 \subsection{Exemples de points fixe}
303 L'équation $x^4+6x^2-60x+36=0$ dite de Ferrari admet deux racines réelles dans l'intervalle $[0,4]$.
304 Pour résoudre numériquement ce problème, on peut transformer l'équation en une équation du point
305 fixe $g_i(x) =x$ avec
307 \item $g_1(x) = \frac{1}{60}(x^4 + 6x^2 +36)$;
308 \item $g_2(x) = - \frac{36}{x^3+6x-60}$;
309 \item $g_3(x) = (-6x^2+ 60x -36)^{\frac{1}{4}}$.
314 \begin{TP}[Comparaison d'approches]
317 \item Écrire la fonction
318 \verb+[n,X] = iteration_dichotomie(a,b,m,epsilon,f)+ où
320 \item \verb+a+, \verb+b+ sont les bornes de l'intervalle, \verb+m+
321 est le nombre maximal
322 d'itérations, \texttt{epsilon} est la précision souhaitée
323 (voir équation (\ref{eq:erreur:epsilon})) et \verb+f+ la fonction à itérer;
324 \item \verb+n+ est le nombre d'itérations réalisées pour que
325 \verb+f(+$\verb+x+_{\verb+n+}$\verb+)+=0 ou que
326 $|\verb+x+_{\verb+n+}- \verb+x+_{\verb+n-1+}| \leq \verb+epsilon+$, \verb+n+ étant inférieur à \verb+m+ et \verb+X+ est
327 le vecteur contenant les
328 valeurs $\verb+x+_{\verb+0+},\ldots,\verb+x+_{\verb+n+}$.
330 \item Écrire la fonction
331 \verb+[n,X] = iteration_corde(a,b,+$\verb+x+_{\verb+0+}$\verb+,m,epsilon,f)+ où
333 \item $\verb+x+_{\verb+0+}$ est le premier terme de la suite;
335 \item Écrire la fonction
336 \verb+[n,X] = iteration_Newton(+$\verb+x+_{\verb+0+}$\verb+,m,epsilon,f)+.
342 L'objectif du TP est de mesurer l'ordre de grandeur de la convergence d'une
344 On suppose que la suite $(x_n)$ converge vers $l$ avec l'ordre $p\geq 1$.
345 On note $e_n= l -x_n$. On a $|e_{n+1}| \approx c |e_n|^p$ et donc
346 $\ln(|e_{n+1}|) \approx p \ln(|e_n|) + \ln(c)$.
347 En posant $y = \ln(|e_{n+1}|)$, $x = \ln(|e_n|)$ et $k = \ln(c)$ on a
348 $y = px + k$ soit l'équation d'une droite de pente $p$.
349 Pour estimer $p$, on peut donc tracer l'ensemble de points
350 $(\ln(|e_{n}|),\ln(|e_{n+1}|))$, contruire la droite de regression linéaire
351 et prendre son coefficient directeur.
354 \item Construire la méthode
355 \verb+p=ordre_convergence(X,l)+ telle que
357 \item \texttt{X} est le vecteur contenant les valeurs des itérés $\verb+x+_{\verb+0+}$, \ldots, $\verb+x+_{\verb+n+}$ et
358 \verb+l+ est la limite présumée de la suite;
359 \item cette fonction exploite la fonction
360 \verb+scipy.stats.linregress(x, y=None)+;
361 \item \verb+p+ est l'ordre de convergence calculé numériquement.
364 \item Tester les méthodes du TP précédent
365 (dichotomie, corde, Lagrange, Newton) pour la fonction
366 $f$ définie par $f(x)=\cos(x)-x$ sur $[0,\pi/2]$.
367 Calculer l'ordre à l'aide de la fonction développée à la première question.
368 \item Comparer avec la fonction \verb+scipy.optimize.newton+.
374 \subsection{Algorithme du point fixe}
375 L'algorithme du point fixe donné ci dessous (Algorithme~\ref{algo:pf}) est
376 une version constructive de la suite $(x_n)$ définie par $x_0$ et pour tout $n \in \N$,
382 \KwData{$x_0$: terme initial, $g$: fonction définissant les itérés}
383 \KwResult{$n$: nombre d'itérations effectuées, $[x_1, \ldots,x_n]$: vecteurs des itérés}
385 initialisation du booléen d'\textit{arrêt}\;
387 $x_{n+1} = g(x_n)$ \;
389 \caption{Algorithme du point fixe}\label{algo:pf}
392 \subsection{Conditions suffisantes de convergence}
395 \begin{Prop}\label{th:csconv:pf}
396 Supposons qu'il existe un intervalle $[a,b]$ de $\R$ sur lequel $g$ vérifie:
398 \item $g$ est définie sur $[a,b]$ et $g([a,b]) \subset [a,b]$;
399 \item $g$ est dérivable sur $[a,b]$ et il existe un réel $k\in[0,1[$ tel que pour
400 tout $x \in [a,b]$ on a $|g'(x)|<k$;
404 \item $g$ admet un point fixe $l$ dans $[a,b]$;
405 \item pour tout $x_0$ de $[a,b]$, la suite $x_n$ converge vers $l$, unique solution dans
411 \subsection{Vitesse de convergence}
412 \begin{Prop}[Vitesse de convergence de la méthode du point fixe]
413 Sous les hypothèses de la proposition précédente, on peut dire qu'en général
414 la convergence de la méthode du point fixe est linéaire.
418 Pour chacune des équations suivantes, étudier la convergence de la suite des
419 itérés du point fixe pour un $x_0$ choisi dans l'intervalle proposé.
421 \item fonction $g_3$ de Ferrari sur $[2;4]$;
422 \item fonction $g_2$ de Ferrari sur $[3;\textrm{3,1}]$.
428 On verra dans cet exercice que les conditions de la
429 proposition~\ref{th:csconv:pf} sont suffisantes, pas nécessaires.
431 \item Quels sont les points fixes de $g(x)=x - x^3$ sur $[-1;1]$?
432 \item La fonction $g$ vérifie-t-elle les hypothèses de la proposition~\ref{th:csconv:pf}?
433 \item Montrer que pour tout $x_0 \in [-1;1]$, la suite des itérés converge.
434 On pourra se restreindre à étudier $x_0$ sur $[0;1]$ comme
435 la fonction est paire.
436 \item Mêmes questions avec $g(x)=x + x^3$.