Windows installer: Update README.txt.
[maxima.git] / share / sym / doconline
blob4fcc321d4e68fc8810915cdf259f56836c916ee0
2 - Inserer les fonctions decrites ci-desous dans le fichier "macsym.doc"
3   en lui conservant son ordonnancement (dictionnaire).
5 - Inserer dans le fichier "index" chaque nom de fonction avec 
6   son numero de ligne dans "macsym.doc"
7  
10                         Documentation de SYM
12 &ARITE(DEGRE, ARITE, PUISSANCES) applique le the'ore`me de l'arite'
13 (A. Valibouze (1992) Sur l'arit\'e des fonctions, \`a parai^tre dans 
14 la revue European Journal of Combinatorics ). Cette fonction permet de
15 passer d'une fonction puissance d'une  resolvante en ARITE variables 
16 a une fonction puissance en DEGRE variables. Elle rajoute un
17 coefficient binomial a chaque partition. On suppose que les fonctions
18 puissances sont DONNEES SUR LA BASE DES FORMES MONOMIALES DE MANIERE
19 PARTITIONNEE DANS LA LISTE $PUISSANCES. Ci dessous la liste des
20 fonctions puissances est [x^2*y^4,x^5*y^5 + x^2,x^2*y^2+x^3] l'arite'
21 est 2 et le degre' est 4. Cette fonction est utile aux calculs de re'solvantes.
23   arite(4,2,[[[1,2,4]],[[1,5,5],[1,2]],[[1,2,2],[1,3]]]);
25        [[[1, 2, 4]], [[1, 5, 5], [3, 2]], [[1, 2, 2], [3, 3]]]
27  aux fonctions puissances
28 calcule'es de manie`re "contracte'e" dans PUISSANCES.
32 &CARD_ORBIT(partition,n) partition est une liste sous la forme 
33 [a1,m1,...,aq,mq] ou` mi est la multiplicite' de ai dans la partition.
34 La fonction calcule le cardinal de l'orbite de la partition sous
35 l'action du groupe syme'trique de degre' n.
37  CARD_ORBIT([5,2,1,3],6);
39                                  60
41 &CARD_STAB(l,egal) l est une liste d'objets ordonne's et egal est le
42 test d'e'galite'entre eux. Soit N la longueur de la liste l. Cette fonction
43 calcule le cardinal du stabilisateur de l sous l'action du groupe syme'trique
44 d'ordre N.
46  CARD_STAB([a, a, c, b, b], eq);
47          
48                                 4
50  CARD_STAB([1,1,2,3,3], "=");
52                                 4
54 &COMP2ELE(n, l) re'alise le passage des fonctions syme'triques
55 comple`tes, donnee's dans la liste l, aux fonctions 
56 syme'triques e'le'mentaires de 0 a` n. Si la liste
57 l contient moins de n+1 e'le'ments les valeurs formelles viennent
58 la comple'ter. Le premier e'le'ment de la liste l donne le cardinal
59 de l'alphabet si il existe, sinon on le met e'gal a` n.
61 COMP2ELE(3,[4,g1]);
62                             2                3
63            [4, g1, - h2 + g1 , - 2 g1 h2 + g1  + h3]
65 autres fonctions de changements de bases :
67 COMP2PUI, ELE2COMP, ELE2PUI, ELEM, MON2SCHUR, MULTI_ELEM, MULTI_PUI,
68 PUI, PUI2COMP, PUI2ELE, PUIREDUC, SCHUR2COMP.
70 &COMP2PUI(n, l) re'alise le passage des fonctions syme'triques
71 comple`tes, donnee's dans la liste l, aux fonctions 
72 syme'triques e'le'mentaires de 0 a` n. Si la liste
73 l contient moins de n+1 e'le'ments les valeurs formelles viennent
74 la completer. Le premier e'le'ment de la liste l donne le cardinal
75 de l'alphabet si il existe, sinon on le met e'gal a n.
77 COMP2PUI(3,[4,g]);
78                      2          3
79            [4, g, - g  + 2 h2, g  - 3 h2 g + 3 h3]
83 &CONT2PART(pc,lvar) rend le polyno^me partitionne' associe' 
84 a` la forme  contracte'e pc dont les variables sont dans lvar.
86 pc : 2*a^3*b*x^4*y + x^5$
87 CONT2PART(pc,[x,y]);
88                          3
89                     [[2 a  b, 4, 1], [1, 5]]
91 Autres fonctions de changements de repre'sentations :
93 CONTRACT, EXPLOSE, PART2CONT, PARTPOL, TCONTRACT, TPARTPOL.
95 &CONTRACT(psym,lvar) rend une forme contracte'e (i.e. un mono^me
96 par orbite sous l'action du groupe syme'trique) du polyno^me psym
97 en les variables contenues dans la liste lvar. La fonction EXPLOSE
98 re'alise l'ope'ration inverse. La fonction TCONTRACT teste en plus
99 la syme'trie du polyno^me.
101 psym : EXPLOSE(2*a^3*b*x^4*y,[x,y,z]);
103         3      4      3      4      3    4   
104      2 a  b y z  + 2 a  b x z  + 2 a  b y  z 
105                 3    4        3      4      3    4
106            + 2 a  b x  z + 2 a  b x y  + 2 a  b x  y
108 CONTRACT(psym,[x,y,z]);
110                         3    4
111                      2 a  b x  y
113 Autres fonctions de changements de repre'sentations :
115 CONT2PART, EXPLOSE, PART2CONT, PARTPOL, TCONTRACT, TPARTPOL.
117 &DIRECT([P1,...,Pn],y,f,[lvar1,...,lvarn]) calcul l'image
118 directe (voir M. GIUSTI,D. LAZARD et A. VALIBOUZE, ISSAC 1988, Rome)
119 associe'e a` la fonction f, en les listes de variables lvar1,...,lvarn,
120 et aux polyno^mes P1,...,Pn d'une variable y. l'arite' de la fonction
121 f est importante pour le calcul. Ainsi, si l'expression de f ne depend
122 pas d'une variable, non seulement il est inutile de donner cette
123 variable mais cela diminue conside'rablement lees calculs si on ne le
124 fait pas.
126 DIRECT([z^2  - e1* z + e2, z^2  - f1* z + f2], z, b*v + a*u, 
127               [[u, v], [a, b]]);
129                     2                         2           2
130                    z  - e1 f1 z - 4 e2 f2 + e1  f2 + e2 f1
132 DIRECT([z^3-e1*z^2+e2*z-e3,z^2  - f1* z + f2], z, b*v + a*u,
133               [[u, v], [a, b]]);
135        6            5            4       2     4          2  4     2   2  4
136       Y  - 2 E1 F1 Y  - 6 E2 F2 Y  + 2 E1  F2 Y  + 2 E2 F1  Y  + E1  F1  Y
138                3                  3       3        3          3  3
139  + 9 E3 F1 F2 Y  + 5 E1 E2 F1 F2 Y  - 2 E1  F1 F2 Y  - 2 E3 F1  Y
141              3  3       2   2  2       2      2  2     4   2  2
142  - 2 E1 E2 F1  Y  + 9 E2  F2  Y  - 6 E1  E2 F2  Y  + E1  F2  Y
144              2     2       2   2     2       2      2     2             4  2
145  - 9 E1 E3 F1  F2 Y  - 6 E2  F1  F2 Y  + 3 E1  E2 F1  F2 Y  + 2 E1 E3 F1  Y
147      2   4  2                 2         2         2            2      2
148  + E2  F1  Y  - 27 E2 E3 F1 F2  Y + 9 E1  E3 F1 F2  Y + 3 E1 E2  F1 F2  Y
150      3         2                3            2      3             2   3
151  - E1  E2 F1 F2  Y + 15 E2 E3 F1  F2 Y - 2 E1  E3 F1  F2 Y - E1 E2  F1  F2 Y
153              5          2   3                 3       3      3       3   3
154  - 2 E2 E3 F1  Y - 27 E3  F2  + 18 E1 E2 E3 F2  - 4 E1  E3 F2  - 4 E2  F2
156      2   2   3        2   2   2                2   2     3      2   2
157  + E1  E2  F2  + 27 E3  F1  F2  - 9 E1 E2 E3 F1  F2  + E1  E3 F1  F2
159      3   2   2       2   4                 4        2   6
160  + E2  F1  F2  - 9 E3  F1  F2 + E1 E2 E3 F1  F2 + E3  F1
162 Recherche du polyno^me dont les racines sont les somme a+u ou a est
163 racine de z^2  - e1* z + e2 et u est racine de z^2  - f1* z + f2
165 DIRECT([z^2  - e1* z + e2,z^2  - f1* z + f2], z,a+u,[[u],[a]]);
167        4         3         3         2     2  2            2         2     2  2
168       Y  - 2 F1 Y  - 2 E1 Y  + 2 F2 Y  + F1  Y  + 3 E1 F1 Y  + 2 E2 Y  + E1  Y
170                                 2                   2                      2
171  - 2 F1 F2 Y - 2 E1 F2 Y - E1 F1  Y - 2 E2 F1 Y - E1  F1 Y - 2 E1 E2 Y + F2
173                           2           2                2
174  + E1 F1 F2 - 2 E2 F2 + E1  F2 + E2 F1  + E1 E2 F1 + E2
177 DIRECT peut prendre deux drapeaux possibles : ELEMENTAIRES et
178 PUISSANCES (valeur par de'faut) qui permettent de de'composer
179 les polyno^mes syme'triques apparaissant dans ce calcul par
180 les fonctions syme'triques e'le'mentaires ou les fonctions puissances
181 respectivement.
183 fonctions de SYM utilis'ees dans cette fonction :
185 MULTI_ORBIT (donc ORBIT), PUI_DIRECT, MULTI_ELEM (donc ELEM), 
186 MULTI_PUI (donc PUI), PUI2ELE, ELE2PUI (si le drapeau DIRECT est
187 a` PUISSANCES).
189 &ELE2COMP(m , l) passe des fonctions syme'triques e'le'mentaires
190 aux fonctions comple`tes. Similaire a` COMP2ELE et COMP2PUI.
192 autres fonctions de changements de bases :
194 COMP2ELE, COMP2PUI, ELE2PUI, ELEM, MON2SCHUR, MULTI_ELEM, MULTI_PUI,
195 PUI, PUI2COMP, PUI2ELE, PUIREDUC, SCHUR2COMP.
197 &ELE2POLYNOME(l,z) donne le polyno^me en z dont les fonctions
198 syme'triques e'le'mentaires des racines sont dans la liste l.
199 l=[n,e1,...,en] ou` n est le degre' du polyno^me et ei la i-ie`me
200 fonction syme'trique e'le'mentaire.
202  ele2polynome([2,e1,e2],z);
204                                   2
205                                  Z  - E1 Z + E2
207  polynome2ele(x^7-14*x^5  + 56*x^3  - 56*X + 22,x);
209               [7, 0, - 14, 0, 56, 0, - 56, - 22] 
210  ele2polynome( [7, 0, - 14, 0, 56, 0, - 56, - 22],x);
212                           7       5       3
213                          X  - 14 X  + 56 X  - 56 X + 22
216    
217   la re'ciproque : POLYNOME2ELE(p,z)
219 autres fonctions a` voir :
221 POLYNOME2ELE, PUI2POLYNOME.
223 &ELE2PUI(m, l) passe des fonctions syme'triques e'le'mentaires
224 aux fonctions comple`tes. Similaire a` COMP2ELE et COMP2PUI.
226 autres fonctions de changements de bases :
228 COMP2ELE, COMP2PUI, ELE2COMP, ELEM, MON2SCHUR, MULTI_ELEM, MULTI_PUI,
229 PUI, PUI2COMP, PUI2ELE, PUIREDUC, SCHUR2COMP.
231 &ELEM(ele,sym,lvar) de'compose le polyno^me syme'trique sym, en les variables
232 contenues de la liste lvar, par les fonctions syme'triques e'le'mentaires
233 contenues dans la liste ele. Si le premier e'le'ment de ele est donne'
234 ce sera le cardinal de l'alphabet sinon on prendra le degre' du polyno^me
235 sym. Si il manque des valeurs a` la liste ele des valeurs formelles
236 du type "ei" sont rajoute'es. Le polyno^me sym peut etre donne'
237 sous 3 formes diffe'rentes : contracte'e (ELEM doit alors valoir 1 sa valeur
238 par de'faut), partitionne'e (ELEM doit alors valoir 3) ou e'tendue (i.e. le
239 polyno^me en entier) (ELEM doit alors valoir 2). L'utilsation
240 de la fonction PUI se re'alise sur le me^me mode`le.
242 Sur un alphabet de cardinal 3 avec e1, la premie`re fonction syme'trique
243 e'le'mentaire, valant 7, le polyno^me syme'trique en 3 variables dont
244 la forme contracte'e (ne de'pendant ici que de deux de ses variables)
245 est x^4-2*x*y se de'compose ainsi en les fonctions syme'triques 
246 e'le'mentaires :
248 ELEM([3,7],x^4-2*x*y,[x,y]);
250                                2
251                    28 e3 + 2 e2  - 198 e2 + 2401
253 autres fonctions de changements de bases :
255 COMP2ELE, COMP2PUI, ELE2COMP, ELE2PUI, MON2SCHUR, MULTI_ELEM, MULTI_PUI,
256 PUI, PUI2COMP, PUI2ELE, PUIREDUC, SCHUR2COMP.
258 &EXPLOSE(pc,lvar) rend le polyno^me syme'trique associe' a` la forme 
259 contracte'e pc. La liste lvar contient les variables.
261 EXPLOSE(a*x +1,[x,y,z]);
263                      (x + y + z) a + 1
265 Autres fonctions de changements de repre'sentations :
267 CONTRACT, CONT2PART, PART2CONT, PARTPOL, TCONTRACT, TPARTPOL.
269 &KOSTKA(part1,part2) (e'crite par P. ESPERET) calcule le nombre de
270 kostka associe' aux partition part1 et part2
272 kostka([3,3,3],[2,2,2,1,1,1]);
273                                   6
275 &LGTREILLIS(n,m) rend la liste des partitions de poids n et de longueur m.
277  LGTREILLIS(4,2);
279                                [[3, 1], [2, 2]]
281  Voir e'galement : LTREILLIS, TREILLIS et TREINAT.
283 &LTREILLIS(n,m) rend la liste des partitions de poids n et de longueur 
284 infe'rieure ou e'gale a` m.
286  ltreillis(4,2);
288                          [[4, 0], [3, 1], [2, 2]]
290  Voir e'galement : LGTREILLIS, TREILLIS et TREINAT.
292 &MON2SCHUR(l) la liste l repre'sente la fonction de Schur S_l :
293  On a l=[i1,i2,...,iq]
294 avec i1 <= i2 <= ... <= iq . La fonction de Schur est S_[i1,i2...,iq]
295 est le mineur de la matrice infinie (h_{i-j}) i>=1, j>=1 compose'
296 des q premie`res lignes et des colonnes i1+1,i2+2,...,iq+q.
298 On e'crit cette fonction de Schur en fonction des
299 formes monomiales en utilisant les fonctions TREINAT et KOSTKA. La forme
300 rendue est un polyno^me syme'trique dans une de ses repre'sentations
301 contracte'es avec les variables x1, x2, ...
303  mon2schur([1,1,1]);
305                                X1 X2 X3
307  mon2schur([3]);
309                                          2        3
310                             X1 X2 X3 + X1  X2 + X1
311  MON2SCHUR([1,2]);
312                                              2
313                               2 x1 x2 x3 + x1  x2
315 ce qui veut dire que pour 3 variables cela donne :
316        2 x1 x2 x3 + x1^2 x2 + x2^2 x1 + x1^2 x3 + x3^2 x1 + x2^2 x3 + x3^2 x2
318 autres fonctions de changements de bases :
320 COMP2ELE, COMP2PUI, ELE2COMP, ELE2PUI, ELEM, MULTI_ELEM, MULTI_PUI,
321 PUI, PUI2COMP, PUI2ELE, PUIREDUC, SCHUR2COMP.
323 &MULTI_ELEM(l_elem,multi_pc,l_var) de'compose un polyno^me 
324 multi-syme'trique sous la forme multi-contracte'e multi_pc en les groupes
325 de variables contenue dans la liste de listes l_var sur les
326 groupes de fonctions syme'triques e'le'mentaires contenues dans l_elem.
328 MULTI_ELEM([[2,e1,e2],[2,f1,f2]],a*x+a^2+x^3,[[x,y],[a,b]]);
330                                 2                       3
331                      - 2 f2 + f1  + e1 f1 - 3 e1 e2 + e1
334 autres fonctions de changements de bases :
336 COMP2ELE, COMP2PUI, ELE2COMP, ELE2PUI, ELEM, MON2SCHUR, MULTI_PUI,
337 PUI, PUI2COMP, PUI2ELE, PUIREDUC, SCHUR2COMP.
339 &MULTI_ORBIT(P,[lvar1, lvar2,...,lvarp]) P est un polyno^me en l'ensemble
340 des variables contenues dans les listes lvar1, lvar2 ... lvarp. 
341 Cette fonction rame`ne l'orbite du polyno^me P sous l'action du produit 
342 des groupes syme'triques des ensembles de variables repre'sente's par 
343 ces p LISTES.
345  MULTI_ORBIT(a*x+b*y,[[x,y],[a,b]]);
347           [b y + a x, a y + b x]
349  multi_orbit(x+y+2*a,[[x,y],[a,b,c]]);
351               [Y + X + 2 C, Y + X + 2 B, Y + X + 2 A]
354   voir e'galement : ORBIT pour l'action d'un seul groupe syme'trique
356 &MULTI_PUI est a` la fonction PUI ce que la fonction MULTI_ELEM est
357 a` la fonction ELEM.
359 MULTI_PUI([[2,p1,p2],[2,t1,t2]],a*x+a^2+x^3,[[x,y],[a,b]]);
360     
361                                               3
362                                        3 P1 P2   P1
363                           T2 + P1 T1 + ------- - ---
364                                           2       2
367 &MULTINOMIAL(r,part) ou` r est le poids de la partition part. Cette
368 fonction rame`ne le coefficient multinomial associe' : si les
369 parts de la partitions part sont i1, i2, ..., ik, le re'sultat de
370 MULTINOMIAL est r!/(i1!i2!...ik!).
372 &MULTSYM(ppart1, ppart2,N) re'alise le produit de deux polyno^mes
373 syme'triques de N variables en ne travaillant que modulo l'action du
374 groupe syme'trique d'ordre N. Les polyno^mes sont dans leur repre'sentation
375 partitionne'e. 
377 Soient les 2 polyno^mes syme'triques en x, y : 3*(x+y) + 2*x*y et 5*(x^2+y^2)
378 dont les formes partitionne'es sont respectivement [[3,1],[2,1,1]] et [[5,2]],
379 alors leur produit sera donne' par :
381  MULTSYM([[3,1],[2,1,1]],[[5,2]],2);
383             [[10, 3, 1], [15, 2, 1], [15, 3, 0]]
385 soit 10*(x^3*y+y^3*x)+15*(x^2*y +y^2*x) +15(x^3+y^3)
387 Fonctions de changements de repre'sentations d'un polyno^me syme'trique :
389 CONTRACT, CONT2PART, EXPLOSE, PART2CONT, PARTPOL, TCONTRACT, TPARTPOL.
391 &ORBIT(P,lvar) calcul l'orbite du polyno^me P en les variables de la liste
392 lvar sous l'action du groupe syme'trique de l'ensemble des variables contenues
393 dans la liste lvar.
395  orbit(a*x+b*y,[x,y]);
397                         [A Y + B X, B Y + A X]
398  orbit(2*x+x^2,[x,y]);
399                                 2         2
400                               [Y  + 2 Y, X  + 2 X]
403  voir e'galement : MULTI_ORBIT pour l'action d'un produit de groupes 
404 syme'triques sur un polyno^me.
406 &PART2CONT(ppart,lvar) passe de la forme partitionne'e a` la forme contracte'e
407 d'un polyno^me syme'trique. La forme contracte'e est rendue avec les variables
408 contenues dans lvar.
410 PART2CONT([[2*a^3*b,4,1]],[x,y]);
412                         3    4
413                      2 a  b x  y
415 Autres fonctions de changements de repre'sentations :
417 CONTRACT, CONT2PART, EXPLOSE, PARTPOL, TCONTRACT, TPARTPOL.
419 &PARTPOL(psym, lvar) psym est un polyno^me syme'trique en les variables 
420 de lvar. Cette fonction rame`ne sa repre'sentation partitionne'e.
422 PARTPOL(-a*(x+y)+3*x*y,[x,y]);
424                    [[3, 1, 1], [- a, 1, 0]]
426 Autres fonctions de changements de repre'sentations :
428 CONTRACT, CONT2PART, EXPLOSE, PART2CONT, TCONTRACT, TPARTPOL.
430 &PERMUT(l) rame`ne la liste des permutations de la liste l.
432 &POLYNOME2ELE(p,x) donne la liste l=[n,e1,...,en] ou` n est le degre'
433 du polyno^me p en la variable x et ei la i-ieme fonction syme'trique 
434 e'le'mentaire des racines de p.
436  POLYNOME2ELE(x^7-14*x^5  + 56*x^3  - 56*X + 22,x);
438               [7, 0, - 14, 0, 56, 0, - 56, - 22] 
440  ELE2POLYNOME( [7, 0, - 14, 0, 56, 0, - 56, - 22],x);
442                           7       5       3
443                          X  - 14 X  + 56 X  - 56 X + 22
445   la re'ciproque : ELE2POLYNOME(l,x)
447 &PRODRAC(L,K) L est une liste contenant les fonctions syme'triques 
448 e'le'mentaires sur un ensemble A. PRODRAC rend le polyno^me dont
449 les racines sont les produits K a` K des e'le'ments de A.
451 &PUI(pui,sym,lvar) de'compose le polyno^me syme'trique sym, en les variables
452 contenues de la liste lvar, par les fonctions puissances
453 contenues dans la liste pui. Si le premier e'le'ment de pui est donne'
454 ce sera le cardinal de l'alphabet sinon on prendra le degre' du polyno^me
455 sym. Si il manque des valeurs a` la liste pui, des valeurs formelles
456 du type "pi" sont rajoute'es. Le polyno^me sym peut etre donne'
457 sous 3 formes diffe'rentes : contracte'e (PUI doit alors valoir 1 sa valeur
458 par de'faut), partitionne'e (PUI doit alors valoir 3) ou e'tendue (i.e. le
459 polyno^me en entier) (PUI doit alors valoir 2). La fonction ELEM
460 s'utilise de la me^me manie`re.
462 PUI;
464                        1
465 PUI([3,a,b],u*x*y*z,[x,y,z]);
467                                3
468                              (a  - 3 b a + 2 p3) u
469                              ---------------------
470                                       6
472 autres fonctions de changements de bases :
474 COMP2ELE, COMP2PUI, ELE2COMP, ELE2PUI, ELEM, MON2SCHUR, MULTI_ELEM, 
475 MULTI_PUI, PUI2COMP, PUI2ELE, PUIREDUC, SCHUR2COMP.
477 &PUI2COMP(N,LPUI) rend la liste des N premie`res fonctions comple`tes
478 (avec en te^te le cardinal) en fonction des fonctions puissance donne'es dans
479 la liste LPUI. Si la liste LPUI est vide le cardinal est N sinon 
480 c'est son premier e'le'ment similaire a` COMP2ELE et COMP2PUI.
482  PUI2COMP(2,[]);
484                                          2
485                                        p1  + p2
486                                [2, p1, --------]
487                                           2
489  PUI2COMP(3,[2,a1]);
491                               2         3
492                             a1  + p2  a1  + 3 p2 a1 + 2 p3
493                     [2, a1, --------, --------------------]
494                                2               6
496 Autres fonctions de changements de bases :
498 COMP2ELE, COMP2PUI, ELE2COMP, ELE2PUI, ELEM, MON2SCHUR, MULTI_ELEM, 
499 MULTI_PUI, PUI, PUI2ELE, PUIREDUC, SCHUR2COMP.
501 &PUI2ELE(N,LPUI) re'alise le passage des fonctions puissances aux
502 fonctions syme'triques e'le'mentaires.
503 Si le drapeau PUI2ELE est GIRARD, on re'cupe`re la liste des fonctions 
504 syme'triques e'le'mentaires de 1 a` N, et s'il est e'gal a`  CLOSE, 
505 la Nie`me fonction syme'trique e'le'mentaire.
507 Autres fonctions de changements de bases :
509 COMP2ELE, COMP2PUI, ELE2COMP, ELE2PUI, ELEM, MON2SCHUR, MULTI_ELEM, MULTI_PUI,
510 PUI, PUI2COMP, PUIREDUC, SCHUR2COMP.
512 &PUI2POLYNOME(X,LPUI) calcul le polyno^me en X dont les fonctions puissances
513 des racines sont donne'es dans la liste LPUI.
516 (C6) polynome2ele(x^3-4*x^2+5*x-1,x);
517 (D6)                             [3, 4, 5, 1]
518 (C7) ele2pui(3,%);
519 (D7)                             [3, 4, 6, 7]
520 (C8) pui2polynome(x,%);
521                                3      2
522 (D8)                          X  - 4 X  + 5 X - 1
524 Autres fonctions a` voir :
526 POLYNOME2ELE, ELE2POLYNOME.
529 &PUI_DIRECT(ORBITE,[lvar1,...,lvarn],[d1,d2,...,dn])
530   Soit f un polynome en n blocs de variables lvar1,...,lvarn.
531   Soit ci le nombre de variables dans lvari . Et SC le produit des n
532   groupes syme'triques de degre' c1,...,cn. Ce groupe agit
533   naturellement sur f
534   La liste ORBITE est l'orbite, note'e SC(f), de la fonction f sous 
535   l'action de SC. (Cette liste peut e^tre obtenue avec la fonction : 
536   MULTI_ORBIT).
537   Les di sont des entiers tels que c1<=d1, c2<=d2,...,cn<=dn.
538   Soit SD le produit des groupes syme'triques S_d1 x S_d2 x...x S_dn.
540   la fonction pui_direct rame`ne les N premie`res fonctions puissances de SD(f)
541   de'duites des fonctions puissances de SC(f) ou` N est le cardinal de SD(f).
543   Le re'sultat est rendue sous forme multi-contracte'e par rapport a SD.
544  (i.e. on ne conserve qu'un e'le'ment par orbite sous l'action de SD).
546 L:[[x,y],[a,b]]$
548 PUI_DIRECT(MULTI_ORBIT(a*x+b*y, L), L,[2,2]);
550                                     2  2
551                  [a x, 4 a b x y + a  x ]
553 PUI_DIRECT(MULTI_ORBIT(a*x+b*y, L), L,[3,2]);
555                          2  2     2    2        3  3
556   [2 A X, 4 A B X Y + 2 A  X , 3 A  B X  Y + 2 A  X ,
558     2  2  2  2      3    3        4  4
559 12 A  B  X  Y  + 4 A  B X  Y + 2 A  X ,
561     3  2  3  2      4    4        5  5
562 10 A  B  X  Y  + 5 A  B X  Y + 2 A  X ,
564     3  3  3  3       4  2  4  2      5    5        6  6
565 40 A  B  X  Y  + 15 A  B  X  Y  + 6 A  B X  Y + 2 A  X ]
567  PUI_DIRECT([y+x+2*c, y+x+2*b, y+x+2*a],[[x,y],[a,b,c]],[2,3]);
569                              2              2
570       [3 x + 2 a, 6 x y + 3 x  + 4 a x + 4 a , 
572               2                   3        2       2        3
573            9 x  y + 12 a x y + 3 x  + 6 a x  + 12 a  x + 8 a ]
576 PUI_DIRECT([y+x+2*c, y+x+2*b, y+x+2*a],[[x,y],[a,b,c]],[3,4]);
578 &PUIREDUC(N,LPUI) LPUI est une liste dont le premier e'le'ment est un entier
579 M. PUIREDUC donne les N premie`res fonctions puissances en fonction 
580 des M premie`res.
582 PUIREDUC(3,[2]);
584                                                   3
585                                       3 p1 p2 - p1
586                           [2, p1, p2, -------------]
588                                             2
590 &RESOLVANTE(p,x,f,[x1,...,xd]) calcule la re'solvante du polyno^me p
591 de la variable x et de degre' n >= d par la fonction f exprime'e en
592 les variables x1,...,xd. Il est important pour l'efficacite' des
593 calculs de ne pas mettre dans la liste [x1,...,xd] les variables
594 n'intervenant pas dans la fonction de transformation f.
596 Afin de rendre plus efficaces les calculs on peut mettre des drapeaux
597 a` la variable RESOLVANTE afin que des algorithmes ade'quates soient
598 utilise's :
600 Si la fonction f est 
601   unitaire : un polyno^me d'une variable,
602   line'aire ,
603   alterne'e,
604   une somme de variables,
605   syme'trique en les variables qui apparaissent dans son expression,
606   un produit de variables,
607   la fonction de la re'solvante de Cayley (utilisable qu'en degre' 5)
608      (x1*x2+x2*x3+x3*x4+x4*x5+x5*x1 - (x1*x3+x3*x5+x5*x2+x2*x4+x4*x1))^2
609   generale,
611 le drapeau de RESOLVANTE pourra e^tre respectivement :
612   unitaire,
613   lineaire,
614   alternee,
615   somme,
616   produit,
617   cayley,
618   generale.
620  resolvante:unitaire;
621 resolvante(x^7-14*x^5  + 56*x^3  - 56*X + 22,x,x^3-1,[x]);
623         7      6        5         4          3           2
624       Y  + 7 Y  - 539 Y  - 1841 Y  + 51443 Y  + 315133 Y  + 376999 Y + 125253
626    resolvante : lineaire;
627   resolvante(x^4-1,x,x1+2*x2+3*x3,[x1,x2,x3]);
628     24       20         16            12             8              4
629    Y   + 80 Y   + 7520 Y   + 1107200 Y   + 49475840 Y  + 344489984 Y
630                                                            + 655360000
631                  Meme solution pour : 
632   resolvante : general;
633   resolvante(x^4-1,x,x1+2*x2+3*x3,[x1,x2,x3]);
634   resolvante(x^4-1,x,x1+2*x2+3*x3,[x1,x2,x3,x4])
635   direct([x^4-1],x,x1+2*x2+3*x3,[[x1,x2,x3]]);
637   resolvante:lineaire$
638   resolvante(x^4-1,x,x1+x2+x3,[x1,x2,x3);
640                                  4
641                                 Y  - 1
643   resolvante:symetrique$
645   resolvante(x^4-1,x,x1+x2+x3,[x1,x2,x3]);
647                                  4
648                                 Y  - 1
649   resolvante(x^4+x+1,x,x1-x2,[x1,x2]);
650             12      8       6        4        2
651            Y   + 8 Y  + 26 Y  - 112 Y  + 216 Y  + 229
653   resolvante:alternee$
654   resolvante(x^4+x+1,x,x1-x2,[x1,x2]);
656             12      8       6        4        2
657            Y   + 8 Y  + 26 Y  - 112 Y  + 216 Y  + 229
660   resolvante:produit;
661   resolvante(x^7-7*x+3,x,x1*x2*x3,[x1,x2,x3]);
663          35      33         29        28         27        26         24
664         Y   - 7 Y   - 1029 Y   + 135 Y   + 7203 Y   - 756 Y   + 1323 Y
666            23          22            21           20          19           18
667  + 352947 Y   - 46305 Y   - 2463339 Y   + 324135 Y   - 30618 Y   - 453789 Y
669              17              15             14              12             11
670  - 40246444 Y   + 282225202 Y   - 44274492 Y   + 155098503 Y   + 12252303 Y
672             10              9            8            7             6
673  + 2893401 Y   - 171532242 Y  + 6751269 Y  + 2657205 Y  - 94517766 Y
675             5             3
676  - 3720087 Y  + 26040609 Y  + 14348907
678    resolvante:symetrique$
679   resolvante(x^7-7*x+3,x,x1*x2*x3,[x1,x2,x3]);
681        35      33         29        28         27        26         24
682       Y   - 7 Y   - 1029 Y   + 135 Y   + 7203 Y   - 756 Y   + 1323 Y
684            23          22            21           20          19           18
685  + 352947 Y   - 46305 Y   - 2463339 Y   + 324135 Y   - 30618 Y   - 453789 Y
687              17              15             14              12             11
688  - 40246444 Y   + 282225202 Y   - 44274492 Y   + 155098503 Y   + 12252303 Y
690             10              9            8            7             6
691  + 2893401 Y   - 171532242 Y  + 6751269 Y  + 2657205 Y  - 94517766 Y
693             5             3
694  - 3720087 Y  + 26040609 Y  + 14348907
696  resolvante:cayley$
697  resolvante(x^5-4*x^2+x+1,x,a,[]);
699 " resolvante de Cayley " 
701        6       5         4          3            2
702       X  - 40 X  + 4080 X  - 92928 X  + 3772160 X  + 37880832 X + 93392896
704 Pour la re'solvante de Cayley, les 2 derniers arguments sont neutres
705 et le polyno^me donne' en entre'e doit ne'cessairement e^tre de degre' 5.
707 Voir e'galement : RESOLVANTE_BIPARTITE, RESOLVANTE_PRODUIT_SYM,
708 RESOLVANTE_UNITAIRE, RESOLVANTE_ALTERNEE1, RESOLVANTE_KLEIN, 
709 RESOLVANTE_KLEIN3, RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE. 
711 &RESOLVANTE_ALTERNEE1(p,x) calcule la transformation de 
712  p(x) de degre n par la fonction $\prod_{1\leq i<j\leq n-1} (x_i-x_j)$.
714 Voir e'galement : RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
715 RESOLVANTE , RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
716 RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE, RESOLVANTE_BIPARTITE.
718 &RESOLVANTE_BIPARTITE(p,x) calcule la transformation de 
719  p(x) de degre n (n pair) par la fonction 
720          $x_1x_2\ldots x_{n/2}+x_{n/2+1}\ldotsx_n$
722 Voir e'galement : RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
723 RESOLVANTE , RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
724 RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE,RESOLVANTE_ALTERNEE1
726  RESOLVANTE_BIPARTITE(x^6+108,x);
728                  10        8           6             4
729                 Y   - 972 Y  + 314928 Y  - 34012224 Y
732 Voir e'galement : RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
733 RESOLVANTE , RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
734 RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE,RESOLVANTE_ALTERNEE1.
736 &RESOLVANTE_DIEDRALE(p,x) calcule la transformation de
737 p(x) par la fonction x_1x_2+x_3x_4.
739 resolvante_diedrale(x^5-3*x^4+1,x);
740    15       12       11       10        9         8         7        6
741   X   - 21 X   - 81 X   - 21 X   + 207 X  + 1134 X  + 2331 X  - 945 X
743                      5          4          3          2
744              - 4970 X  - 18333 X  - 29079 X  - 20745 X  - 25326 X - 697
746 Voir e'galement : RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
747 RESOLVANTE_ALTERNEE1, RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
748 RESOLVANTE_VIERER, RESOLVANTE.
750 &RESOLVANTE_KLEIN(p,x)  calcule la transformation de
751 p(x) par la fonction x_1x_2x_4+x_4.
753 Voir e'galement : RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
754 RESOLVANTE_ALTERNEE1, RESOLVANTE, RESOLVANTE_KLEIN3,
755 RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE.
757 &RESOLVANTE_KLEIN3(p,x) calcule la transformation de
758 p(x) par la fonction x_1x_2x_4+x_4.
760 Voir e'galement : RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
761 RESOLVANTE_ALTERNEE1, RESOLVANTE_KLEIN, RESOLVANTE,
762 RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE.
764 &RESOLVANTE_PRODUIT_SYM(p,x) calcule la liste toutes les 
765 r\'esolvantes produit du polyn\^ome  p(x).
767   resolvante_produit_sym(x^5+3*x^4+2*x-1,x);
769           5      4             10      8       7       6       5    4       3
770         [Y  + 3 Y  + 2 Y - 1, Y   - 2 Y  - 21 Y  - 31 Y  - 14 Y  - Y  + 14 Y
772         2       10      8       7    6       5       4       3      2
773    + 3 Y  + 1, Y   + 3 Y  + 14 Y  - Y  - 14 Y  - 31 Y  - 21 Y  - 2 Y  + 1, 
775     5      4
776    Y  - 2 Y  - 3 Y - 1, Y - 1]
779   resolvante:produit$
780   resolvante(x^5+3*x^4+2*x-1,x,a*b*c,[a,b,c]);
782            10      8       7    6       5       4       3      2
783           Y   + 3 Y  + 14 Y  - Y  - 14 Y  - 31 Y  - 21 Y  - 2 Y  + 1
785 Voir e'galement : RESOLVANTE, RESOLVANTE_UNITAIRE,
786 RESOLVANTE_ALTERNEE1, RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
787 RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE.
789 &RESOLVANTE_UNITAIRE(p,q,x) calcule la r\'esolvante du 
790 polyn\^ome p(x) par le polyn\^ome q(x).
792 Voir e'galement : RESOLVANTE_PRODUIT_SYM, RESOLVANTE,
793 RESOLVANTE_ALTERNEE1, RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
794 RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE.
796 &RESOLVANTE_VIERER(p,x) calcule la transformation de
797 p(x) par la fonction x_1x_2-x_3x_4.
799 Voir e'galement : RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
800 RESOLVANTE_ALTERNEE1, RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
801 RESOLVANTE, RESOLVANTE_DIEDRALE.
803 &SCHUR2COMP(P,l_var) : P est un polyno^mes en les variables contenues dans 
804 la liste l_var. Chacune des variables de l_var repre'sente une fonction
805 syme'trique comple`te. On repre'sente dans l_var la ie`me fonction syme'trique
806 comple`te comme la concate'nation de la lettre h avec l'entier i : hi.
807 Cette fonction donne l'expression de P en fonction des fonctions
808 de Schur.
810   SCHUR2COMP(h1*h2-h3,[h1,h2,h3]);
813                                     s     
814                                      1, 2
816  SCHUR2COMP(a*h3,[h3]);
818                                       s  a
819                                        3
823 &SOMRAC(liste,K) la liste contient les fonctions syme'triques e'le'mentaires
824 d'un polyno^me P . On calcul le polyno^mes dont les racines sont les sommes 
825 K a` K distinctes des racines de P. 
827 Voir e'galement PRODRAC.
829 &TCONTRACT(pol,lvar) teste si le polyno^me pol est syme'trique en les
830 variables contenues dans la liste lvar. Si oui il rend une forme contracte'e
831 comme la fonction CONTRACT.
833 Autres fonctions de changements de repre'sentations :
835 CONTRACT, CONT2PART, EXPLOSE, PART2CONT, PARTPOL, TPARTPOL.
837 &TPARTPOL(pol,lvar) teste si le polyno^me pol est syme'trique en les
838 variables contenues dans la liste lvar. Si oui il rend sa forme partionne'e
839 comme la fonction PARTPOL.
841 Autres fonctions de changements de repre'sentations :
843 CONTRACT, CONT2PART, EXPLOSE, PART2CONT, PARTPOL, TCONTRACT.
845 &TREILLIS(n) rame`ne toutes les partitions de poids n.
847  treillis(4);
849             [[4], [3, 1], [2, 2], [2, 1, 1], [1, 1, 1, 1]]
852 Voir e'galement : LGTREILLIS, LTREILLIS et TREINAT.
854 &TREINAT(part)  rame`ne la liste des partitions infe'rieures a` la partition
855   part pour l'ordre naturel.
857    treinat([5]);
859                                [[5]]
860    treinat([1,1,1,1,1]);
861   
862     [[5], [4, 1], [3, 2], [3, 1, 1], [2, 2, 1], [2, 1, 1, 1], [1, 1, 1, 1, 1]]
864    treinat([3,2]);
866                         [[5], [4, 1], [3, 2]]
868 Voir e'galement : LGTREILLIS, LTREILLIS et TREILLIS.