Calcul d'un zero d'une droite par une méthode dichotomique

La fonction dont on veut calculer le zéro :
fun.m
% Put your fun stuff here :) function y=fun(x) y= x^2 -10;
Le script qui calcule numériquement ce zéro (s'il existe) :
dichotomie.m
% auteurs : Erwan Le Guennec & Paul Hillereau % version 1.0 % fevrier 2008 % script qui permet de résoudre numériquement une équation du type % f(x)=0 sur un intervalle [a,b] % Attention on suppose que f ne s'annule qu'une seule fois % sur [a,b] % on se fixe une précision epsi pour calculer le zero % Attention pour éviter de lancer une boucle infinie % on fixe arbitrairement le nombre max d'itérations % nb d it max imax = 100; % epsi precision recherchee epsi = 1/100; % compteur de boucle I=0; %Intervalle [a,b] a=-5; b=7; % sert a stocker les resultats numeriques c=0; % fun() est une fonction du type f(x) % c'est celle dont on cherche le zéro % Principe : on divise [a,b] en deux % on regarde de quel côté est le zéro % (on teste si le signe change ou pas) % On se place sur le nouvel intervalle % et on recommence. while (I < imax) c=(a+b)/2 % c milieu de [a,b] if (fun(a)*fun(c) <= 0) % si il y a un changement de signe b=c; % le zéro est compris entre a et c else a=c; % le zéro est compris entre c et b end if (abs(fun(c))<= epsi) sprintf 'ok' break; elseif (I == imax-1) sprintf 'pas ok' break; end I = I +1; end 'nombre d iterations' I+1 'resultat' c
Fichier attaché | Taille |
---|---|
![]() | 59 octets |
![]() | 1.23 Ko |