Vous êtes sur la page 1sur 4

calcul approch des zros :Mthode de Newton

0.1 Prliminaires :
1. Dire quoi consiste la mthode de Newton ?
2. Implmenter en Maple une procdure calculant la valeur approch dune solution vriant |f(x)| .
0.2 Application 1 : Recherche de la solution de lquation : cos(x) = x
3
Soit f la fonction dnie par f(x) = cos(x) x
3
.
1. Montrer que f admet une seule solution sur R

localiser sur un intervalle I de longueur 1 .


2. Tracer la courbe de f sur [-1,1].
3. Prendre x
0
= 0.5 et = 10
5
pour valuer la solution qui apparait sur la graphe .
4. Comparer votre procdure la commande fsolve(f(x),x=a..b)
0.3 Application 2 : La recherche de la racine carre dun nombre rel positive .
Soit a de R

+
.
1. Implmenter une procdure qui renvoi la racine carre de a en se basant sur la procdure dj implmenter
en haut .
2. calculer une valeur approche 10
5
de

7 et

17 .comparer le rsultat celui obtenue par evalf(sqrt(a)).


Solution
0.1 Prliminaires :
1. La mthode de Newton est un algorithme ecace pour trouver des approximations dun zro dune
fonction dune variable relle valeurs relles. Lalgorithme consiste linariser une fonction f en un
point et prendre le point dannulation de cette linarisation comme approximation du zro recherch .
On va donc chercher construire une bonne approximation dun zro de la fonction dune variable relle
f(x) . Pour cela, partant dun point x
0
que lon choisit de prfrence proche du zro trouver, on
approche la fonction au premier ordre, autrement dit, on la considre peu prs gale sa tangente en
ce point :
f(x) = f(x
0
) + f

(x
0
)(x x
0
)
Partant de l, pour trouver un zro de cette fonction dapproximation, il sut de calculer lintersection
de la droite tangente avec laxe des abscisses, cest--dire rsoudre lquation ane :
f(x
0
) + f

(x
0
)(x x
0
) = 0
Figure 1 illustration de la mthode de Newton
1
Ce qui nous donne sous une autre forme : x = x
0

f(x0)
f

(x0)
et donc de cette criture on construit une suite
de rcurrente tel que :
n N : x
n+1
= x
n

f(xn)
f

(xn)
.
Remarques :
Cette mthode requiert que la fonction possde une tangente en chacun des points de la suite que
lon construit par itration, par exemple il sut que f soit drivable.
Si une tape n x
n
nappartient pas au domaine de dnition ou si la drive f

(x
n
) est nulle alors la
rcurrence est stopp et donc la mthode choue .
Cette rcurrence innie ncessite dans la pratique un test darrt qui permet de stopper les calculs an
de ne pas tomber dans une boucle innie . Dans notre algorithme on envisage deux tests lun porte sur
limage de x
n
et lautre sur la dirence de deux valeurs successives .
|f(x
n
)|
1
et |x
n+1
x
n
|
2
o
1
et
2
sont des constantes de R

qui reprsentent des erreurs dapproximations caractrisant la


qualit de la solution numrique .
2. Implmentation : Pour le test darrt on utilisera la premire .
1 Newton := proc (p, vi, eps)
2 local f, g, u, v;
3 f := unapply(p, x);
4 g := D(f);
5 u := vi;
6 while eps < abs(evalf(f(evalf(u)))) do
7 v := u;
8 u := v-f(v)/g(v) ;
9 end do;
10 return evalf(u) ;
11 end proc ;
lignes 1 et 11 on dnie une procdure nomme Newton de 3 paramtres :
p qui reprsente une expression algbrique en x .
vi : la valeur initiale do notre calcul va commencer ( x
0
) .
eps : la constance du test darrt .
lignes 2 : Dclaration des variables locaux utilises dans la procdure .
lignes 3 et 4 : construction de la fonction et son drive .
lignes de 5 9 : Tant que la valeur de u -qui reprsente x
n
- est suprieur eps on calcul le terme
suivant en utilisant une variable intermdiaire v suivant lexpression de rcurrence dj obtenue en haut
. lignes 10 : On revoit la valeur nale du zro calcul .
0.2 Application 1 :
Pour tout x R on dnit f par f(x) = cos(x) x
3
1. f est continue sur [0,1] de plus f(0)f(1) < 0 donc le T.V.I arme que lquation f(x) = 0 admet une
unique solution sur [0.1] .
2. Pour trac le graphe de f on doit tout dabord dnir f puis charger le "package" plots et applique la
syntaxe suivante :plot(f(x),0..1) .
2
(2) (2)
(1) (1)
x
0
1 2
1
(6) (6)
(5) (5)
(8) (8)
(7) (7)
(3) (3)
(4) (4) 0.7390851339
0.7390851332
Remarque :
2.645751466
2.645751311
4.123105626
4.123105626