1 function [n,X]=iteration_regula_falsi(xm1,x0,nmax,epsilon,fcn)
\r
4 % iteration_regula_falsi : calcul d'une racine par regula falsi
\r
6 % *********************************************************
\r
8 % [n,X]=iteration_regula_falsi(x0,xm1,nmax,epsilon,fcn) renvoie
\r
9 % les itérés de la méthode de la la fausse position
\r
11 % variables d'entrées :
\r
12 % * nmax : nombre maximal d'itérations
\r
13 % * xm1 et x0 : les deux premiers termes (x_{-1} et x_0)
\r
14 % * epsilon : précision souhaitée
\r
15 % * fcn est une chaîne de caractère représentant la fonction
\r
16 % (de type inline, builtin ou par fichier M-file);
\r
18 % variables de sortie :
\r
19 % * n est l'indice correspondant à x_n avec f(x_n)=0 ou |x_n-x_{n-1}|<epsilon
\r
21 % * X est une vecteur qui contient les valeurs de x_0 à x_n
\r
25 % ************ Fonctions auxiliaires utilisées ************
\r
29 % *********************************************************
\r
34 % Contrôles d'entrée
\r
36 if (feval(fcn,x0)*feval(fcn,xm1)>0)
\r
37 error('il faut f(x0)f(x_(-1))<0');
\r
39 if (qs~=2) & (qs~=5) & (qs~=1)
\r
40 error('fcn doit être le nom d''une fonction (built-in, M-file ou inline)');
\r
43 % corps d'algorithme
\r
46 test=(feval(fcn,x0)~=0);
\r
54 xnp1=x-((x-xp)/(fx-fxp))*fx;
\r
55 fxnp1=feval(fcn,xnp1);
\r
56 test=~((fxnp1==0)|(n>=nmax)|(abs(x-xmm1)<=epsilon));
\r
62 if (feval(fcn,xmm1)*fx<0)
\r
71 disp('attention, n>nmax');
\r