Calcul d'un zero d'une droite par la méthode de Newton

Portrait de furet

La fonction dont on veut calculer le zéro :
fun.m

% Put your fun stuff here :)
function y=fun(x)
y= x^2 -10;

La fonction qui permet de calculer les dérivées :
deriv.m

% calcul la dérivée de fun() en un point donné
% (à 10^-5 près)
function y=deriv(x)
y= (fun(x+10^(-5))-fun(x))/(10^(-5));

Le script qui permet de calculer le zéro :
newton.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
% On utilise pour ça la dérivée première en a
% 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
 
% nombre max d'iterations
imax=100;
% epsi precision recherchee
epsi=1/100;
% compteur de boucle
I=0;
 
% pour le calcul de la tangente en a
a=-5;
 
% utilise pour stocker les resultats numeriques
z=0;
e=0;
d=0;
 
% fun() est une fonction du type f(x)
% c'est celle dont on cherche le zéro
% on utilise la méthode de Newton
% qui consiste à remplacer le zéro de la courbe
% par le zéro de la tangente à la courbe en (a,f(a))
 
while (I<imax)
    d=deriv(a);
    e= fun(a) - d*a;	% equation de droite y = dX + e
    z= - (e/d);	% z est l'absice en y = 0
 
    if (abs (fun(z)) <= epsi)
        'ok'
        break;
    else
        a=z;
    end 
 
    I=I+1;
 
end
 
'nombre d iterations'
I+1
'resultat'
z
Fichier attachéTaille
Plain text icon deriv.txt58 octets
Plain text icon fun.txt59 octets
Plain text icon newton.txt1.06 Ko