12 Leçon n°65 •Exemples d’algorithmes
Principe
— On pose a0=aet b0=b.
— Soit m0le milieu de [a, b]:
— Si f(m0)>0alors on pose a1=a0et b1=m0
— Sinon on pose a1=m0et b1=b0.
— Ainsi de suite, si on veut construire le keterme de la suite, on pose mk−1le milieu de
[ak−1, bk−1]:
— Si f(mk−1)>0alors ak=ak−1et bk=mk−1
— Sinon on pose ak=mk−1et bk=bk−1.
L’algorithme sur Xcas
dicho(F,p,a,b):={
local aa,bb,k,f;
aa:=a;
bb:=b;
epsilon:=1e-100;
f:=unapply(F,x);
k:=0;
tantque evalf(bb-aa,p)>10^(-p) faire
si sign(evalf(f((bb+aa)/2),p))==sign(evalf(f(bb),p))
alors bb:=evalf((aa+bb)/2,p);
sinon aa:=evalf((aa+bb)/2,p);
k:=k+1;
fsi;
ftantque;
retourne evalf((bb+aa)/2,p)+" est la solution trouvée apres " +k+ " itérations";
}:;
dicho(x^4-x^2+x-4,5,0,5)
1.47198 est la solution trouvée apres 11 itérations
et sa version récursive :
dicho_rec(f,a,b,eps,compteur):={
si evalf(b-a)<eps alors 0.5*(b+a),compteur+1
sinon si f(a)*f(0.5*(b+a))>0
alors dicho_rec(f,0.5*(b+a),b,eps,compteur+1)
sinon dicho_rec(f,a,0.5*(b+a),eps,compteur+1)
fsi
fsi
}:;
dicho_rec(x->x^4-x^2+x-4,0,5,10^(-6),0)
(1.47198408842,24)
Le théorème des valeurs intermédiaires
Théorème 65.6 — Théorème des valeurs intermédiaires. Soient Iun intervalle, aet bdans Itels que
a<b. Soit fune application continue sur l’intervalle I. Soit λ, un réel compris entre f(a)et f(b).
Alors il existe (au moins) un réel cdans [a , b]tel que f(c) = λ.