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"
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);
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
46 CARD_STAB([a, a, c, b, b], eq);
50 CARD_STAB([1,1,2,3,3], "=");
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.
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.
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$
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]);
104 2 a b y z + 2 a b x z + 2 a b y z
106 + 2 a b x z + 2 a b x y + 2 a b x y
108 CONTRACT(psym,[x,y,z]);
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
126 DIRECT([z^2 - e1* z + e2, z^2 - f1* z + f2], z, b*v + a*u,
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,
136 Y - 2 E1 F1 Y - 6 E2 F2 Y + 2 E1 F2 Y + 2 E2 F1 Y + E1 F1 Y
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
145 - 9 E1 E3 F1 F2 Y - 6 E2 F1 F2 Y + 3 E1 E2 F1 F2 Y + 2 E1 E3 F1 Y
148 + E2 F1 Y - 27 E2 E3 F1 F2 Y + 9 E1 E3 F1 F2 Y + 3 E1 E2 F1 F2 Y
151 - E1 E2 F1 F2 Y + 15 E2 E3 F1 F2 Y - 2 E1 E3 F1 F2 Y - E1 E2 F1 F2 Y
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
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]]);
168 Y - 2 F1 Y - 2 E1 Y + 2 F2 Y + F1 Y + 3 E1 F1 Y + 2 E2 Y + E1 Y
171 - 2 F1 F2 Y - 2 E1 F2 Y - E1 F1 Y - 2 E2 F1 Y - E1 F1 Y - 2 E1 E2 Y + F2
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
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
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);
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);
213 X - 14 X + 56 X - 56 X + 22
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
248 ELEM([3,7],x^4-2*x*y,[x,y]);
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]);
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]);
275 &LGTREILLIS(n,m) rend la liste des partitions de poids n et de longueur m.
281 Voir e'galement : LTREILLIS, TREILLIS et TREINAT.
283 <REILLIS(n,m) rend la liste des partitions de poids n et de longueur
284 infe'rieure ou e'gale a` m.
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, ...
310 X1 X2 X3 + X1 X2 + X1
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]]);
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
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
359 MULTI_PUI([[2,p1,p2],[2,t1,t2]],a*x+a^2+x^3,[[x,y],[a,b]]);
363 T2 + P1 T1 + ------- - ---
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
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
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]);
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
410 PART2CONT([[2*a^3*b,4,1]],[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);
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.
465 PUI([3,a,b],u*x*y*z,[x,y,z]);
469 ---------------------
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.
492 a1 + p2 a1 + 3 p2 a1 + 2 p3
493 [2, a1, --------, --------------------]
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);
520 (C8) pui2polynome(x,%);
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
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 :
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).
548 PUI_DIRECT(MULTI_ORBIT(a*x+b*y, L), L,[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]);
556 [2 A X, 4 A B X Y + 2 A X , 3 A B X Y + 2 A X ,
559 12 A B X Y + 4 A B X Y + 2 A X ,
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]);
570 [3 x + 2 a, 6 x y + 3 x + 4 a x + 4 a ,
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
586 [2, p1, p2, -------------]
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
601 unitaire : un polyno^me d'une variable,
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
611 le drapeau de RESOLVANTE pourra e^tre respectivement :
621 resolvante(x^7-14*x^5 + 56*x^3 - 56*X + 22,x,x^3-1,[x]);
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]);
629 Y + 80 Y + 7520 Y + 1107200 Y + 49475840 Y + 344489984 Y
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]]);
638 resolvante(x^4-1,x,x1+x2+x3,[x1,x2,x3);
643 resolvante:symetrique$
645 resolvante(x^4-1,x,x1+x2+x3,[x1,x2,x3]);
649 resolvante(x^4+x+1,x,x1-x2,[x1,x2]);
651 Y + 8 Y + 26 Y - 112 Y + 216 Y + 229
654 resolvante(x^4+x+1,x,x1-x2,[x1,x2]);
657 Y + 8 Y + 26 Y - 112 Y + 216 Y + 229
661 resolvante(x^7-7*x+3,x,x1*x2*x3,[x1,x2,x3]);
664 Y - 7 Y - 1029 Y + 135 Y + 7203 Y - 756 Y + 1323 Y
667 + 352947 Y - 46305 Y - 2463339 Y + 324135 Y - 30618 Y - 453789 Y
670 - 40246444 Y + 282225202 Y - 44274492 Y + 155098503 Y + 12252303 Y
673 + 2893401 Y - 171532242 Y + 6751269 Y + 2657205 Y - 94517766 Y
676 - 3720087 Y + 26040609 Y + 14348907
678 resolvante:symetrique$
679 resolvante(x^7-7*x+3,x,x1*x2*x3,[x1,x2,x3]);
682 Y - 7 Y - 1029 Y + 135 Y + 7203 Y - 756 Y + 1323 Y
685 + 352947 Y - 46305 Y - 2463339 Y + 324135 Y - 30618 Y - 453789 Y
688 - 40246444 Y + 282225202 Y - 44274492 Y + 155098503 Y + 12252303 Y
691 + 2893401 Y - 171532242 Y + 6751269 Y + 2657205 Y - 94517766 Y
694 - 3720087 Y + 26040609 Y + 14348907
697 resolvante(x^5-4*x^2+x+1,x,a,[]);
699 " resolvante de Cayley "
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);
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);
741 X - 21 X - 81 X - 21 X + 207 X + 1134 X + 2331 X - 945 X
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);
770 [Y + 3 Y + 2 Y - 1, Y - 2 Y - 21 Y - 31 Y - 14 Y - Y + 14 Y
773 + 3 Y + 1, Y + 3 Y + 14 Y - Y - 14 Y - 31 Y - 21 Y - 2 Y + 1,
776 Y - 2 Y - 3 Y - 1, Y - 1]
780 resolvante(x^5+3*x^4+2*x-1,x,a*b*c,[a,b,c]);
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
810 SCHUR2COMP(h1*h2-h3,[h1,h2,h3]);
816 SCHUR2COMP(a*h3,[h3]);
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.
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.
860 treinat([1,1,1,1,1]);
862 [[5], [4, 1], [3, 2], [3, 1, 1], [2, 2, 1], [2, 1, 1, 1], [1, 1, 1, 1, 1]]
866 [[5], [4, 1], [3, 2]]
868 Voir e'galement : LGTREILLIS, LTREILLIS et TREILLIS.