Beruflich Dokumente
Kultur Dokumente
Dans ce chapitre nous allons appliquer toutes les notions prcdentes sur les suites et les fonctions,
la recherche des zros des fonctions. Plus prcisment, nous allons voir trois mthodes afin de
trouver des approximations des solutions dune quation du type ( f (x) = 0).
1. La dichotomie
1.1. Principe de la dichotomie
Le principe de dichotomie repose sur la version suivante du thorme des valeurs intermdiaires :
Thorme 1
Soit f : [a, b] R une fonction continue sur un segment.
Si f (a) f (b) 0, alors il existe ` [a, b] tel que f (`) = 0.
La condition f (a) f (b) 0 signifie que f (a) et f (b) sont de signes opposs (ou que lun des deux est
nul). Lhypothse de continuit est essentielle !
y
f (b) > 0
f (a) > 0
a
b
x
f (a) < 0
f (b) < 0
Ce thorme affirme quil existe au moins une solution de lquation ( f (x) = 0) dans lintervalle
[a, b]. Pour le rendre effectif, et trouver une solution (approche) de lquation ( f (x) = 0), il sagit
maintenant de lappliquer sur un intervalle suffisamment petit. On va voir que cela permet dobtenir un ` solution de lquation ( f (x) = 0) comme la limite dune suite.
Voici comment construire une suite dintervalles embots, dont la longueur tend vers 0, et contenant chacun une solution de lquation ( f (x) = 0).
On part dune fonction f : [a, b] R continue, avec a < b, et f (a) f (b) 0.
2
Voici la premire tape de la construction : on regarde le signe de la valeur de la fonction f
applique au point milieu a+2 b .
Si f (a) f ( a+2 b ) 0, alors il existe c [a, a+2 b ] tel que f (c) = 0.
Si f (a) f ( a+2 b ) > 0, cela implique que f ( a+2 b ) f (b) 0, et alors il existe c [ a+2 b , b] tel que
f (c) = 0.
y
y
a
b
f ( a+
2 )>0
b
f ( a+
2 )<0
a
a+b
2
a+b
2
b
Nous avons obtenu un intervalle de longueur moiti dans lequel lquation ( f (x) = 0) admet une
solution. On itre alors le procd pour diviser de nouveau lintervalle en deux.
Voici le processus complet :
Au rang 0 :
On pose a 0 = a, b 0 = b. Il existe une solution x0 de lquation ( f (x) = 0) dans lintervalle
[a 0 , b 0 ].
Au rang 1 :
Si f (a 0 ) f ( a0 +2 b0 ) 0, alors on pose a 1 = a 0 et b 1 = a0 +2 b0 ,
sinon on pose a 1 = a0 +2 b0 et b 1 = b.
Dans les deux cas, il existe une solution x1 de lquation ( f (x) = 0) dans lintervalle [a 1 , b 1 ].
...
Au rang n : supposons construit un intervalle [a n , b n ], de longueur b2na , et contenant une
solution xn de lquation ( f (x) = 0). Alors :
Si f (a n ) f ( a n +2 b n ) 0, alors on pose a n+1 = a n et b n+1 = a n +2 b n ,
sinon on pose a n+1 = a n +2 b n et b n+1 = b n .
Dans les deux cas, il existe une solution xn+1 de lquation ( f (x) = 0) dans lintervalle
[a n+1 , b n+1 ].
chaque tape on a
a n xn b n .
On arrte le processus ds que b n a n = b2na est infrieur la prcision souhaite.
Comme (a n ) est par construction une suite croissante, (b n ) une suite dcroissante, et (b n a n ) 0
lorsque n +, les suites (a n ) et (b n ) sont adjacentes et donc elles admettent une mme limite.
Daprs le thorme des gendarmes, cest aussi la limite disons ` de la suite (xn ). La continuit de
f montre que f (`) = limn+ f (xn ) = limn+ 0 = 0. Donc les suites (a n ) et (b n ) tendent toutes les
deux vers `, qui est une solution de lquation ( f (x) = 0).
p
10
p
Nous allons calculer une approximation de 10. Soit la fonction f dfinie par f (x) = x2 10, cest
p
p
une fonction continue sur R qui sannule en 10. De plus 10 est lunique solution positive de
lquation ( f (x) = 0). Nous pouvons restreindre la fonction f lintervalle [3, 4] : en effet 32 = 9 10
p
p
donc 3 10 et 42 = 16 10 donc 4 10. En dautre termes f (3) 0 et f (4) 0, donc lquation
3
( f (x) = 0) admet une solution dans lintervalle [3, 4] daprs le thorme des valeurs intermdiaires,
p
p
et par unicit cest 10, donc 10 [3, 4].
p
p
Notez que lon ne choisit pas pour f la fonction x 7 x 10 car on ne connat pas la valeur de 10.
Cest ce que lon cherche calculer !
y
4
3.5
3.25
3.125
p
10 3, 25.
b0 = 4
b 1 = 3, 5
b 2 = 3, 25
b 3 = 3, 25
b 4 = 3, 1875
b 5 = 3, 1875
b 6 = 3, 171875
b 7 = 3, 164062 . . .
b 8 = 3, 164062 . . .
p
10 3, 165
p
10 = 3, 16 . . .
a0 = 1
a1 = 1
a2 = 1
a3 = 1
a 4 = 1, 00625
a 5 = 1, 00625
a 6 = 1, 00781 . . .
a 7 = 1, 00781 . . .
a 8 = 1, 00781 . . .
b 0 = 1, 10
b 1 = 1, 05
b 2 = 1, 025
b 3 = 1, 0125
b 4 = 1, 0125
b 5 = 1, 00937 . . .
b 6 = 1, 00937 . . .
b 7 = 1, 00859 . . .
b 8 = 1, 00820 . . .
N + log(b a)
log 2
Sachant log 2 = 0, 301 . . ., si par exemple b a 1, voici le nombre ditrations suffisantes pour avoir
une prcision de 10 N (ce qui correspond, peu prs, N chiffres exacts aprs la virgule).
1010 ( 10 dcimales)
10100 ( 100 dcimales)
101000 ( 1000 dcimales)
34 itrations
333 itrations
3322 itrations
1.5. Algorithmes
Voici comment implmenter la dichotomie dans le langage Python. Tout dabord on dfinit une
fonction f (ici par exemple f (x) = x2 10) :
Algorithme . dichotomie.py (1)
def f(x):
return x*x - 10
Puis la dichotomie proprement dite : en entre de la fonction, on a pour variables a, b et n le
nombre dtapes voulues.
Algorithme . dichotomie.py (2)
def dicho(a,b,n):
for i in range(n):
c = (a+b)/2
if f(a)*f(c) <= 0:
b = c
else:
a = c
return a,b
Mme algorithme, mais avec cette fois en entre la prcision souhaite :
Algorithme . dichotomie.py (3)
def dichobis(a,b,prec):
while b-a>prec:
c = (a+b)/2
if f(a)*f(c) <= 0:
b = c
else:
a = c
return a,b
Enfin, voici la version rcursive de lalgorithme de dichotomie.
Algorithme . dichotomie.py (4)
def dichotomie(a,b,prec):
if b-a<=prec:
return a,b
else:
c = (a+b)/2
if f(a)*f(c) <= 0:
return dichotomie(a,c,prec)
else:
return dichotomie(c,b,prec)
Mini-exercices
1. la main, calculer un encadrement 0, 1 prs de
p
p
3
3. Idem avec 2.
2. La mthode de la scante
2.1. Principe de la scante
Lide de la mthode de la scante est trs simple : pour une fonction f continue sur un intervalle
[a, b], et vrifiant f (a) 0, f (b) > 0, on trace le segment [AB] o A = (a, f (a)) et B = (b, f (b)). Si le
segment reste au-dessus du graphe de f alors la fonction sannule sur lintervalle [a0 , b] o (a0 , 0)
est le point dintersection de la droite (AB) avec laxe des abscisses. La droite (AB) sappelle la
scante. On recommence en partant maintenant de lintervalle [a0 , b] pour obtenir une valeur a00 .
y
B
a0 a00
A
A0
00
b
x
Proposition 1
Soit f : [a, b] R une fonction continue, strictement croissante et convexe telle que f (a) 0,
f (b) > 0. Alors la suite dfinie par
a0 = a
a n+1 = a n
et
b an
f (a n )
f (b) f (a n )
(x0 , f (x0 ))
x
x0
(x, f (x))
Dmonstration
1. Justifions dabord la construction de la suite rcurrente.
Lquation de la droite passant par les deux points (a, f (a)) et ( b, f ( b)) est
y = ( x a)
f ( b ) f ( a)
+ f ( a)
ba
Cette droite intersecte laxe des abscisses en (a0 , 0) qui vrifie donc 0 = (a0 a)
a
donc a0 = a f (bb)
f (a) f (a).
f ( b ) f ( a )
ba
+ f (a),
2. Croissance de (a n ).
Montrons par rcurrence que f (a n ) 0. Cest vrai au rang 0 car f (a 0 ) = f (a) 0 par hypothse.
Supposons vraie lhypothse au rang n. Si a n+1 < a n (un cas qui savrera a posteriori jamais ralis), alors comme f est strictement croissante, on a f (a n+1 ) < f (a n ), et en particulier f (a n+1 ) 0.
Sinon a n+1 a n . Comme f est convexe : la scante entre (a n , f (a n )) et ( b, f ( b)) est au-dessus
du graphe de f . En particulier le point (a n+1 , 0) (qui est sur cette scante par dfinition a n+1 )
est au-dessus du point (a n+1 , f (a n+1 )), et donc f (a n+1 ) 0 aussi dans ce cas, ce qui conclut la
rcurrence.
Comme f (a n ) 0 et f est croissante, alors par la formule a n+1 = a n
que a n+1 a n .
ba n
f ( b ) f ( a n )
f (a n ), on obtient
3. Convergence de (a n ).
La suite (a n ) est croissante et majore par b, donc elle converge. Notons ` sa limite. Par
continuit f (a n ) f (`). Comme pour tout n, f (a n ) 0, on en dduit que f (`) 0. En particulier, comme on suppose f ( b) > 0, on a ` < b. Comme a n `, a n+1 `, f (a n ) f (`), lgalit
a n
b`
a n+1 = a n f (bb)
f (a n ) f (a n ) devient la limite (lorsque n +) : ` = ` f ( b) f (`) f (`), ce qui
implique f (`) = 0.
Conclusion : (a n ) converge vers la solution de ( f ( x) = 0).
p
10
Pour a = 3, b = 4, f (x) = x2 10 voici les rsultats numriques, est aussi indique une majoration
p
de lerreur n = 10 a n (voir ci-aprs).
a0 = 3
a 1 = 3, 14285714285 . . .
a 2 = 3, 16000000000 . . .
a 3 = 3, 16201117318 . . .
a 4 = 3, 16224648985 . . .
a 5 = 3, 16227401437 . . .
a 6 = 3, 16227723374 . . .
a 7 = 3, 16227761029 . . .
a 8 = 3, 16227765433 . . .
0 0, 1666 . . .
1 0, 02040 . . .
2 0, 00239 . . .
3 0, 00028 . . .
4 3, 28 . . . 105
5 3, 84 . . . 106
6 4, 49 . . . 107
7 5, 25 . . . 108
8 6, 14 . . . 109
0 0, 0083 . . .
1 0, 0035 . . .
2 0, 0014 . . .
3 0, 00060 . . .
4 0, 00024 . . .
5 0, 00010 . . .
6 4, 14 . . . 105
7 1, 69 . . . 105
8 6, 92 . . . 106
| f (x)|
m
pour tout x I.
Dmonstration
Par lingalit des accroissement finis entre x et ` : | f ( x) f (`)| m| x `| mais f (`) = 0, do la
majoration.
p
10
Soit f (x) = x2 10 et lintervalle I = [3, 4]. Alors f 0 (x) = 2x donc | f 0 (x)| 6 sur I. On pose donc
p
m = 6, ` = 10, x = a n . On obtient lestimation de lerreur :
n = |` a n |
| f (a n )| |a2n 10|
=
m
6
p
|3,172 10|
= 0, 489.
10 a 2
6
p
|a28 10|
Pour a 8 on a trouv a 8 = 3, 1622776543347473 . . . donc 10 a 8 6 = 6, 14 . . . 109 . On a
en fait 7 dcimales exactes aprs la virgule.
Dans la pratique, voici le nombre ditrations suffisantes pour avoir une prcision de 10n pour
cet exemple. Grosso-modo, une itration de plus donne une dcimale supplmentaire.
1010 ( 10 dcimales)
10100 ( 100 dcimales)
101000 ( 1000 dcimales)
10 itrations
107 itrations
1073 itrations
|a12
n 1, 10|
12
|a12
8 1, 10|
12
= 6, 92 . . . 106 .
2.5. Algorithme
Voici lalgorithme : cest tout simplement la mise en uvre de la suite rcurrente (a n ).
Algorithme . secante.py
def secante(a,b,n):
for i in range(n):
a = a-f(a)*(b-a)/(f(b)-f(a))
return a
Mini-exercices
1. la main, calculer un encadrement 0, 1 prs de
p
p
3
3. Idem avec 2.
10
4. tudier lquation (exp( x) = ln(x)). Donner une approximation de la (ou des) solution(s) et une majoration de lerreur correspondante.
3. La mthode de Newton
3.1. Mthode de Newton
La mthode de Newton consiste remplacer la scante de la mthode prcdente par la tangente.
Elle est dune redoutable efficacit.
Partons dune fonction drivable f : [a, b] R et dun point u 0 [a, b]. On appelle (u 1 , 0) lintersection de la tangente au graphe de f en (u 0 , f (u 0 )) avec laxe des abscisses. Si u 1 [a, b] alors
on recommence lopration avec la tangente au point dabscisse u 1 . Ce processus conduit la
dfinition dune suite rcurrente :
u 0 [a, b]
et
u n+1 = u n
f (u n )
.
f 0 (u n )
Dmonstration
En effet la tangente au point dabscisse u n a pour quation : y = f 0 ( u n )( x u n )+ f ( u n ). Donc le point ( x, 0)
f (u )
appartenant la tangente (et laxe des abscisses) vrifie 0 = f 0 ( u n )( x u n ) + f ( u n ). Do x = u n f 0 (un ) .
n
f (u n )
un
u n+1
p
10
p
Pour calculer a, on pose f (x) = x2 a, avec f 0 (x) = 2x. La suite issue de la mthode de Newton
u2 a
est dtermine par u 0 > 0 et la relation de rcurrence u n+1 = u n 2nu n . Suite qui pour cet exemple
sappelle suite de Hron et que lon rcrit souvent
u0 > 0
et
1
a
u n+1 =
un +
.
2
un
11
Proposition 3
Cette suite (u n ) converge vers
Pour le calcul de
main :
a.
p
10, on pose par exemple u 0 = 4, et on peut mme commencer les calculs la
u0 = 4
13
1
10
u 0 + 10
= 3, 25
u 0 = 2 4 + 4 =
! 4
1 13
10
329
u 2 = 21 u 1 + 10
u 1 = 2 4 + 13 = 104 = 3, 1634 . . .
4
216 401
u 3 = 21 u 2 + 10
=
=
3, 16227788 . . .
u2
68 432
u1 =
1
2
u 4 = 3, 162277660168387 . . .
p
Pour u 4 on obtient 10 = 3, 1622776601683 . . . avec dj 13 dcimales exactes !
p
Voici la preuve de la convergence de la suite (u n ) vers a.
Dmonstration
u0 > 0
1. Montrons que u n
et
u n+1 =
a
1
un +
.
2
un
a pour n 1.
Tout dabord
u2n+1 a =
2
1 u2n + a
1 ( u2n a)2
1
4
2
2
(
u
2
au
+
a
)
=
a=
n
n
4
un
4
4 u2n
u2n
Donc u2n+1 a 0. Comme il est clair que pour tout n 0, u n 0, on en dduit que pour tout
p
n 0, u n+1 a. (Notez que u 0 lui est quelconque.)
2. Montrons que ( u n)n1 est
une suite dcroissante qui converge.
Comme uun+n 1 = 12 1 + a2 , et que pour n 1 on vient de voir que u2n a (donc
u n+1
un
un
a
u2n
1), alors
1, pour tout n 1.
Consquence : la suite ( u n )n1 est dcroissante et minore par 0 donc elle converge.
p
3. ( u n ) converge vers a.
Notons
` la
u n ` et u n+1 `. Lorsque n + dans la relation u n+1 =
limite de ( u n ). Alors
a
a
1
1
u
+
`
+
,
on
obtient
`
=
. Ce qui conduit la relation `2 = a et par positivit de la
n
2
un
2
`
p
suite, ` = a.
1
a
u 0 > 0 et u n+1 =
11u n + 11 .
12
un
Voici les rsultats numriques pour (1, 10)1/12 en partant de u 0 = 1.
u0 = 1
u 1 = 1, 0083333333333333 . . .
u 2 = 1, 0079748433368980 . . .
u 3 = 1, 0079741404315996 . . .
u 4 = 1, 0079741404289038 . . .
12
Toutes les dcimales affiches pour u 4 sont exactes : (1, 10)1/12 = 1, 0079741404289038 . . .
p
10
Proposition 4
p
1. Soit k tel que u 1 a k. Alors pour tout n 1 :
p
un a 2 a
2. Pour a = 10, u 0 = 4, on a :
2n1
k
p
2 a
2n1
p
1
u n 10 8
24
4 itrations
8 itrations
11 itrations
Dmonstration
1. Dans la preuve de la proposition 3, nous avons vu lgalit :
u2n+1 a =
Ainsi comme u n
( u2n a)2
4 u2n
p
p
( u n a)2 ( u n + a)2
4 u2n
a pour n 1 :
p 2
p
p
a
1
1
1
1
u n+1 a = ( u n a)
( u n a)2 p (1 + 1)2 = p ( u n a)2
p 1+
4
u
4
u n+1 + a
2 a
2 a
n
p
p
Si k vrifie u 1 a k, nous allons en dduire par rcurrence, pour tout n 1, la formule
p
k
un a 2 a p
2 a
2n1
k
p
2 a
2n1 !2
p
=2 a
k
p
2n
2 a
un a 2 4
1
4
23
!2n1
1
=8
24
2n1
13
3.5. Algorithme
Voici lalgorithme pour le calcul de
racine et le nombre n ditrations.
Algorithme . newton.py
def racine_carree(a,n):
u=4
# N'importe qu'elle valeur > 0
for i in range(n):
u = 0.5*(u+a/u)
return u
p
10 :
3,
16227766016837933199889354443271853371955513932521
68268575048527925944386392382213442481083793002951
87347284152840055148548856030453880014690519596700
15390334492165717925994065915015347411333948412408
53169295770904715764610443692578790620378086099418
28371711548406328552999118596824564203326961604691
31433612894979189026652954361267617878135006138818
62785804636831349524780311437693346719738195131856
78403231241795402218308045872844614600253577579702
82864402902440797789603454398916334922265261206779
26516760310484366977937569261557205003698949094694
21850007358348844643882731109289109042348054235653
40390727401978654372593964172600130699000095578446
31096267906944183361301813028945417033158077316263
86395193793704654765220632063686587197822049312426
05345411160935697982813245229700079888352375958532
85792513629646865114976752171234595592380393756251
25369855194955325099947038843990336466165470647234
99979613234340302185705218783667634578951073298287
51579452157716521396263244383990184845609357626020
Mini-exercices
1. la calculette, calculer les trois premires tapes pour une approximation de
p
3
forme de nombres rationnels. Idem avec 2.
p
3, sous
p
5. Calculer n de sorte que u n 10 10` (avec u 0 = 4, u n+1 = 12 u n + uan , a = 10).
14
Auteurs
Auteurs : Arnaud Bodin, Niels Borne, Laura Desideri
Dessins : Benjamin Boutin