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

Private GIT Repository
j
[cours-mesi.git] / equations.tex
1 \section{Motivation}
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. 
8 C’est Cardan qui donna
9 en 1545 les formules de résolution de certaines équations cubiques de 
10 la forme 
11
12 x^3 + px+q = 0
13 $ avec $p$ et $q$ non nuls. Calculons le discriminant 
14 $\Delta = \frac{4}{27}p^3+ q^2$ et discutons de son signe:
15 \begin{itemize}
16 \item si $\Delta$ est nul, l'équation possède
17   deux solutions réelles, une simple et une double :
18 $
19 \begin{cases}
20   x_0=2\sqrt[3]{\frac{-q}2}=\frac{3q}p
21   \\
22   x_1=x_2=-\sqrt[3]{\frac{-q}2}=\frac{-3q}{2p}
23 \end{cases}
24 $
25
26
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:
32 $
33 \begin{cases}
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}
37 $
38
39 \item sinon,  l'équation a trois solutions réelles:
40 $
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\}.
42 $
43
44 \end{itemize}
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.
53
54
55
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.
64
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:
68 \begin{itemize}
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$.
73 \end{itemize}
74
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})$: 
78 \begin{itemize}
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. 
85 \end{itemize}
86
87 A chaque itération, l'intervalle $[a_n,b_n]$ est découpé 
88 en deux. On a donc 
89 $$
90 \begin{array}{c}
91 |
92 a_{n+1} -
93 b_{n+1} 
94 |
95 \leq 
96 \frac{1}{2}
97 |
98 a_{n} -
99 b_{n} 
100 |, 
101 \,
102 a \le a_n \le x_n \le b_n \le b,
103 \,
104 a_{n+1} \geq a_n
105 \textrm{ et }
106  b_{n+1} \leq b_n
107 \end{array}
108 $$ 
109
110 On obtient alors par récurrence que 
111 \begin{equation}\label{eq:met:maj}
112 |
113 a_{n} -
114 b_{n} 
115 |
116 \leq 
117 \frac{1}{2^n}
118 |
119 a -
120 b
121
122 \end{equation}
123
124 La suite $(a_n)$ est croissante, majorée. Elle converge vers une limite 
125 $\alpha$ quand $n$ tend vers l'infini. 
126 De même, 
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  
131 vers $\alpha$.
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 
136 des racines.  
137
138 Essayons maintenant de déterminer une majoration de l'erreur commise à 
139 chaque itération. 
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 
144 $$ 
145 | x_n - \alpha |
146 \leq 
147 | a_n - b_n |
148 \leq 
149 \frac{1}{2^n}
150 |
151 a -
152 b
153 |. 
154 $$
155
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 
159 \end{equation}
160
161 Si $n \geq n_0$, alors 
162 $
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}.
166 $
167 Ainsi $\frac{1}{2^n}(b-a) \leq {\epsilon}$ et donc
168
169 | x_n - \alpha |
170 \leq 
171 {\epsilon}.
172 $
173
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$. 
176
177
178
179 \begin{figure}
180 \centering{
181 \begin{minipage}{0.5\textwidth}
182 \vspace{7em}
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)
188 \vspace{5em}
189 \end{minipage}
190 }
191 \caption{Représentation graphique de méthodes itératives de construction de racine}\label{fig:graphe1} 
192 \end{figure}
193
194 \begin{Exo}
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 
199 \begin{equation}
200 0 = f(\alpha)= f(x) + (\alpha-x)f'(\zeta), \textrm{ où } \zeta \in [\alpha,x]
201 \end{equation}
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 
204 \begin{equation}
205 0 = f(x_n) + (x_{n+1}-x_{n})q_n \label{eq:num:class}
206 \end{equation}
207 où $q_n$ est une approximation de $f'(x_n)$.
208
209 Dans cet exercice, on suppose en plus que:
210 \begin{itemize}
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.
215 \end{itemize}
216
217 \begin{enumerate}
218 \item Méthode globale
219 \begin{enumerate}
220 \item Montrer que l'on a $x_{n+1} \neq x_{n}$.
221 \item Montrer que (\ref{eq:num:class}) est équivalente à 
222 $
223 x_{n+1} = x_{n} - \frac{f(x_n)}{q_n} \label{eq:num:gen}
224 $
225 \item Dans la représentation graphique donnée figure~\ref{fig:graphe1}:
226   \begin{enumerate}
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.
231   \end{enumerate}
232 \end{enumerate}
233
234 \item Dans la méthode de la corde, $q_n$ est constante et égale à 
235 %\begin{equation}
236 $q_{n} = \frac{f(b) - f(a)}{b - a} \label{eq:num:corde}
237 $%\end{equation}
238
239 \item Dans la méthode de Lagrange on a 
240 %\begin{equation}
241 $q_{n} = \frac{f(x_{n}) - f(x_{n-1})}{x_n - x_{n-1}} \label{eq:num:lagrange}
242 $%\end{equation}
243
244 \item Dans la méthode de Newton on a $q_n = f'(x_n)$
245 \end{enumerate}
246 \end{Exo}
247
248
249
250 \section{Convergence des méthodes de Lagrange et Newton}
251
252
253 \begin{Prop}
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:
257 \begin{enumerate}
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 $,
263 \end{enumerate}
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.
266 \end{Prop}
267
268
269
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
274    $
275    \lim\limits_{n \to \infty} \dfrac{|e_{n+1}|}{|e_n|^p} = c
276    $, 
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.
279  \end{Def}
280
281
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.
289 \end{Prop}
290
291
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 
298 $h(u)=g(u)-u=0$. 
299 Cependant, on peut les étudier pour les algorithmes spécifiques 
300 qui les résolvent. 
301
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 
306 \begin{itemize}
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}}$.
310 \end{itemize}
311
312
313
314 \begin{TP}[Comparaison d'approches]
315
316 \begin{enumerate}
317 \item Écrire la fonction 
318 \verb+[n,X] = iteration_dichotomie(a,b,m,epsilon,f)+ où
319 \begin{itemize}
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+}$.
329 \end{itemize}
330 \item Écrire la fonction 
331 \verb+[n,X] = iteration_corde(a,b,+$\verb+x+_{\verb+0+}$\verb+,m,epsilon,f)+ où
332 \begin{itemize}
333 \item $\verb+x+_{\verb+0+}$ est le premier terme de la suite;
334 \end{itemize}
335 \item Écrire la fonction 
336 \verb+[n,X] = iteration_Newton(+$\verb+x+_{\verb+0+}$\verb+,m,epsilon,f)+.
337 \end{enumerate}
338 \end{TP}
339
340
341 \begin{TP}
342 L'objectif du TP est de mesurer l'ordre de grandeur de la convergence d'une 
343 méthode.
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.
352
353 \begin{enumerate}
354 \item Construire la méthode 
355 \verb+p=ordre_convergence(X,l)+ telle que 
356 \begin{itemize}
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.
362 \end{itemize}
363
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+.
369 \end{enumerate}
370 \end{TP}
371
372
373
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$, 
377 $x_{n+1} = g(x_n)$.
378
379 \begin{algorithm}[H]
380  \LinesNumbered 
381  \SetAlgoLined
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}
384  $n = 0$ \; 
385  initialisation du booléen d'\textit{arrêt}\; 
386  \While{non(arrêt)}{
387    $x_{n+1} = g(x_n)$ \;
388    $n = n+1$ \;}
389  \caption{Algorithme du point fixe}\label{algo:pf}
390 \end{algorithm}
391
392 \subsection{Conditions suffisantes de convergence}
393
394
395 \begin{Prop}\label{th:csconv:pf}
396 Supposons qu'il existe un intervalle $[a,b]$ de $\R$ sur lequel $g$ vérifie:
397 \begin{enumerate}
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$;
401 \end{enumerate}
402 alors:
403 \begin{enumerate}
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 
406 $[a,b]$.
407 \end{enumerate}
408 \end{Prop}
409
410
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.
415 \end{Prop}
416
417 \begin{Exo}
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é.
420 \begin{enumerate}
421 \item fonction $g_3$ de Ferrari sur $[2;4]$;
422 \item fonction $g_2$ de Ferrari sur $[3;\textrm{3,1}]$.
423 \end{enumerate}
424 \end{Exo}
425
426
427 \begin{Exo}
428 On verra dans cet exercice que les conditions de la 
429 proposition~\ref{th:csconv:pf}  sont suffisantes, pas nécessaires.
430 \begin{enumerate}
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$.
437 \end{enumerate}
438 \end{Exo}
439
440
441