Documente Academic
Documente Profesional
Documente Cultură
ET DE LA RECHERCHE SCIENTIFIQUE
TP N:01
Mthode de Dichotomie
Groupe : 01
Ben Kihoul Hicham
2
TPN:01
INTRODUCTION:
L'tude gnrale des fonctions variables relles ncessite de temps autre la
rsolution d'quations de type f(x) = 0. Autrement dit, nous sommes amens
trouver les zros de fonctions non linaires, c'est--dire les valeurs relles telles
que :
OBJECTIFS :
*comprendre la mthode de Dichotomie
Cest lune des mthodes dveloppes pour rsoudre lquation non linaire f(x)=0
THEOREME :
f(x) est une fonction non linaire et continue sur un intervallea, b a au moin une
racine entre a et b si :f(a)*f(b)<0
2
PRINCIPE : - on prend X0= a+b
Si n >pcontinue
3
TPN:01
4
TPN:01
10
6
f(x)
-2
1 2 3 4 5 6 7 8 9 10
x
5
TPN:01
else
disp('"on ne peut pas faire de
dichotomie dans cet intervalle !!')
end
50
40
30
20
f(x)
10
-10
-20
-30
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
6
TPN:01
Programme et Figure Affichage
else
disp('"on ne peut pas faire de
dichotomie dans cet intervalle !!')
end
-2
f(x)
-4
-6
-8
-10
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
7
TPN:01
Programme et Figure Affichage
else
disp('"on ne peut pas faire de
dichotomie dans cet intervalle !!')
end
0.5
f(x)
-0.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
8
TPN:01
Programme et Figure Affichage
-0.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
9
TPN:01
10
TPN:01
Programme et Figure Affichage
-4
f(x0)=-1.875011
la solution finale est x0=0.500001
-6
-8
-10
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
11
TPN:01
Programme et Figure Affichage
10
f(x0)=45.999943
0
la solution finale est x0=0.000001
-10
-20
-30
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
12
TPN:01
Programme et Figure Affichage
4
f(x0)=5.006164
iter=21 la solution est x0=5.500004
2 f(x0)=5.006161
iter=22 la solution est x0=5.500002
0 f(x0)=5.006160
iter=23 la solution est x0=5.500001
-2 f(x0)=5.006159
1 2 3 4 5 6 7 8 9 10
x iter=24 la solution est x0=5.500001
f(x0)=5.006159
la solution finale est x0=5.500001
13
TPN:01
14
TPN:01
Programme et Figure Affichage
4
f(x0)=5.006164
iter=21 la solution est x0=5.500004
2 f(x0)=5.006161
iter=22 la solution est x0=5.500002
0 f(x0)=5.006160
iter=23 la solution est x0=5.500001
-2 f(x0)=5.006159
1 2 3 4 5 6 7 8 9 10
x iter=24 la solution est x0=5.500001
f(x0)=5.006159
iter=25 la solution est x0=5.500000
f(x0)=5.006159
iter=26 la solution est x0=5.500000
f(x0)=5.006158
iter=27 la solution est x0=5.500000
f(x0)=5.006158
15
TPN:01
iter=28 la solution est x0=5.500000
f(x0)=5.006158
iter=29 la solution est x0=5.500000
f(x0)=5.006158
iter=30 la solution est x0=5.500000
f(x0)=5.006158
iter=31 la solution est x0=5.500000
f(x0)=5.006158
iter=32 la solution est x0=5.500000
f(x0)=5.006158
iter=33 la solution est x0=5.500000
f(x0)=5.006158
iter=34 la solution est x0=5.500000
f(x0)=5.006158
la solution finale est x0=5.500000
16
TPN:01
10
0
f(x0)=45.999971
iter=22 la solution est x0=0.000000
-10 f(x0)=45.999986
iter=23 la solution est x0=0.000000
-20
f(x0)=45.999993
-30 iter=24 la solution est x0=0.000000
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x f(x0)=45.999996
iter=25 la solution est x0=0.000000
f(x0)=45.999998
iter=26 la solution est x0=0.000000
17
TPN:01
f(x0)=45.999999
iter=27 la solution est x0=0.000000
f(x0)=46.000000
iter=28 la solution est x0=0.000000
f(x0)=46.000000
iter=29 la solution est x0=0.000000
f(x0)=46.000000
iter=30 la solution est x0=0.000000
f(x0)=46.000000
la solution finale est x0=0.000000
18
TPN:01
-4
iter=21 la solution est x0=0.500000
f(x0)=-1.875005
-6
iter=22 la solution est x0=0.500000
f(x0)=-1.875003
-8 iter=23 la solution est x0=0.500000
f(x0)=-1.875001
-10
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 iter=24 la solution est x0=0.500000
x f(x0)=-1.875001
iter=25 la solution est x0=0.500000
f(x0)=-1.875000
iter=26 la solution est x0=0.500000
19
TPN:01
f(x0)=-1.875000
iter=27 la solution est x0=0.500000
f(x0)=-1.875000
iter=28 la solution est x0=0.500000
f(x0)=-1.875000
iter=29 la solution est x0=0.500000
f(x0)=-1.875000
iter=30 la solution est x0=0.500000
f(x0)=-1.875000
la solution finale est x0=0.500000
20
TPN:01
Programme et Figure Affichage
21
TPN:01
iter=28 la solution est x0=0.000000
f(x0)=1.000000
iter=29 la solution est x0=0.000000
f(x0)=1.000000
iter=30 la solution est x0=0.000000
f(x0)=1.000000
la solution finale est x0=0.000000
22
TPN:01
Programme et Figure Affichage
f(x0)=1.000000
iter=22 la solution est x0=0.000000
0
f(x0)=1.000000
iter=23 la solution est x0=0.000000
f(x0)=1.000000
iter=24 la solution est x0=0.000000
-0.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 f(x0)=1.000000
x iter=25 la solution est x0=0.000000
f(x0)=1.000000
iter=26 la solution est x0=0.000000
f(x0)=1.000000
iter=27 la solution est x0=0.000000
f(x0)=1.000000
23
TPN:01
iter=28 la solution est x0=0.000000
f(x0)=1.000000
iter=29 la solution est x0=0.000000
f(x0)=1.000000
iter=30 la solution est x0=0.000000
f(x0)=1.000000
iter=31 la solution est x0=0.000000
f(x0)=1.000000
iter=32 la solution est x0=0.000000
f(x0)=1.000000
iter=33 la solution est x0=0.000000
f(x0)=1.000000
iter=34 la solution est x0=0.000000
f(x0)=1.000000
iter=35 la solution est x0=0.000000
f(x0)=1.000000
iter=36 la solution est x0=0.000000
f(x0)=1.000000
iter=37 la solution est x0=0.000000
f(x0)=1.000000
iter=38 la solution est x0=0.000000
f(x0)=1.000000
iter=39 la solution est x0=0.000000
f(x0)=1.000000
iter=40 la solution est x0=0.000000
f(x0)=1.000000
la solution finale est x0=0.000000
24
TPN:01
x=[0:0.1:1]; iter=1 la solution est x0=0.500000 f(x0)=-
f=inline('x.^3-12*x.^2+1'); 1.875000
plot(x,f(x)); iter=2 la solution est x0=0.750000 f(x0)=-
grid; 5.328125
xlabel('x'); iter=3 la solution est x0=0.625000 f(x0)=-
ylabel('f(x)'); 3.443359
a=0; iter=4 la solution est x0=0.562500 f(x0)=-
b=1; 2.618896
iter=0; iter=5 la solution est x0=0.531250 f(x0)=-
eps=0.000000000001; 2.236786
if((f(a)*f(b))<0) iter=6 la solution est x0=0.515625 f(x0)=-
while ((abs(b-a))>eps) 2.053341
x0=(a+b)/2; iter=7 la solution est x0=0.507813 f(x0)=-
iter=iter+1; 1.963531
if(f(a)*f(x0)<0) iter=8 la solution est x0=0.503906 f(x0)=-
a=x0; 1.919105
a=a; iter=9 la solution est x0=0.501953 f(x0)=-
else 1.897013
b=x0; iter=10 la solution est x0=0.500977
b=b; f(x0)=-1.885996
end iter=11 la solution est x0=0.500488
fprintf('iter=%d\t la solution est x0= f(x0)=-1.880496
%f\t f(x0)=%f\n',iter,x0,f(x0)) iter=12 la solution est x0=0.500244
end f(x0)=-1.877747
fprintf('la solution finale est x0= iter=13 la solution est x0=0.500122
%f\n',x0) f(x0)=-1.876373
iter=14 la solution est x0=0.500061
f(x0)=-1.875687
else
iter=15 la solution est x0=0.500031
disp('"on ne peut pas faire de
f(x0)=-1.875343
dichotomie dans cet intervalle !!')
iter=16 la solution est x0=0.500015
end
f(x0)=-1.875172
iter=17 la solution est x0=0.500008
f(x0)=-1.875086
2
iter=18 la solution est x0=0.500004
f(x0)=-1.875043
0
iter=19 la solution est x0=0.500002
f(x0)=-1.875021
-2
iter=20 la solution est x0=0.500001
f(x0)=-1.875011
f(x)
25
TPN:01
iter=29 la solution est x0=0.500000
f(x0)=-1.875000
iter=30 la solution est x0=0.500000
f(x0)=-1.875000
iter=31 la solution est x0=0.500000
f(x0)=-1.875000
iter=32 la solution est x0=0.500000
f(x0)=-1.875000
iter=33 la solution est x0=0.500000
f(x0)=-1.875000
iter=34 la solution est x0=0.500000
f(x0)=-1.875000
iter=35 la solution est x0=0.500000
f(x0)=-1.875000
iter=36 la solution est x0=0.500000
f(x0)=-1.875000
iter=37 la solution est x0=0.500000
f(x0)=-1.875000
iter=38 la solution est x0=0.500000
f(x0)=-1.875000
iter=39 la solution est x0=0.500000
f(x0)=-1.875000
iter=40 la solution est x0=0.500000
f(x0)=-1.875000
la solution finale est x0=0.500000
26
TPN:01
Programme et Figure Affichage
I
x=[0:0.1:1]; ter=1 la solution est x0=0.500000
f=inline('x.^3-12*x.^2-60*x+46'); f(x0)=13.125000
plot(x,f(x)); iter=2 la solution est x0=0.250000
grid; f(x0)=30.265625
xlabel('x'); iter=3 la solution est x0=0.125000
ylabel('f(x)'); f(x0)=38.314453
a=0; iter=4 la solution est x0=0.062500
b=1; f(x0)=42.203369
iter=0; iter=5 la solution est x0=0.031250
eps=0.000000000001; f(x0)=44.113312
if((f(a)*f(b))<0) iter=6 la solution est x0=0.015625
while ((abs(b-a))>eps) f(x0)=45.059574
x0=(a+b)/2; iter=7 la solution est x0=0.007813
iter=iter+1; f(x0)=45.530518
if(f(a)*f(x0)<0) iter=8 la solution est x0=0.003906
a=x0; f(x0)=45.765442
a=a; iter=9 la solution est x0=0.001953
else f(x0)=45.882767
b=x0; iter=10 la solution est x0=0.000977
b=b; f(x0)=45.941395
end iter=11 la solution est x0=0.000488
fprintf('iter=%d\t la solution est x0= f(x0)=45.970700
%f\t f(x0)=%f\n',iter,x0,f(x0)) iter=12 la solution est x0=0.000244
end f(x0)=45.985351
fprintf('la solution finale est x0= iter=13 la solution est x0=0.000122
%f\n',x0) f(x0)=45.992676
iter=14 la solution est x0=0.000061
f(x0)=45.996338
else
iter=15 la solution est x0=0.000031
disp('"on ne peut pas faire de
f(x0)=45.998169
dichotomie dans cet intervalle !!')
iter=16 la solution est x0=0.000015
end
f(x0)=45.999084
iter=17 la solution est x0=0.000008
f(x0)=45.999542
50
iter=18 la solution est x0=0.000004
40
f(x0)=45.999771
iter=19 la solution est x0=0.000002
30 f(x0)=45.999886
iter=20 la solution est x0=0.000001
20
f(x0)=45.999943
iter=21 la solution est x0=0.000000
f(x)
10
f(x0)=45.999971
0 iter=22 la solution est x0=0.000000
f(x0)=45.999986
-10
iter=23 la solution est x0=0.000000
-20 f(x0)=45.999993
iter=24 la solution est x0=0.000000
-30
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 f(x0)=45.999996
x iter=25 la solution est x0=0.000000
f(x0)=45.999998
iter=26 la solution est x0=0.000000
f(x0)=45.999999
iter=27 la solution est x0=0.000000
f(x0)=46.000000
27
TPN:01
iter=28 la solution est x0=0.000000
f(x0)=46.000000
iter=29 la solution est x0=0.000000
f(x0)=46.000000
iter=30 la solution est x0=0.000000
f(x0)=46.000000
iter=31 la solution est x0=0.000000
f(x0)=46.000000
iter=32 la solution est x0=0.000000
f(x0)=46.000000
iter=33 la solution est x0=0.000000
f(x0)=46.000000
iter=34 la solution est x0=0.000000
f(x0)=46.000000
iter=35 la solution est x0=0.000000
f(x0)=46.000000
iter=36 la solution est x0=0.000000
f(x0)=46.000000
iter=37 la solution est x0=0.000000
f(x0)=46.000000
iter=38 la solution est x0=0.000000
f(x0)=46.000000
iter=39 la solution est x0=0.000000
f(x0)=46.000000
iter=40 la solution est x0=0.000000
f(x0)=46.000000
la solution finale est x0=0.000000
28
TPN:01
Programme et Figure Affichage
-1.15
f(x0)=45.999943
-1.2
iter=21 la solution est x0=0.000000
f(x0)=45.999971
-1.25 iter=22 la solution est x0=0.000000
-1.3
f(x0)=45.999986
iter=23 la solution est x0=0.000000
-1.35
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
f(x0)=45.999993
x iter=24 la solution est x0=0.000000
f(x0)=45.999996
iter=25 la solution est x0=0.000000
f(x0)=45.999998
iter=26 la solution est x0=0.000000
f(x0)=45.999999
iter=27 la solution est x0=0.000000
f(x0)=46.000000
29
TPN:01
iter=28 la solution est x0=0.000000
f(x0)=46.000000
iter=29 la solution est x0=0.000000
f(x0)=46.000000
iter=30 la solution est x0=0.000000
f(x0)=46.000000
iter=31 la solution est x0=0.000000
f(x0)=46.000000
iter=32 la solution est x0=0.000000
f(x0)=46.000000
iter=33 la solution est x0=0.000000
f(x0)=46.000000
iter=34 la solution est x0=0.000000
f(x0)=46.000000
iter=35 la solution est x0=0.000000
f(x0)=46.000000
iter=36 la solution est x0=0.000000
f(x0)=46.000000
iter=37 la solution est x0=0.000000
f(x0)=46.000000
iter=38 la solution est x0=0.000000
f(x0)=46.000000
iter=39 la solution est x0=0.000000
f(x0)=46.000000
iter=40 la solution est x0=0.000000
f(x0)=46.000000
la solution finale est x0=0.000000
"on ne peut pas faire de dichotomie dans cet
intervalle !!
CONCLUSION :
Un gros avantage de la mthode de dichotomie est quelle
permet de connaitre le nombre ditrations ncessaires en
fonction de la prcision voulue. Elle est de plus trs simple
30
TPN:01
programmer. Son inconvnient majeur rside dans lhypothse de
dpart () () < 0 qui laisse de cot toutes les fonctions
qui sannulent sans changer de signe
31
TPN:01
32