# TP2 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 :
<div align="center">
<img src="./img/cos.png">
</div>


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.

<div align="center">
<img src="./img/Dichotomie.png">
</div>

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.

<div align="center">
<img src="./img/Regula_falsi_method.png">
</div>

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}]
 $$




