diff --git a/num/tp1/README.md b/num/tp1/README.md index d4769c4..b37a56a 100644 --- a/num/tp1/README.md +++ b/num/tp1/README.md @@ -1,4 +1,4 @@ -# Fonctions et dérivées numériques +# TP1 : Fonctions et dérivées numériques > Lisez et testez les exemples du [guide pour débutant](../../scilab/Scilab_debutant_annot.pdf) de scilab diff --git a/num/tp2/README.md b/num/tp2/README.md new file mode 100644 index 0000000..78739ce --- /dev/null +++ b/num/tp2/README.md @@ -0,0 +1,142 @@ +# 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$. + +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. + +
+
+