# TP1 Calcul approché, résolution d'équation $f(x)=0$ On s'interesse à la résolution numérique d'une équation $f(x)=0$, où de manière équivalente à $g(x)=x$ avec $g(x)=f(x)+x$. ## Méthode du point fixe On cherche à résoudre l'équation $$ x - \cos x = 0, \,\, x\in [0,1] $$ Sous certaines hypothèses (cf TD), la suite définie par $$ \left\{\begin{array}{l} x_0\in I \\ x_{n+1} = g(x_n) \end{array}\right. $$ converge vers un point fixe de $g$. Ici, $g(x) = \cos x\,\, , \,x\in [0,1]$. 1. Récupérez le fichier [pointFixe.sci](src/pointFixe.sci) définissant la fonction ``` function y = pointFixe(x0,n) y = x0; for i = 1:n y = ... end endfunction ``` Cette fonction prend en entrée `x0` une valeur initiale de la suite et `n` le nombre d'itérations. La fonction doit retourner `y` valant $x_n$. Complétez le fichier, chargez la fonction, et vérifiez pour différentes valeurs initiales de $[0,1]$ que la suite converge vers le même $l = \cos l$. Que vaut $l$ ? Normalement, $l \approx 0.739085133215161$. Pour les plus couraguex, tracer un graphique qui illustre la convergence de la suite précédente :
2. Récupérez le fichier [pointFixeErreur.sci](src/pointFixeErreur.sci) définissant la fonction ``` function err = pointFixeErreur(x0) for i=1:50 y = pointFixe(x0,i) err(i) = ... end endfunction ``` Cette fonction prend en entrée `x0` une valeur initiale de la suite. Complétez la fonction pour que `err(i)` vale $|e_i|$ l'erreur commise à l'étape $i$, en valeur absolue. 3. Tracez l'évolution de l'erreur : ``` erreur = pointFixeErreur(0.1) plot2d(erreur) ``` 3. Récupérez le fichier [pointFixeVitesseConvergence.sci](src/pointFixeVitesseConvergence.sci) qui définit la fonction ``` function ratio = pointFixeVitesseConvergence(x0) err = pointFixeErreur(x0); ratio = // TODO endfunction ``` Cette fonction prend en entrée `x0` une valeur initiale de la suite. Complétez le fichier pour que `ratio(i)` vale $\frac{|e_{i+1}|}{|e_i|}$. Chargez la fonction, et tracez le résultat. Vérifie-t'on que la méthode est d'ordre 1 ? ## Dichotomie ### Principe de la méthode On se donne une fonction continue $f$ sur l'intervalle $[a,b]$ sur lequel $f$ ne s'annule qu'une fois en changeant de signe. Pour trouver la solution, on divise l'intervalle $[a,b]$ en deux avec son milieu $$ m=\frac{a+b}{2} $$ Si $f(a)$ et $f(m)$ sont de même signe, la solution cherchée se trouve dans $[m,b]$, sinon elle se trouve dans $[a,m]$. On itére alors la recherche dans le nouvel intervalle jusqu'à ce que sa longueur soit inférieur à une précision $\epsilon$ voulue.
1. Écrire une fonction ``` function x = dichotomie(f,a,b,eps) // f <-> fonction // a,b <-> [a,b] intervalle de départ // eps <-> valeur pour le test d'arret // x <-> valeur approché de f(x)=0 ``` 2. Tester avec - la fonction de l'exercice précédent, - $f(x)=x^2-2$ sur l'intervalle $[1,2]$. Comparer numériquement la solution approchée avec la solution exacte, en faisant varier $\epsilon$. - $g(x)=cos(x)-x^2$ sur l'intervalle $[0,1]$ 3. Modifier la fonction pour qu'elle renvoié le nombre d'itérations nécessaires. Tester avec $$ x-\sin x - \frac{1}{4} = 0, \;\;x\in[\frac{1}{4},\frac{5}{4}] $$ Aide Scilab [function](https://help.scilab.org/docs/6.1.1/fr_FR/functions.html) [if](https://help.scilab.org/docs/6.1.1/fr_FR/if.html) [while](https://help.scilab.org/docs/6.1.1/fr_FR/while.html) [for](https://help.scilab.org/docs/6.1.1/fr_FR/for.html) ## Méthode de la fausse position ### Principe de la méthode On prend les même hypothèses que pour la dichotomie. La méthode consiste alors à diminuer l'intervalle de recherche en considérant le point $c$ intersection de la corde aux extrémités de l'intervalle avec l'axe des abscisses.
1. Calculer $c$ en fonction de $f(a),f(b),a,b$ 2. Écrire une fonction ``` --> function [x,n]=fausse_position(f,a,b,eps) // f <-> fonction // a,b <-> [a,b] intervalle de départ // eps <-> valeur pour le test d'arret // x <-> valeur approché de f(x)=0 // n <-> nombre d'itérations ``` 4. Tester avec $$ x-\sin x - \frac{1}{4} = 0, \;\;x\in[\frac{1}{4},\frac{5}{4}] $$