2.7 Ce qu’on ne vous a pas dit
73
valeur 0.06140241153652 avec un résidu égal à 9.0949e-13, mais nécessite
la connaissance de la dérivée première de f et un total de 12 évaluations
de la fonction.
Pour calculer les zéros d’un polynôme, on peut citer, outre la méthode
de Newton-Hörner, les méthodes basées sur les suites de Sturm, les méthodes de Müller, (voir [Atk89] ou [QSS07]) et de Bairstow ([RR01],
page 371 et s.). Une autre technique consiste à voir les zéros d’un polynôme comme les valeurs propres d’une matrice particulière (appelée
matrice compagnon) et à utiliser des algorithmes de recherche de valeurs
propres. C’est cette approche qui est utilisée dans la fonction roots de
MATLAB qui a été introduite à la Section 1.5.2.
On a mentionné à la Section 2.3.2 comment appliquer la méthode
de Newton à un système non linéaire, comme (2.13). Plus généralement,
les méthodes de point fixe peuvent facilement être étendues pour calculer les zéros de systèmes non linéaires. Citons également les méthodes
de Broyden et de quasi-Newton qui peuvent être vues comme des généralisations de la méthode de Newton (voir [DS96], [Deu04], [SM03] et
[QSS07, Chap. 7]).
L’instruction MATLAB :
fsolve
zero = fsolve ( ’ fun ’ ,x0 )
permet de calculer un zéro d’un système non linéaire définie par la fonction fun, en démarrant de la donnée initiale x0. La fonction fun retourne les n valeurs f i (¯ x 1 , . . . , ¯
x n ), i = 1, . . . , n, étant donné le vecteur
(¯ x 1 , . . ., ¯
x n )
T .
Par exemple, pour résoudre le système non linéaire (2.15) en utilisant
fsolve, on définit la fonction MATLAB suivante :
function fx = systemnl (x )
fx (1) = x (1)^2+ x (2)^2 -1;
fx (2) = sin ( pi *0.5* x (1))+ x (2)^3;
Les instructions MATLAB pour résoudre ce système sont alors :
x0 = [1 1];
alpha = fsolve ( ’ systemnl ’ ,x0 )
alpha =
0.4761
-0.8794
En utilisant cette procédure, on a trouvé seulement une des deux racines.
L’autre peut être obtenue en démarrant de la donnée initiale -x0.
Octave 2.1 Les commandes fzero et fsolve jouent exactement le
même rôle dans MATLAB et Octave, cependant leurs arguments optionnels diffèrent légèrement selon le programme. Le lecteur pourra consulter
l’aide de ces commandes pour avoir plus de détails.
Précédent

- 85/374

Suivant