Files
2026-04-07 15:15:25 +02:00
..
2026-04-07 14:29:59 +02:00
tp2
2026-04-07 13:28:01 +02:00
2026-04-07 15:15:25 +02:00

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 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 :

  1. Récupérez le fichier 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.

  1. Tracez l'évolution de l'erreur :
erreur = pointFixeErreur(0.1)
plot2d(erreur)
  1. Récupérez le fichier 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 if while for

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
    
  3. Tester avec

  x-\sin x - \frac{1}{4} = 0, \;\;x\in[\frac{1}{4},\frac{5}{4}]