e2bd91c80ea0ee06f337579c86e4ac1fc893bb4d
[scilab.git] / scilab / modules / polynomials / help / fr_FR / roots.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4  * Copyright (C) ???? - 2008 - INRIA
5  * Copyright (C) 2011 - DIGITEO - Michael Baudin
6  *
7  * This file must be used under the terms of the CeCILL.
8  * This source file is licensed as described in the file COPYING, which
9  * you should have received as part of this distribution.  The terms
10  * are also available at
11  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
12  *
13  -->
14 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="roots" xml:lang="fr">
15     <refnamediv>
16         <refname>roots</refname>
17         <refpurpose>racines d'un polynôme</refpurpose>
18     </refnamediv>
19     <refsynopsisdiv>
20         <title>Séquence d'appel</title>
21         <synopsis>
22             x=roots(p)
23             x=roots(p,"algo")
24         </synopsis>
25     </refsynopsisdiv>
26     <refsection>
27         <title>Paramètres</title>
28         <variablelist>
29             <varlistentry>
30                 <term>p</term>
31                 <listitem>
32                     <para>
33                         un polynôme réel ou complexe, ou 
34                         une m-par-1 or 1-par-m matrice de doubles, les coefficients du polynômes par ordre de puissance décroissante.
35                     </para>
36                 </listitem>
37             </varlistentry>
38             <varlistentry>
39                 <term>algo</term>
40                 <listitem>
41                     <para>
42                         une chaîne de caractères, l'algorithme à utiliser (défaut algo="f").
43                         Si algo="e", alors les valeurs propres de la matrice compagnion sont utilisées.
44                         Si algo="f", alors l'algorithme de Jenkins-Traub est utilisé (si les coefficients 
45                         du polynôme sont réels et que le degré du polynôme est plus petit que 100).
46                         Si algo="f" et que le polynôme est complexe, alors une erreur est générée.
47                         Si algo="f" et que le polynôme est de degré inférieur à 100, alors une erreur est 
48                         générée.
49                     </para>
50                 </listitem>
51             </varlistentry>
52         </variablelist>
53     </refsection>
54     <refsection>
55         <title>Description</title>
56         <para>
57             Cette fonction retourne dans le vecteur complexe
58             <literal>x</literal> les racines du polynôme <literal>p</literal>. 
59         </para>
60         <para>
61             L'option "f" utilise l'algorithme rapide RPOLY, fondé sur la méthode de Jenkins-Traub. 
62         </para>
63         <para>
64             Pour les polynôme réels de degré inférieur à 100, on peut utiliser 
65             l'option "f", qui peut être plus rapide dans certains cas.
66             Toutefois, certains polynômes sont susceptibles de poser des problèmes 
67             de convergences pour l'algorithme associé à l'option "f".
68         </para>
69     </refsection>
70     <refsection>
71         <title>Exemples</title>
72         <para>
73             Dans les exemples suivants, on calcule des racines de polynômes.
74         </para>
75         <programlisting role="example"><![CDATA[
76 // Un polynôme réel.
77 p = poly([1 2 3],"x")
78 roots(p)
79 // Les coefficients du polynôme sont donnés.
80 p = [3 2 1]
81 roots(p)
82 // Les racines d'un polynôme complexe.
83 p=poly([0,10,1+%i,1-%i],'x');
84 roots(p)
85 // Les racines du polynôme caractéristique d'une matrice.
86 A=rand(3,3);
87 p = poly(A,'x')
88 roots(p)
89 spec(A)
90  ]]></programlisting>
91         <para>
92             La représentation polynômiale peut avoir un impact significatif sur les 
93             racines.
94             Dans l'exemple suivant, suggéré par Wilkinson dans les années 60 et présenté 
95             par Moler, on considère une matrice dont les termes diagonaux sont égaux 
96             à 1, 2, ..., 20. 
97             Bien entendu, les racines du polynôme caractéristique sont 1, 2, ..., 20.
98             Si on calcule le polynôme caractéristique associé et qu'on calcule ses 
99             racines, on peut voir qu'elles sont significativement différentes des 
100             valeurs attendues.
101             Cela montre que le seul fait de représenter les coefficients dans 
102             des doubles IEEE change les racines.
103         </para>
104         <programlisting role="example"><![CDATA[
105 A = diag(1:20);
106 p = poly(A,'x')
107 roots(p)
108  ]]></programlisting>
109         <para>
110             L'option "f" produit une erreur si le polynôme est complexe 
111             ou que le degré est plus grand que 100.
112         </para>
113         <programlisting role="example"><![CDATA[
114  // Le cas suivant produit une erreur
115  p = %i+%s;
116  roots(p,"f")
117  // Le cas suivant produit une erreur
118  p = ones(101,1);
119  roots(p,"f")
120  ]]></programlisting>
121     </refsection>
122     <refsection role="see also">
123         <title>Voir aussi</title>
124         <simplelist type="inline">
125             <member>
126                 <link linkend="poly">poly</link>
127             </member>
128             <member>
129                 <link linkend="spec">spec</link>
130             </member>
131             <member>
132                 <link linkend="companion">companion</link>
133             </member>
134         </simplelist>
135     </refsection>
136     <refsection>
137         <title>Bibliographie</title>
138         <para>
139             La routine RPOLY est decrite dans "Algorithm 493: Zeros of a Real
140             Polynomial", ACM TOMS Volume 1, Issue 2 (June 1975), pp. 178-189
141         </para>
142     </refsection>
143     <refsection>
144         <title>Fonctions Utilisées</title>
145         <para>
146             Le code source de rpoly.f peut être trouvé dans le repertoire
147             SCI/modules/polynomials/src/fortran de la distribution source de Scilab. Dans le cas où la
148             matrix compagnon est utilisée, le calcul des valeurs propres est effectué
149             en utilisant les routines DGEEV et ZGEEV de LAPACK.
150         </para>
151     </refsection>
152 </refentry>