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

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) :
descartes.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 % nombre max d'iterations imax=100; % epsi precision recherchee epsi=1/100; % compteur de boucle I=0; % intervalle [a,b] a=-5; b=7; % 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 Descartes % qui consiste à remplacer le zéro de la courbe % par le zéro de la corde (a,b) while (I<imax) d=( (fun(b)-fun(a)) / (b-a) ); e = fun(a) - (d*a); % equation de droite y = dz +e z = -(e/d); % 0 = dz + e if (fun(a)*fun(z) <= 0) a=z; else b=z; end if( abs(fun(z)) <= epsi ) 'ok' break; elseif (I==imax-1) 'pas ok' break; end I = I + 1; end 'nb d iterations' I+1 'resultat' z
Fichier attaché | Taille |
---|---|
![]() | 59 octets |
![]() | 1.17 Ko |