12
File: maxima.info, Node: Definitions for Symmetries, Prev: Symmetries, Up: Symmetries
14
Definitions for Symmetries
15
==========================
17
- Function: COMP2PUI (n, l)
18
re'alise le passage des fonctions syme'triques comple`tes,
19
donnee's dans la liste l, aux fonctions syme'triques
20
e'le'mentaires de 0 a` n. Si la liste l contient moins de n+1
21
e'le'ments les valeurs formelles viennent la completer. Le premier
22
e'le'ment de la liste l donne le cardinal de l'alphabet si il
23
existe, sinon on le met e'gal a n.
27
[4, g, - g + 2 h2, g - 3 h2 g + 3 h3]
30
- Function: CONT2PART (pc,lvar)
31
rend le polyno^me partitionne' associe' a` la forme contracte'e
32
pc dont les variables sont dans lvar.
34
pc : 2*a^3*b*x^4*y + x^5$
37
[[2 a b, 4, 1], [1, 5]]
39
Autres fonctions de changements de repre'sentations :
41
CONTRACT, EXPLOSE, PART2CONT, PARTPOL, TCONTRACT, TPARTPOL.
44
- Function: CONTRACT (psym,lvar)
45
rend une forme contracte'e (i.e. un mono^me par orbite sous
46
l'action du groupe syme'trique) du polyno^me psym en les variables
47
contenues dans la liste lvar. La fonction EXPLOSE re'alise
48
l'ope'ration inverse. La fonction TCONTRACT teste en plus la
49
syme'trie du polyno^me.
51
psym : EXPLOSE(2*a^3*b*x^4*y,[x,y,z]);
54
2 a b y z + 2 a b x z + 2 a b y z
56
+ 2 a b x z + 2 a b x y + 2 a b x y
58
CONTRACT(psym,[x,y,z]);
63
Autres fonctions de changements de repre'sentations :
65
CONT2PART, EXPLOSE, PART2CONT, PARTPOL, TCONTRACT, TPARTPOL.
68
- Function: DIRECT ([P1,...,Pn],y,f,[lvar1,...,lvarn])
69
calcul l'image directe (voir M. GIUSTI,D. LAZARD et A. VALIBOUZE,
70
ISSAC 1988, Rome) associe'e a` la fonction f, en les listes de
71
variables lvar1,...,lvarn, et aux polyno^mes P1,...,Pn d'une
72
variable y. l'arite' de la fonction f est importante pour le
73
calcul. Ainsi, si l'expression de f ne depend pas d'une variable,
74
non seulement il est inutile de donner cette variable mais cela
75
diminue conside'rablement lees calculs si on ne le fait pas.
77
DIRECT([z^2 - e1* z + e2, z^2 - f1* z + f2], z, b*v + a*u,
81
z - e1 f1 z - 4 e2 f2 + e1 f2 + e2 f1
83
DIRECT([z^3-e1*z^2+e2*z-e3,z^2 - f1* z + f2], z, b*v + a*u,
87
Y - 2 E1 F1 Y - 6 E2 F2 Y + 2 E1 F2 Y + 2 E2 F1 Y
93
+ 9 E3 F1 F2 Y + 5 E1 E2 F1 F2 Y - 2 E1 F1 F2 Y - 2 E3 F1 Y
96
- 2 E1 E2 F1 Y + 9 E2 F2 Y - 6 E1 E2 F2 Y + E1 F2 Y
99
- 9 E1 E3 F1 F2 Y - 6 E2 F1 F2 Y + 3 E1 E2 F1 F2 Y
105
+ E2 F1 Y - 27 E2 E3 F1 F2 Y + 9 E1 E3 F1 F2 Y
111
- E1 E2 F1 F2 Y + 15 E2 E3 F1 F2 Y - 2 E1 E3 F1 F2 Y
117
- 2 E2 E3 F1 Y - 27 E3 F2 + 18 E1 E2 E3 F2 - 4 E1 E3 F2
122
2 2 3 2 2 2 2 2 3 2 2
123
+ E1 E2 F2 + 27 E3 F1 F2 - 9 E1 E2 E3 F1 F2 + E1 E3 F1 F2
126
+ E2 F1 F2 - 9 E3 F1 F2 + E1 E2 E3 F1 F2 + E3 F1
128
Recherche du polyno^me dont les racines sont les somme a+u ou a est
129
racine de z^2 - e1* z + e2 et u est racine de z^2 - f1* z + f2
131
DIRECT([z^2 - e1* z + e2,z^2 - f1* z + f2], z,a+u,[[u],[a]]);
134
Y - 2 F1 Y - 2 E1 Y + 2 F2 Y + F1 Y + 3 E1 F1 Y + 2 E2 Y
139
- 2 F1 F2 Y - 2 E1 F2 Y - E1 F1 Y - 2 E2 F1 Y - E1 F1 Y
145
+ E1 F1 F2 - 2 E2 F2 + E1 F2 + E2 F1 + E1 E2 F1 + E2
147
DIRECT peut prendre deux drapeaux possibles : ELEMENTAIRES et
148
PUISSANCES (valeur par de'faut) qui permettent de de'composer les
149
polyno^mes syme'triques apparaissant dans ce calcul par les
150
fonctions syme'triques e'le'mentaires ou les fonctions puissances
153
fonctions de SYM utilis'ees dans cette fonction :
156
MULTI_ORBIT (donc ORBIT), PUI_DIRECT, MULTI_ELEM
157
(donc ELEM), MULTI_PUI (donc PUI), PUI2ELE, ELE2PUI
158
(si le drapeau DIRECT est a` PUISSANCES).
161
- Function: ELE2COMP (m , l)
162
passe des fonctions syme'triques e'le'mentaires aux fonctions
163
comple`tes. Similaire a` COMP2ELE et COMP2PUI.
165
autres fonctions de changements de bases :
167
COMP2ELE, COMP2PUI, ELE2PUI, ELEM, MON2SCHUR, MULTI_ELEM,
168
MULTI_PUI, PUI, PUI2COMP, PUI2ELE, PUIREDUC, SCHUR2COMP.
171
- Function: ELE2POLYNOME (l,z)
172
donne le polyno^me en z dont les fonctions syme'triques
173
e'le'mentaires des racines sont dans la liste l. l=[n,e1,...,en]
174
ou` n est le degre' du polyno^me et ei la i-ie`me fonction
175
syme'trique e'le'mentaire.
177
ele2polynome([2,e1,e2],z);
182
polynome2ele(x^7-14*x^5 + 56*x^3 - 56*X + 22,x);
184
[7, 0, - 14, 0, 56, 0, - 56, - 22]
185
ele2polynome( [7, 0, - 14, 0, 56, 0, - 56, - 22],x);
188
X - 14 X + 56 X - 56 X + 22
190
la re'ciproque : POLYNOME2ELE(p,z)
192
autres fonctions a` voir :
194
POLYNOME2ELE, PUI2POLYNOME.
197
- Function: ELE2PUI (m, l)
198
passe des fonctions syme'triques e'le'mentaires aux fonctions
199
comple`tes. Similaire a` COMP2ELE et COMP2PUI.
201
autres fonctions de changements de bases :
203
COMP2ELE, COMP2PUI, ELE2COMP, ELEM, MON2SCHUR, MULTI_ELEM,
204
MULTI_PUI, PUI, PUI2COMP, PUI2ELE, PUIREDUC, SCHUR2COMP.
207
- Function: ELEM (ele,sym,lvar)
208
de'compose le polyno^me syme'trique sym, en les variables
209
contenues de la liste lvar, par les fonctions syme'triques
210
e'le'mentaires contenues dans la liste ele. Si le premier
211
e'le'ment de ele est donne' ce sera le cardinal de l'alphabet
212
sinon on prendra le degre' du polyno^me sym. Si il manque des
213
valeurs a` la liste ele des valeurs formelles du type "ei" sont
214
rajoute'es. Le polyno^me sym peut etre donne' sous 3 formes
215
diffe'rentes : contracte'e (ELEM doit alors valoir 1 sa valeur par
216
de'faut), partitionne'e (ELEM doit alors valoir 3) ou e'tendue
217
(i.e. le polyno^me en entier) (ELEM doit alors valoir 2).
218
L'utilsation de la fonction PUI se re'alise sur le me^me mode`le.
220
Sur un alphabet de cardinal 3 avec e1, la premie`re fonction
221
syme'trique e'le'mentaire, valant 7, le polyno^me syme'trique en 3
222
variables dont la forme contracte'e (ne de'pendant ici que de deux
223
de ses variables) est x^4-2*x*y se de'compose ainsi en les
224
fonctions syme'triques e'le'mentaires :
226
ELEM([3,7],x^4-2*x*y,[x,y]);
229
28 e3 + 2 e2 - 198 e2 + 2401
231
autres fonctions de changements de bases :
233
COMP2ELE, COMP2PUI, ELE2COMP, ELE2PUI, MON2SCHUR, MULTI_ELEM,
234
MULTI_PUI, PUI, PUI2COMP, PUI2ELE, PUIREDUC, SCHUR2COMP.
237
- Function: EXPLOSE (pc,lvar)
238
rend le polyno^me syme'trique associe' a` la forme contracte'e pc.
239
La liste lvar contient les variables.
241
EXPLOSE(a*x +1,[x,y,z]);
245
Autres fonctions de changements de repre'sentations :
247
CONTRACT, CONT2PART, PART2CONT, PARTPOL, TCONTRACT, TPARTPOL.
250
- Function: KOSTKA (part1,part2)
251
e'crite par P. ESPERET) calcule le nombre de kostka associe' aux
252
partition part1 et part2
254
kostka([3,3,3],[2,2,2,1,1,1]);
258
- Function: LGTREILLIS (n,m)
259
rend la liste des partitions de poids n et de longueur m.
265
Voir e'galement : LTREILLIS, TREILLIS et TREINAT.
268
- Function: LTREILLIS (n,m)
269
rend la liste des partitions de poids n et de longueur infe'rieure
274
[[4, 0], [3, 1], [2, 2]]
276
Voir e'galement : LGTREILLIS, TREILLIS et TREINAT.
279
- Function: MON2SCHUR (l)
280
la liste l repre'sente la fonction de Schur S_l : On a
281
l=[i1,i2,...,iq] avec i1 <= i2 <= ... <= iq . La fonction de Schur
282
est S_[i1,i2...,iq] est le mineur de la matrice infinie (h_{i-j})
283
i>=1, j>=1 compose' des q premie`res lignes et des colonnes
286
On e'crit cette fonction de Schur en fonction des formes
287
monomiales en utilisant les fonctions TREINAT et KOSTKA. La forme
288
rendue est un polyno^me syme'trique dans une de ses
289
repre'sentations contracte'es avec les variables x1, x2, ...
298
X1 X2 X3 + X1 X2 + X1
303
ce qui veut dire que pour 3 variables cela donne :
304
2 x1 x2 x3 + x1^2 x2 + x2^2 x1 + x1^2 x3 + x3^2 x1
307
autres fonctions de changements de bases :
309
COMP2ELE, COMP2PUI, ELE2COMP, ELE2PUI, ELEM, MULTI_ELEM,
310
MULTI_PUI, PUI, PUI2COMP, PUI2ELE, PUIREDUC, SCHUR2COMP.
313
- Function: MULTI_ELEM (l_elem,multi_pc,l_var)
314
de'compose un polyno^me multi-syme'trique sous la forme
315
multi-contracte'e multi_pc en les groupes de variables contenue
316
dans la liste de listes l_var sur les groupes de fonctions
317
syme'triques e'le'mentaires contenues dans l_elem.
319
MULTI_ELEM([[2,e1,e2],[2,f1,f2]],a*x+a^2+x^3,[[x,y],[a,b]]);
321
2 3 - 2 f2 + f1 + e1 f1 - 3 e1 e2 + e1
323
autres fonctions de changements de bases :
325
COMP2ELE, COMP2PUI, ELE2COMP, ELE2PUI, ELEM,
326
MON2SCHUR, MULTI_PUI, PUI, PUI2COMP, PUI2ELE,
327
PUIREDUC, SCHUR2COMP.
330
- Function: MULTI_ORBIT (P,[lvar1, lvar2,...,lvarp])
331
P est un polyno^me en l'ensemble des variables contenues dans les
332
listes lvar1, lvar2 ... lvarp. Cette fonction rame`ne l'orbite du
333
polyno^me P sous l'action du produit des groupes syme'triques des
334
ensembles de variables repre'sente's par ces p LISTES.
336
MULTI_ORBIT(a*x+b*y,[[x,y],[a,b]]);
338
[b y + a x, a y + b x]
340
multi_orbit(x+y+2*a,[[x,y],[a,b,c]]);
342
[Y + X + 2 C, Y + X + 2 B, Y + X + 2 A]
344
voir e'galement : ORBIT pour l'action d'un seul groupe syme'trique
347
- Function: MULTI_PUI
348
est a` la fonction PUI ce que la fonction MULTI_ELEM est a` la
351
MULTI_PUI([[2,p1,p2],[2,t1,t2]],a*x+a^2+x^3,[[x,y],[a,b]]);
355
T2 + P1 T1 + ------- - ---
359
- Function: MULTINOMIAL (r,part)
360
ou` r est le poids de la partition part. Cette fonction rame`ne le
361
coefficient multinomial associe' : si les parts de la partitions
362
part sont i1, i2, ..., ik, le re'sultat de MULTINOMIAL est
366
- Function: MULTSYM (ppart1, ppart2,N)
367
re'alise le produit de deux polyno^mes syme'triques de N variables
368
en ne travaillant que modulo l'action du groupe syme'trique
369
d'ordre N. Les polyno^mes sont dans leur repre'sentation
372
Soient les 2 polyno^mes syme'triques en x, y : 3*(x+y) + 2*x*y et
373
5*(x^2+y^2) dont les formes partitionne'es sont respectivement
374
[[3,1],[2,1,1]] et [[5,2]], alors leur produit sera donne' par :
376
MULTSYM([[3,1],[2,1,1]],[[5,2]],2);
378
[[10, 3, 1], [15, 2, 1], [15, 3, 0]]
380
soit 10*(x^3*y+y^3*x)+15*(x^2*y +y^2*x) +15(x^3+y^3)
382
Fonctions de changements de repre'sentations d'un polyno^me
385
CONTRACT, CONT2PART, EXPLOSE, PART2CONT, PARTPOL, TCONTRACT,
389
- Function: ORBIT (P,lvar)
390
calcul l'orbite du polyno^me P en les variables de la liste lvar
391
sous l'action du groupe syme'trique de l'ensemble des variables
392
contenues dans la liste lvar.
394
orbit(a*x+b*y,[x,y]);
396
[A Y + B X, B Y + A X]
397
orbit(2*x+x^2,[x,y]);
401
voir e'galement : MULTI_ORBIT pour l'action d'un produit de groupes
402
syme'triques sur un polyno^me.
405
- Function: PART2CONT (ppart,lvar)
406
passe de la forme partitionne'e a` la forme contracte'e d'un
407
polyno^me syme'trique. La forme contracte'e est rendue avec les
408
variables contenues dans lvar.
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.
420
- Function: PARTPOL (psym, lvar)
421
psym est un polyno^me syme'trique en les variables de lvar. Cette
422
fonction rame`ne sa repre'sentation partitionne'e.
424
PARTPOL(-a*(x+y)+3*x*y,[x,y]);
426
[[3, 1, 1], [- a, 1, 0]]
428
Autres fonctions de changements de repre'sentations :
430
CONTRACT, CONT2PART, EXPLOSE, PART2CONT, TCONTRACT, TPARTPOL.
433
- Function: PERMUT (l)
434
rame`ne la liste des permutations de la liste l.
437
- Function: POLYNOME2ELE (p,x)
438
donne la liste l=[n,e1,...,en] ou` n est le degre' du polyno^me p
439
en la variable x et ei la i-ieme fonction syme'trique
440
e'le'mentaire des racines de p.
442
POLYNOME2ELE(x^7-14*x^5 + 56*x^3 - 56*X + 22,x);
444
[7, 0, - 14, 0, 56, 0, - 56, - 22]
446
ELE2POLYNOME( [7, 0, - 14, 0, 56, 0, - 56, - 22],x);
449
X - 14 X + 56 X - 56 X + 22
451
la re'ciproque : ELE2POLYNOME(l,x)
454
- Function: PRODRAC (L,K)
455
L est une liste contenant les fonctions syme'triques
456
e'le'mentaires sur un ensemble A. PRODRAC rend le polyno^me dont
457
les racines sont les produits K a` K des e'le'ments de A.
460
- Function: PUI (pui,sym,lvar)
461
de'compose le polyno^me syme'trique sym, en les variables
462
contenues de la liste lvar, par les fonctions puissances contenues
463
dans la liste pui. Si le premier e'le'ment de pui est donne' ce
464
sera le cardinal de l'alphabet sinon on prendra le degre' du
465
polyno^me sym. Si il manque des valeurs a` la liste pui, des
466
valeurs formelles du type "pi" sont rajoute'es. Le polyno^me sym
467
peut etre donne' sous 3 formes diffe'rentes : contracte'e (PUI
468
doit alors valoir 1 sa valeur par de'faut), partitionne'e (PUI
469
doit alors valoir 3) ou e'tendue (i.e. le polyno^me en entier)
470
(PUI doit alors valoir 2). La fonction ELEM s'utilise de la me^me
476
PUI([3,a,b],u*x*y*z,[x,y,z]);
480
---------------------
483
autres fonctions de changements de bases :
485
COMP2ELE, COMP2PUI, ELE2COMP, ELE2PUI, ELEM, MON2SCHUR,
486
MULTI_ELEM, MULTI_PUI, PUI2COMP, PUI2ELE, PUIREDUC,
490
- Function: PUI2COMP (N,LPUI)
491
rend la liste des N premie`res fonctions comple`tes (avec en te^te
492
le cardinal) en fonction des fonctions puissance donne'es dans la
493
liste LPUI. Si la liste LPUI est vide le cardinal est N sinon
494
c'est son premier e'le'ment similaire a` COMP2ELE et COMP2PUI.
506
a1 + p2 a1 + 3 p2 a1 + 2 p3
507
[2, a1, --------, --------------------]
510
Autres fonctions de changements de bases :
513
COMP2ELE, COMP2PUI, ELE2COMP, ELE2PUI, ELEM,
514
MON2SCHUR, MULTI_ELEM, MULTI_PUI, PUI, PUI2ELE,
515
PUIREDUC, SCHUR2COMP.
518
- Function: PUI2ELE (N,LPUI)
519
re'alise le passage des fonctions puissances aux fonctions
520
syme'triques e'le'mentaires. Si le drapeau PUI2ELE est GIRARD, on
521
re'cupe`re la liste des fonctions syme'triques e'le'mentaires de 1
522
a` N, et s'il est e'gal a` CLOSE, la Nie`me fonction syme'trique
525
Autres fonctions de changements de bases :
528
COMP2ELE, COMP2PUI, ELE2COMP, ELE2PUI, ELEM,
529
MON2SCHUR, MULTI_ELEM, MULTI_PUI, PUI, PUI2COMP,
530
PUIREDUC, SCHUR2COMP.
533
- Function: PUI2POLYNOME (X,LPUI)
534
calcul le polyno^me en X dont les fonctions puissances des racines
535
sont donne'es dans la liste LPUI.
537
(C6) polynome2ele(x^3-4*x^2+5*x-1,x);
541
(C8) pui2polynome(x,%);
543
(D8) X - 4 X + 5 X - 1
545
Autres fonctions a` voir :
547
POLYNOME2ELE, ELE2POLYNOME.
550
- Function: PUI_DIRECT (ORBITE,[lvar1,...,lvarn],[d1,d2,...,dn])
551
Soit f un polynome en n blocs de variables lvar1,...,lvarn. Soit
552
ci le nombre de variables dans lvari . Et SC le produit des n
553
groupes syme'triques de degre' c1,...,cn. Ce groupe agit
554
naturellement sur f La liste ORBITE est l'orbite, note'e SC(f), de
555
la fonction f sous l'action de SC. (Cette liste peut e^tre obtenue
556
avec la fonction : MULTI_ORBIT). Les di sont des entiers tels que
557
c1<=d1, c2<=d2,...,cn<=dn. Soit SD le produit des groupes
558
syme'triques S_d1 x S_d2 x...x S_dn.
560
la fonction pui_direct rame`ne les N premie`res fonctions
561
puissances de SD(f) de'duites des fonctions puissances de SC(f)
562
ou` N est le cardinal de SD(f).
564
Le re'sultat est rendue sous forme multi-contracte'e par rapport a
565
SD. i.e. on ne conserve qu'un e'le'ment par orbite sous l'action
570
PUI_DIRECT(MULTI_ORBIT(a*x+b*y, L), L,[2,2]);
573
[a x, 4 a b x y + a x ]
575
PUI_DIRECT(MULTI_ORBIT(a*x+b*y, L), L,[3,2]);
578
[2 A X, 4 A B X Y + 2 A X , 3 A B X Y + 2 A X ,
581
12 A B X Y + 4 A B X Y + 2 A X ,
584
10 A B X Y + 5 A B X Y + 2 A X ,
586
3 3 3 3 4 2 4 2 5 5 6 6
587
40 A B X Y + 15 A B X Y + 6 A B X Y + 2 A X ]
589
PUI_DIRECT([y+x+2*c, y+x+2*b, y+x+2*a],[[x,y],[a,b,c]],[2,3]);
592
[3 x + 2 a, 6 x y + 3 x + 4 a x + 4 a ,
595
9 x y + 12 a x y + 3 x + 6 a x + 12 a x + 8 a ]
598
PUI_DIRECT([y+x+2*c, y+x+2*b, y+x+2*a],[[x,y],[a,b,c]],[3,4]);
601
- Function: PUIREDUC (N,LPUI)
602
LPUI est une liste dont le premier e'le'ment est un entier M.
603
PUIREDUC donne les N premie`res fonctions puissances en fonction
610
[2, p1, p2, -------------]
615
- Function: RESOLVANTE (p,x,f,[x1,...,xd])
616
calcule la re'solvante du polyno^me p de la variable x et de
617
degre' n >= d par la fonction f exprime'e en les variables
618
x1,...,xd. Il est important pour l'efficacite' des calculs de ne
619
pas mettre dans la liste [x1,...,xd] les variables n'intervenant
620
pas dans la fonction de transformation f.
622
Afin de rendre plus efficaces les calculs on peut mettre des
623
drapeaux a` la variable RESOLVANTE afin que des algorithmes
624
ade'quates soient utilise's :
626
Si la fonction f est unitaire :
627
* un polyno^me d'une variable,
633
* une somme de variables,
635
* syme'trique en les variables qui apparaissent dans son
638
* un produit de variables,
640
* la fonction de la re'solvante de Cayley (utilisable qu'en
643
(x1*x2+x2*x3+x3*x4+x4*x5+x5*x1 -
644
(x1*x3+x3*x5+x5*x2+x2*x4+x4*x1))^2
647
le drapeau de RESOLVANTE pourra e^tre respectivement :
664
resolvante(x^7-14*x^5 + 56*x^3 - 56*X + 22,x,x^3-1,[x]);
667
Y + 7 Y - 539 Y - 1841 Y + 51443 Y + 315133 Y + 376999 Y
671
resolvante : lineaire;
672
resolvante(x^4-1,x,x1+2*x2+3*x3,[x1,x2,x3]);
675
Y + 80 Y + 7520 Y + 1107200 Y + 49475840 Y + 344489984 Y
678
resolvante : general;
679
resolvante(x^4-1,x,x1+2*x2+3*x3,[x1,x2,x3]);
680
resolvante(x^4-1,x,x1+2*x2+3*x3,[x1,x2,x3,x4])
681
direct([x^4-1],x,x1+2*x2+3*x3,[[x1,x2,x3]]);
684
resolvante(x^4-1,x,x1+x2+x3,[x1,x2,x3);
689
resolvante:symetrique$
691
resolvante(x^4-1,x,x1+x2+x3,[x1,x2,x3]);
695
resolvante(x^4+x+1,x,x1-x2,[x1,x2]);
697
Y + 8 Y + 26 Y - 112 Y + 216 Y + 229
700
resolvante(x^4+x+1,x,x1-x2,[x1,x2]);
703
Y + 8 Y + 26 Y - 112 Y + 216 Y + 229
707
resolvante(x^7-7*x+3,x,x1*x2*x3,[x1,x2,x3]);
710
Y - 7 Y - 1029 Y + 135 Y + 7203 Y - 756 Y + 1323 Y
713
+ 352947 Y - 46305 Y - 2463339 Y + 324135 Y - 30618 Y
719
- 40246444 Y + 282225202 Y - 44274492 Y + 155098503 Y
725
+ 2893401 Y - 171532242 Y + 6751269 Y + 2657205 Y - 94517766 Y
728
- 3720087 Y + 26040609 Y + 14348907
730
resolvante:symetrique$
731
resolvante(x^7-7*x+3,x,x1*x2*x3,[x1,x2,x3]);
734
Y - 7 Y - 1029 Y + 135 Y + 7203 Y - 756 Y + 1323 Y
737
+ 352947 Y - 46305 Y - 2463339 Y + 324135 Y - 30618 Y
743
- 40246444 Y + 282225202 Y - 44274492 Y + 155098503 Y
749
+ 2893401 Y - 171532242 Y + 6751269 Y + 2657205 Y - 94517766 Y
752
- 3720087 Y + 26040609 Y + 14348907
755
resolvante(x^5-4*x^2+x+1,x,a,[]);
757
" resolvante de Cayley "
760
X - 40 X + 4080 X - 92928 X + 3772160 X + 37880832 X + 93392896
761
Pour la re'solvante de Cayley, les 2 derniers arguments sont
762
neutres et le polyno^me donne' en entre'e doit ne'cessairement
767
RESOLVANTE_BIPARTITE, RESOLVANTE_PRODUIT_SYM,
768
RESOLVANTE_UNITAIRE, RESOLVANTE_ALTERNEE1, RESOLVANTE_KLEIN,
769
RESOLVANTE_KLEIN3, RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE.
772
- Function: RESOLVANTE_ALTERNEE1 (p,x)
773
calcule la transformation de p(x) de degre n par la fonction
774
$\prod_{1\leq i<j\leq n-1} (x_i-x_j)$.
778
RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
779
RESOLVANTE , RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
780
RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE, RESOLVANTE_BIPARTITE.
783
- Function: RESOLVANTE_BIPARTITE (p,x)
784
calcule la transformation de p(x) de degre n (n pair) par la
785
fonction $x_1x_2\ldots x_{n/2}+x_{n/2+1}\ldotsx_n$
789
RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
790
RESOLVANTE , RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
791
RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE,RESOLVANTE_ALTERNEE1
793
RESOLVANTE_BIPARTITE(x^6+108,x);
796
Y - 972 Y + 314928 Y - 34012224 Y
799
RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
800
RESOLVANTE, RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
801
RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE,
802
RESOLVANTE_ALTERNEE1.
805
- Function: RESOLVANTE_DIEDRALE (p,x)
806
calcule la transformation de p(x) par la fonction x_1x_2+x_3x_4.
808
resolvante_diedrale(x^5-3*x^4+1,x);
811
X - 21 X - 81 X - 21 X + 207 X + 1134 X + 2331 X - 945 X
814
- 4970 X - 18333 X - 29079 X - 20745 X - 25326 X - 697
817
RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
818
RESOLVANTE_ALTERNEE1, RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
819
RESOLVANTE_VIERER, RESOLVANTE.
822
- Function: RESOLVANTE_KLEIN (p,x)
823
calcule la transformation de p(x) par la fonction x_1x_2x_4+x_4.
827
RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
828
RESOLVANTE_ALTERNEE1, RESOLVANTE, RESOLVANTE_KLEIN3,
829
RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE.
832
- Function: RESOLVANTE_KLEIN3 (p,x)
833
calcule la transformation de p(x) par la fonction x_1x_2x_4+x_4.
837
RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
838
RESOLVANTE_ALTERNEE1, RESOLVANTE_KLEIN, RESOLVANTE,
839
RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE.
842
- Function: RESOLVANTE_PRODUIT_SYM (p,x)
843
calcule la liste toutes les r\'esolvantes produit du polyn\^ome
846
resolvante_produit_sym(x^5+3*x^4+2*x-1,x);
849
[Y + 3 Y + 2 Y - 1, Y - 2 Y - 21 Y - 31 Y - 14 Y - Y
855
+ 3 Y + 1, Y + 3 Y + 14 Y - Y - 14 Y - 31 Y - 21 Y - 2 Y
858
+ 1, Y - 2 Y - 3 Y - 1, Y - 1]
862
esolvante(x^5+3*x^4+2*x-1,x,a*b*c,[a,b,c]);
865
Y + 3 Y + 14 Y - Y - 14 Y - 31 Y - 21 Y - 2 Y + 1
867
RESOLVANTE, RESOLVANTE_UNITAIRE,
868
RESOLVANTE_ALTERNEE1, RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
869
RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE.
872
- Function: RESOLVANTE_UNITAIRE (p,q,x)
873
calcule la r\'esolvante du polyn\^ome p(x) par le polyn\^ome q(x).
876
RESOLVANTE_PRODUIT_SYM, RESOLVANTE,
877
RESOLVANTE_ALTERNEE1, RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
878
RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE.
881
- Function: RESOLVANTE_VIERER (p,x)
882
calcule la transformation de p(x) par la fonction x_1x_2-x_3x_4.
885
RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
886
RESOLVANTE_ALTERNEE1, RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
887
RESOLVANTE, RESOLVANTE_DIEDRALE.
890
- Function: SCHUR2COMP (P,l_var)
891
: P est un polyno^mes en les variables contenues dans la liste
892
l_var. Chacune des variables de l_var repre'sente une fonction
893
syme'trique comple`te. On repre'sente dans l_var la ie`me fonction
894
syme'trique comple`te comme la concate'nation de la lettre h avec
895
l'entier i : hi. Cette fonction donne l'expression de P en
896
fonction des fonctions de Schur.
898
SCHUR2COMP(h1*h2-h3,[h1,h2,h3]);
904
SCHUR2COMP(a*h3,[h3]);
910
- Function: SOMRAC (liste,K)
911
la liste contient les fonctions syme'triques e'le'mentaires d'un
912
polyno^me P . On calcul le polyno^mes dont les racines sont les
913
sommes K a` K distinctes des racines de P.
915
Voir e'galement PRODRAC.
918
- Function: TCONTRACT (pol,lvar)
919
teste si le polyno^me pol est syme'trique en les variables
920
contenues dans la liste lvar. Si oui il rend une forme contracte'e
921
comme la fonction CONTRACT.
923
Autres fonctions de changements de repre'sentations :
925
CONTRACT, CONT2PART, EXPLOSE, PART2CONT, PARTPOL, TPARTPOL.
928
- Function: TPARTPOL (pol,lvar)
929
teste si le polyno^me pol est syme'trique en les variables
930
contenues dans la liste lvar. Si oui il rend sa forme partionne'e
931
comme la fonction PARTPOL.
933
Autres fonctions de changements de repre'sentations :
935
CONTRACT, CONT2PART, EXPLOSE, PART2CONT, PARTPOL, TCONTRACT.
938
- Function: TREILLIS (n)
939
rame`ne toutes les partitions de poids n.
943
[[4], [3, 1], [2, 2], [2, 1, 1], [1, 1, 1, 1]]
945
Voir e'galement : LGTREILLIS, LTREILLIS et TREINAT.
949
TREINAT(part) rame`ne la liste des partitions infe'rieures a` la
950
partition part pour l'ordre naturel.
955
treinat([1,1,1,1,1]);
957
[[5], [4, 1], [3, 2], [3, 1, 1], [2, 2, 1], [2, 1, 1, 1],
963
[[5], [4, 1], [3, 2]]
964
Voir e'galement : LGTREILLIS, LTREILLIS et TREILLIS.
967
File: maxima.info, Node: Groups, Next: Runtime Environment, Prev: Symmetries, Up: Top
12
File: maxima.info, Node: Introduction to Ctensor, Next: Definitions for Ctensor, Prev: Ctensor, Up: Ctensor
14
Introduction to Ctensor
15
=======================
17
- Component Tensor Manipulation Package. To use the CTENSR package,
18
type TSETUP(); which automatically loads it from within MACSYMA (if it
19
is not already loaded) and then prompts the user to input his
20
coordinate system. The user is first asked to specify the dimension of
21
the manifold. If the dimension is 2, 3 or 4 then the list of
22
coordinates defaults to [X,Y], [X,Y,Z] or [X,Y,Z,T] respectively.
23
These names may be changed by assigning a new list of coordinates to
24
the variable OMEGA (described below) and the user is queried about this.
25
** Care must be taken to avoid the coordinate names conflicting with
26
other object definitions **. Next, the user enters the metric either
27
directly or from a file by specifying its ordinal position. As an
28
example of a file of common metrics, see TENSOR;METRIC FILE. The metric
29
is stored in the matrix LG. Finally, the metric inverse is computed and
30
stored in the matrix UG. One has the option of carrying out all
31
calculations in a power series. A sample protocol is begun below for
32
the static, spherically symmetric metric (standard coordinates) which
33
will be applied to the problem of deriving Einstein's vacuum equations
34
(which lead to the Schwarzschild solution) as an example. Many of the
35
functions in CTENSR will be displayed for the standard metric as
39
Enter the dimension of the coordinate system:
41
Do you wish to change the coordinate names?
44
1. Enter a new metric?
45
2. Enter a metric from a file?
46
3. Approximate a metric with a Taylor series?
49
Is the matrix 1. Diagonal 2. Symmetric 3. Antisymmetric 4. General
54
Row 3 Column 3: X^2*SIN(Y)^2;
57
Enter functional dependencies with the DEPENDS function or 'N' if none
59
Do you wish to see the metric?
70
Do you wish to see the metric inverse?
74
File: maxima.info, Node: Definitions for Ctensor, Prev: Introduction to Ctensor, Up: Ctensor
76
Definitions for Ctensor
77
=======================
79
- Function: CHR1 ([i,j,k])
80
yields the Christoffel symbol of the first kind via the definition
84
To evaluate the Christoffel symbols for a particular metric, the
85
variable METRIC must be assigned a name as in the example under
89
- Function: CHR2 ([i,j],[k])
90
yields the Christoffel symbol of the second kind defined by the
93
CHR2([i,j],[k]) = g (g + g - g )/2
96
- Function: CHRISTOF (arg)
97
A function in the CTENSR (Component Tensor Manipulation) package.
98
It computes the Christoffel symbols of both kinds. The arg
99
determines which results are to be immediately displayed. The
100
Christoffel symbols of the first and second kinds are stored in
101
the arrays LCS[i,j,k] and MCS[i,j,k] respectively and defined to
102
be symmetric in the first two indices. If the argument to CHRISTOF
103
is LCS or MCS then the unique non-zero values of LCS[i,j,k] or
104
MCS[i,j,k], respectively, will be displayed. If the argument is ALL
105
then the unique non-zero values of LCS[i,j,k] and MCS[i,j,k] will
106
be displayed. If the argument is FALSE then the display of the
107
elements will not occur. The array elements MCS[i,j,k] are defined
108
in such a manner that the final index is contravariant.
111
- Function: COVDIFF (exp,v1,v2,...)
112
yields the covariant derivative of exp with respect to the
113
variables vi in terms of the Christoffel symbols of the second
114
kind (CHR2). In order to evaluate these, one should use
118
- Function: CURVATURE ([i,j,k],[h])
119
Indicial Tensor Package) yields the Riemann curvature tensor in
120
terms of the Christoffel symbols of the second kind (CHR2). The
121
following notation is used:
123
CURVATURE = - CHR2 - CHR2 CHR2 + CHR2
124
i j k i k,j %1 j i k i j,k
129
- Variable: DIAGMETRIC
130
default:[] - An option in the CTENSR (Component Tensor
131
Manipulation) package. If DIAGMETRIC is TRUE special routines
132
compute all geometrical objects (which contain the metric tensor
133
explicitly) by taking into consideration the diagonality of the
134
metric. Reduced run times will, of course, result. Note: this
135
option is set automatically by TSETUP if a diagonal metric is
140
default:[4] - An option in the CTENSR (Component Tensor
141
Manipulation) package. DIM is the dimension of the manifold with
142
the default 4. The command DIM:N; will reset the dimension to any
143
other integral value.
146
- Function: EINSTEIN (dis)
147
A function in the CTENSR (Component Tensor Manipulation) package.
148
EINSTEIN computes the mixed Einstein tensor after the Christoffel
149
symbols and Ricci tensor have been obtained (with the functions
150
CHRISTOF and RICCICOM). If the argument dis is TRUE, then the
151
non-zero values of the mixed Einstein tensor G[i,j] will be
152
displayed where j is the contravariant index. RATEINSTEIN[TRUE]
153
if TRUE will cause the rational simplification on these
154
components. If RATFAC[FALSE] is TRUE then the components will also
158
- Function: LRICCICOM (dis)
159
A function in the CTENSR (Component Tensor Manipulation) package.
160
LRICCICOM computes the covariant (symmetric) components LR[i,j] of
161
the Ricci tensor. If the argument dis is TRUE, then the non-zero
162
components are displayed.
165
- Function: MOTION (dis)
166
A function in the CTENSR (Component Tensor Manipulation) package.
167
MOTION computes the geodesic equations of motion for a given
168
metric. They are stored in the array EM[i]. If the argument dis
169
is TRUE then these equations are displayed.
173
default:[] - An option in the CTENSR (Component Tensor
174
Manipulation) package. OMEGA assigns a list of coordinates to the
175
variable. While normally defined when the function TSETUP is
176
called, one may redefine the coordinates with the assignment
177
OMEGA:[j1,j2,...jn] where the j's are the new coordinate names. A
178
call to OMEGA will return the coordinate name list. Also see
182
- Function: RIEMANN (dis)
183
A function in the CTENSR (Component Tensor Manipulation) Package.
184
RIEMANN computes the Riemann curvature tensor from the given
185
metric and the corresponding Christoffel symbols. If dis is TRUE,
186
the non-zero components R[i,j,k,l] will be displayed. All the
187
indicated indices are covariant. As with the Einstein tensor,
188
various switches set by the user control the simplification of the
189
components of the Riemann tensor. If RATRIEMAN[TRUE] is TRUE then
190
rational simplification will be done. If RATFAC[FALSE] is TRUE then
191
each of the components will also be factored.
194
- Function: TRANSFORM
195
- The TRANSFORM command in the CTENSR package has been renamed to
199
- Function: TSETUP ()
200
A function in the CTENSR (Component Tensor Manipulation) package
201
which automatically loads the CTENSR package from within MACSYMA
202
(if it is not already loaded) and then prompts the user to make
203
use of it. Do DESCRIBE(CTENSR); for more details.
206
- Function: TTRANSFORM (matrix)
207
A function in the CTENSR (Component Tensor Manipulation) package
208
which will perform a coordinate transformation upon an arbitrary
209
square symmetric matrix. The user must input the functions which
210
define the transformation. (Formerly called TRANSFORM.)
214
File: maxima.info, Node: Series, Next: Number Theory, Prev: Ctensor, Up: Top
974
* Definitions for Groups::
977
File: maxima.info, Node: Definitions for Groups, Prev: Groups, Up: Groups
979
Definitions for Groups
980
======================
982
- Function: TODD_COXETER (relations,subgroup)
983
Find the order of G/H where G is the Free Group modulo RELATIONS,
984
and H is the subgroup of G generated by SUBGROUP. SUBGROUP is an
985
optional argument, defaulting to []. In doing this it produces a
986
multiplication table for the right action of G on G/H, where the
987
cosets are enumerated [H,Hg2,Hg3,...] This can be seen internally
988
in the $todd_coxeter_state. The multiplication tables for the
989
variables are in table:todd_coxeter_state[2] Then table[i] gives
990
the table for the ith variable. mulcoset(coset,i) :=
991
table[varnum][coset];
995
(C1) symet(n):=create_list(if (j - i) = 1 then (p(i,j))^^3 else
996
if (not i = j) then (p(i,j))^^2 else p(i,i) , j,1,n-1,i,1,j);
998
(D1) SYMET(N) := CREATE_LIST(IF J - I = 1 THEN P(I, J)
1001
ELSE (IF NOT I = J THEN P(I, J)
1002
ELSE P(I, I)), J, 1, N - 1, I, 1, J)
1003
(C2) p(i,j) :=concat(x,i).concat(x,j);
1004
(D2) P(I, J) := CONCAT(X, I) . CONCAT(X, J)
1007
(D3) [X1 . X1, (X1 . X2) , X2 . X2, (X1 . X3) , (X2 . X3) ,
1010
X3 . X3, (X1 . X4) , (X2 . X4) , (X3 . X4) , X4 . X4]
1011
(C4) todd_coxeter(d3);
1015
(C5) todd_coxeter(d3,[x1]);
1019
(C6) todd_coxeter(d3,[x1,x2]);
1023
(C7) table:todd_coxeter_state[2]$
1024
(C8) table:todd_coxeter_state[2]$
1026
(D9) {Array: FIXNUM #(0 2 1 3 7 6 5 4 8 11 17 9 12 14 13 20
1027
16 10 18 19 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)}
1029
Note only the elements 1 thru 20 of this array d9 are meaningful.
1030
table[1][4] = 7 indicates coset4.var1 = coset7
1034
File: maxima.info, Node: Runtime Environment, Next: Miscellaneous Options, Prev: Groups, Up: Top
1041
* Introduction for Runtime Environment::
1043
* Definitions for Runtime Environment::
1046
File: maxima.info, Node: Introduction for Runtime Environment, Next: INTERRUPTS, Prev: Runtime Environment, Up: Runtime Environment
1048
Introduction for Runtime Environment
1049
====================================
1051
- A file which is loaded automatically for you when you start up a
1052
MACSYMA, to customize MACSYMA for you. It is possible to have an init
1053
file written as a BATCH file of macsyma commands. We hope this makes
1054
it easier for users to customize their macsyma environment. Here is an
1057
setup_autoload("share\;bessel",j0,j1,jn);
1058
showtime:all; comgrind:true;
1059
The strange looking comment at the top of the file
1060
"/*-*-macsyma-*-*/" tells that it is a macsyma-language file. Also:
1061
"SETUP_AUTOLOAD" can be used to make functions in BATCH files
1062
autoloading, meaning that you can then use (for instance, here) the
1063
functions J0, J1 and Jn from the BESSEL package directly because when
1064
you use the function the BESSEL package will be loaded in for you
1065
automatically. If the second file name in the argument to
1066
SETUP_AUTOLOAD is not specified (the preferred usage) then the standard
1067
search for second file names of "FASL", "TRLISP", and ">" is done.
1070
File: maxima.info, Node: INTERRUPTS, Next: Definitions for Runtime Environment, Prev: Introduction for Runtime Environment, Up: Runtime Environment
1075
- There are several ways the user can interrupt a MACSYMA
1076
computation, usually with a control character. Do
1077
DESCRIBE(CHARACTERS); for details. MACSYMA will also be interrupted if
1078
^Z (control-Z) is typed, as this will exit back to Unix shell level
1079
Usually Control-C interrupts the computation putting you in a break
1080
loop. Typing :t should give you top level maxima back again.
1083
File: maxima.info, Node: Definitions for Runtime Environment, Prev: INTERRUPTS, Up: Runtime Environment
1085
Definitions for Runtime Environment
1086
===================================
1088
- Function: ALARMCLOCK (arg1, arg2, arg3)
1089
will execute the function of no arguments whose name is arg3 when
1090
the time specified by arg1 and arg2 elapses. If arg1 is the atom
1091
"TIME" then arg3 will be executed after arg2 seconds of real-time
1092
has elapsed while if arg1 is the atom "RUNTIME" then arg3 will be
1093
executed after arg2 milliseconds of cpu time. If arg2 is negative
1094
then the arg1 timer is shut off.
1098
takes any number of arguments which are the same as the replies to
1099
the "run out of space" question. It increases allocations
1100
accordingly. E.g. If the user knows initially that his problem
1101
will require much space, he can say ALLOC(4); to allocate the
1102
maximum amount initially. See also the DYNAMALLOC switch.
1105
- Function: BUG ("message")
1106
similar to mail, sends a message to MACSYMA Mail. This may be
1107
used for reporting bugs or suspected bugs in MACSYMA. Expressions
1108
may be included by referring to them, outside double quotes, e.g.
1109
BUG("I am trying to integrate",D3,"but it asks for more list space.
1110
What should I do?");
1113
- Function: CLEARSCREEN ()
1114
Clears the screen. The same as typing control-L.
1117
- Function: CONTINUE
1118
- Control-^ typed while in MACSYMA causes LISP to be entered. The
1119
user can now type any LISP S-expression and have it evaluated.
1120
Typing (CONTINUE) or ^G (control-G) causes MACSYMA to be
1125
Exits from MACSYMA to the operating system level. (The same as
1126
control-Z on ITS, or control-C on Tops-20.)
1129
- Function: DELFILE (file-specification)
1130
will delete the file given by the file-specification (i.e.
1131
firstname, secondname, device, user) from the given device.
1134
- Function: DISKFREE ()
1135
With no args or an arg of TRUE, will return the total number of
1136
free blocks of disk space in the system. With an arg of 0, 1, or
1137
13, it will return the number of free blocks of diskspace on the
1138
respective disk pack. With an arg of SECONDARY or PRIMARY, it will
1139
return the total number of free blocks of disk space on the
1140
secondary or primary disk pack respectively.
1143
- declaration: FEATURE
1144
- A nice adjunct to the system. STATUS(FEATURE) gives you a list
1145
of system features. At present the list for MC is: MACSYMA,
1146
NOLDMSG, MACLISP, PDP10, BIGNUM, FASLOAD, HUNK, FUNARG, ROMAN,
1147
NEWIO, SFA, PAGING, MC, and ITS. Any of these "features" may be
1148
given as a second argument to STATUS(FEATURE,...); If the
1149
specified feature exists, TRUE will be returned, else FALSE.
1150
Note: these are system features, and not really "user related".
1151
See also DESCRIBE(features); for more user-oriented features.
1154
- Function: FEATUREP (a,f)
1155
attempts to determine whether the object a has the feature f on
1156
the basis of the facts in the current data base. If so, it
1157
returns TRUE, else FALSE. See DESCRIBE(FEATURES); .
1158
(C1) DECLARE(J,EVEN)$
1159
(C2) FEATUREP(J,INTEGER);
1163
types out a verbose description of the state of storage and stack
1164
management in the Macsyma. This simply utilizes the Lisp ROOM
1165
function. ROOM(FALSE) - types out a very terse description,
1166
containing most of the same information.
1169
- Function: STATUS (arg)
1170
will return miscellaneous status information about the user's
1171
MACSYMA depending upon the arg given. Permissible arguments and
1172
results are as follows:
1173
* TIME - the time used so far in the computation.
1175
* DAY - the day of the week.
1177
* DATE - a list of the year, month, and day.
1179
* DAYTIME - a list of the hour, minute, and second.
1181
* RUNTIME - accumulated cpu time times the atom "MILLISECONDS"
1182
in the current MACSYMA.
1184
* REALTIME - the real time (in sec) elapsed since the user
1185
started up his MACSYMA.
1187
* GCTIME - the garbage collection time used so far in the
1188
current computation.
1190
* TOTALGCTIME - gives the total garbage collection time used in
1193
* FREECORE - the number of blocks of core your MACSYMA can
1194
expand before it runs out of address space. (A block is
1195
1024 words.) Subtracting that value from 250*BLOCKS (the
1196
maximum you can get on MC) tells you how many blocks of
1197
core your MACSYMA is using up. (A MACSYMA with no "fix"
1198
file starts at approx. 191 blocks.)
1200
* FEATURE - gives you a list of system features. At present the
1201
list for MC is: MACSYMA, NOLDMSG, MACLISP, PDP10, BIGNUM,
1202
FASLOAD, HUNK, FUNARG, ROMAN, NEWIO, SFA, PAGING, MC, and
1203
ITS. Any of these "features" may be given as a second
1204
argument to STATUS(FEATURE,...); If the specified feature
1205
exists, TRUE will be returned, else FALSE. Note: these
1206
are system features, and not really "user related".
1207
For information about your files, see the FILEDEFAULTS(); command.
1210
- Function: TIME (Di1, Di2, ...)
1211
gives a list of the times in milliseconds taken to compute the Di.
1212
(Note: the Variable SHOWTIME, default: [FALSE], may be set to
1213
TRUE to have computation times printed out with each D-line.)
1217
File: maxima.info, Node: Miscellaneous Options, Next: Rules and Patterns, Prev: Runtime Environment, Up: Top
1219
Miscellaneous Options
1220
*********************
1224
* Introduction to Miscellaneous Options::
1226
* Definitions for Miscellaneous Options::
1229
File: maxima.info, Node: Introduction to Miscellaneous Options, Next: SHARE, Prev: Miscellaneous Options, Up: Miscellaneous Options
1231
Introduction to Miscellaneous Options
1232
=====================================
1234
In this section various options are discussed which have a global
1235
effect on the operation of maxima. Also various lists such as the
1236
list of all user defined functions, are discussed.
1239
File: maxima.info, Node: SHARE, Next: Definitions for Miscellaneous Options, Prev: Introduction to Miscellaneous Options, Up: Miscellaneous Options
1244
- The SHARE directory on MC or on a DEC20 version of MACSYMA
1245
contains programs, information files, etc. which are considered to be
1246
of interest to the MACSYMA community. Most files on SHARE; are not
1247
part of the MACSYMA system per se and must be loaded individually by
1248
the user, e.g. LOADFILE("array");. Many files on SHARE; were
1249
contributed by MACSYMA users. Do PRINTFILE(SHARE,USAGE,SHARE); for
1250
more details and the conventions for contributing to the SHARE
1251
directory. For an annotated "table of contents" of the directory, do:
1252
PRINTFILE(SHARE,>,SHARE);
221
* Introduction to Series::
222
* Definitions for Series::
225
File: maxima.info, Node: Introduction to Series, Next: Definitions for Series, Prev: Series, Up: Series
227
Introduction to Series
228
======================
230
Maxima contains functions `Taylor' and `Powerseries' for finding the
231
series of differentiable functions. It also has tools such as `Nusum'
232
capable of finding the closed form of some series. Operations such as
233
addition and multiplication work as usual on series. This section
234
presents the various global various variables which control the
238
File: maxima.info, Node: Definitions for Series, Prev: Introduction to Series, Up: Series
240
Definitions for Series
241
======================
243
- Variable: CAUCHYSUM
244
default: [FALSE] - When multiplying together sums with INF as
245
their upper limit, if SUMEXPAND is TRUE and CAUCHYSUM is set to
246
TRUE then the Cauchy product will be used rather than the usual
247
product. In the Cauchy product the index of the inner summation
248
is a function of the index of the outer one rather than varying
249
independently. That is: SUM(F(I),I,0,INF)*SUM(G(J),J,0,INF)
250
becomes SUM(SUM(F(I)*G(J-I),I,0,J),J,0,INF)
253
- Function: DEFTAYLOR (function, exp)
254
allows the user to define the Taylor series (about 0) of an
255
arbitrary function of one variable as exp which may be a
256
polynomial in that variable or which may be given implicitly as a
257
power series using the SUM function. In order to display the
258
information given to DEFTAYLOR one can use POWERSERIES(F(X),X,0).
260
(%i1) DEFTAYLOR(F(X),X**2+SUM(X**I/(2**I*I!**2),
263
(%i2) TAYLOR(%E**SQRT(F(X)),X,0,4);
266
(%o2)/R/ 1 + X + -- + ------- + -------- + . . .
269
- Variable: MAXTAYORDER
270
default: [TRUE] - if TRUE, then during algebraic manipulation of
271
(truncated) Taylor series, TAYLOR will try to retain as many terms
272
as are certain to be correct.
275
- Function: NICEINDICES (expr)
276
will take the expression and change all the indices of sums and
277
products to something easily understandable. It makes each index
278
it can "I" , unless "I" is in the internal expression, in which
279
case it sequentially tries J,K,L,M,N,I0,I1,I2,I3,I4,... until it
283
- Variable: NICEINDICESPREF
284
default: [I,J,K,L,M,N] - the list which NICEINDICES uses to find
285
indices for sums and products. This allows the user to set the
286
order of preference of how NICEINDICES finds the "nice indices".
287
E.g. NICEINDICESPREF:[Q,R,S,T,INDEX]$. Then if NICEINDICES finds
288
that it cannot use any of these as indices in a particular
289
summation, it uses the first as a base to try and tack on numbers.
290
Here, if the list is exhausted, Q0, then Q1, etc, will be tried.
293
- Function: NUSUM (exp,var,low,high)
294
performs indefinite summation of exp with respect to var using a
295
decision procedure due to R.W. Gosper. exp and the potential
296
answer must be expressible as products of nth powers, factorials,
297
binomials, and rational functions. The terms "definite" and
298
"indefinite summation" are used analogously to "definite" and
299
"indefinite integration". To sum indefinitely means to give a
300
closed form for the sum over intervals of variable length, not
301
just e.g. 0 to inf. Thus, since there is no formula for the
302
general partial sum of the binomial series, NUSUM can't do it.
305
- Function: PADE (taylor-series,num-deg-bound,denom-deg-bound)
306
returns a list of all rational functions which have the given
307
taylor-series expansion where the sum of the degrees of the
308
numerator and the denominator is less than or equal to the
309
truncation level of the power series, i.e. are "best"
310
approximants, and which additionally satisfy the specified degree
311
bounds. Its first argument must be a univariate taylor-series;
312
the second and third are positive integers specifying degree
313
bounds on the numerator and denominator. PADE's first argument
314
can also be a Laurent series, and the degree bounds can be INF
315
which causes all rational functions whose total degree is less
316
than or equal to the length of the power series to be returned.
317
Total degree is num-degree + denom-degree. Length of a power
318
series is "truncation level" + 1 - minimum(0,"order of series").
320
(%i15) ff:taylor(1+x+x^2+x^3,x,0,3);
322
(%o15)/T/ 1 + X + X + X + . . .
327
(%i1) ff:taylor(-(83787*X^10-45552*X^9-187296*X^8
328
+387072*X^7+86016*X^6-1507328*X^5
329
+1966080*X^4+4194304*X^3-25165824*X^2
330
+67108864*X-134217728)
334
There is no rational function of degree 4 numerator/denominator,
335
with this power series expansion. You must in general have degree
336
of the numerator and degree of the denominator adding up to at
337
least the degree of the power series, in order to have enough
338
unknown coefficients to solve.
340
(%o26) [-(520256329*X^5-96719020632*X^4-489651410240*X^3
341
-1619100813312*X^2 -2176885157888*X-2386516803584)
342
/(47041365435*X^5+381702613848*X^4+1360678489152*X^3
344
+3370143559680*X+2386516803584)]
347
- Variable: POWERDISP
348
default: [FALSE] - if TRUE will cause sums to be displayed with
349
their terms in the reverse order. Thus polynomials would display
350
as truncated power series, i.e., with the lowest power first.
353
- Function: POWERSERIES (exp, var, pt)
354
generates the general form of the power series expansion for exp
355
in the variable var about the point pt (which may be INF for
356
infinity). If POWERSERIES is unable to expand exp, the TAYLOR
357
function may give the first several terms of the series.
358
VERBOSE[FALSE] - if TRUE will cause comments about the progress of
359
POWERSERIES to be printed as the execution of it proceeds.
361
(%i2) POWERSERIES(LOG(SIN(X)/X),X,0);
364
So we'll try again after applying the rule:
368
LOG(SIN(X)) = I ----------- dX
371
In the first simplification we have returned:
379
\ (- 1) 2 BERN(2 I1) X
380
> ------------------------------
384
(%o2) -------------------------------------
388
default: [FALSE] - if TRUE will cause extended rational function
389
expressions to display fully expanded. (RATEXPAND will also cause
390
this.) If FALSE, multivariate expressions will be displayed just
391
as in the rational function package. If PSEXPAND:MULTI, then
392
terms with the same total degree in the variables are grouped
396
- Function: REVERT (expression,variable)
397
Does reversion of Taylor Series. "Variable" is the variable the
398
original Taylor expansion is in. Do LOAD(REVERT) to access this
401
REVERT2(expression,variable,hipower)
402
also. REVERT only works on expansions around 0.
405
- Function: SRRAT (exp)
406
this command has been renamed to TAYTORAT.
409
- Function: TAYLOR (exp, var, pt, pow)
410
expands the expression exp in a truncated Taylor series (or
411
Laurent series, if required) in the variable var around the point
412
pt. The terms through (var-pt)**pow are generated. If exp is of
413
the form f(var)/g(var) and g(var) has no terms up to degree pow
414
then TAYLOR will try to expand g(var) up to degree 2*pow. If
415
there are still no non-zero terms TAYLOR will keep doubling the
416
degree of the expansion of g(var) until reaching pow*2**n where n
417
is the value of the variable TAYLORDEPTH[3]. If
418
MAXTAYORDER[FALSE] is set to TRUE, then during algebraic
419
manipulation of (truncated) Taylor series, TAYLOR will try to
420
retain as many terms as are certain to be correct. Do
421
EXAMPLE(TAYLOR); for examples.
422
TAYLOR(exp,[var1,pt1,ord1],[var2,pt2,ord2],...) returns a
423
truncated power series in the variables vari about the points pti,
424
truncated at ordi. PSEXPAND[FALSE] if TRUE will cause extended
425
rational function expressions to display fully expanded.
426
(RATEXPAND will also cause this.) If FALSE, multivariate
427
expressions will be displayed just as in the rational function
428
package. If PSEXPAND:MULTI, then terms with the same total degree
429
in the variables are grouped together. TAYLOR(exp, [var1, var2, .
430
. .], pt, ord) where each of pt and ord may be replaced by a list
431
which will correspond to the list of variables. that is, the nth
432
items on each of the lists will be associated together.
433
TAYLOR(exp, [x,pt,ord,ASYMP]) will give an expansion of exp in
434
negative powers of (x-pt). The highest order term will be
435
(x-pt)^(-ord). The ASYMP is a syntactic device and not to be
436
assigned to. See also the TAYLOR_LOGEXPAND switch for controlling
440
- Variable: TAYLORDEPTH
441
default: [3] - If there are still no non-zero terms TAYLOR will
442
keep doubling the degree of the expansion of g(var) until reaching
443
pow*2**n where n is the value of the variable TAYLORDEPTH[3].
446
- Function: TAYLORINFO (exp)
447
returns FALSE if exp is not a Taylor series. Otherwise, a list of
448
lists is returned describing the particulars of the Taylor
449
expansion. For example,
450
(%i3) TAYLOR((1-Y^2)/(1-X),X,0,3,[Y,A,INF]);
452
(%o3)/R/ 1 - A - 2 A (Y - A) - (Y - A)
454
+ (1 - A - 2 A (Y - A) - (Y - A) ) X
456
+ (1 - A - 2 A (Y - A) - (Y - A) ) X
458
+ (1 - A - 2 A (Y - A) - (Y - A) ) X
460
(%i4) TAYLORINFO(%o3);
461
(%o4) [[Y, A, INF], [X, 0, 3]]
463
- Function: TAYLORP (exp)
464
a predicate function which returns TRUE if and only if the
465
expression 'exp' is in Taylor series representation.
468
- Variable: TAYLOR_LOGEXPAND
469
default: [TRUE] controls expansions of logarithms in TAYLOR
470
series. When TRUE all log's are expanded fully so that
471
zero-recognition problems involving logarithmic identities do not
472
disturb the expansion process. However, this scheme is not always
473
mathematically correct since it ignores branch information. If
474
TAYLOR_LOGEXPAND is set to FALSE, then the only expansion of log's
475
that will occur is that necessary to obtain a formal power series.
478
- Variable: TAYLOR_ORDER_COEFFICIENTS
479
default: [TRUE] controls the ordering of coefficients in the
480
expression. The default (TRUE) is that coefficients of taylor
481
series will be ordered canonically.
484
- Function: TAYLOR_SIMPLIFIER
485
- A function of one argument which TAYLOR uses to simplify
486
coefficients of power series.
489
- Variable: TAYLOR_TRUNCATE_POLYNOMIALS
490
default: [TRUE] When FALSE polynomials input to TAYLOR are
491
considered to have infinite precison; otherwise (the default) they
492
are truncated based upon the input truncation levels.
495
- Function: TAYTORAT (exp)
496
converts exp from TAYLOR form to CRE form, i.e. it is like
497
RAT(RATDISREP(exp)) although much faster.
500
- Function: TRUNC (exp)
501
causes exp which is in general representation to be displayed as
502
if its sums were truncated Taylor series. E.g. compare
503
EXP1:X^2+X+1; with EXP2:TRUNC(X^2+X+1); . Note that IS(EXP1=EXP2);
507
- Function: UNSUM (fun,n)
508
is the first backward difference fun(n) - fun(n-1).
509
(%i1) G(P):=P*4^N/BINOMIAL(2*N,N);
512
(%o1) G(P) := ----------------
517
(%o2) ----------------
519
(%i3) NUSUM(%o2,N,0,N);
521
2 (N + 1) (63 N + 112 N + 18 N - 22 N + 3) 4 2
522
(%o3) ------------------------------------------------ - ------
523
693 BINOMIAL(2 N, N) 3 11 7
527
(%o4) ----------------
531
default: [FALSE] - if TRUE will cause comments about the progress
532
of POWERSERIES to be printed as the execution of it proceeds.
536
File: maxima.info, Node: Number Theory, Next: Symmetries, Prev: Series, Up: Top
543
* Definitions for Number Theory::
546
File: maxima.info, Node: Definitions for Number Theory, Prev: Number Theory, Up: Number Theory
548
Definitions for Number Theory
549
=============================
552
gives the Xth Bernoulli number for integer X. ZEROBERN[TRUE] if
553
set to FALSE excludes the zero BERNOULLI numbers. (See also BURN).
556
- Function: BERNPOLY (v, n)
557
generates the nth Bernoulli polynomial in the variable v.
560
- Function: BFZETA (exp,n)
561
BFLOAT version of the Riemann Zeta function. The 2nd argument is
562
how many digits to retain and return, it's a good idea to request
563
a couple of extra. This function is available by doing
567
- Function: BGZETA (S, FPPREC)
568
BGZETA is like BZETA, but avoids arithmetic overflow errors on
569
large arguments, is faster on medium size arguments (say S=55,
570
FPPREC=69), and is slightly slower on small arguments. It may
571
eventually replace BZETA. BGZETA is available by doing
575
- Function: BHZETA (S,H,FPPREC)
576
gives FPPREC digits of
577
SUM((K+H)^-S,K,0,INF)
578
This is available by doing LOAD(BFFAC);.
581
- Function: BINOMIAL (X, Y)
582
the binomial coefficient X*(X-1)*...*(X-Y+1)/Y!. If X and Y are
583
integers, then the numerical value of the binomial coefficient is
584
computed. If Y, or the value X-Y, is an integer, the binomial
585
coefficient is expressed as a polynomial.
589
is like BERN(N), but without computing all of the uncomputed
590
Bernoullis of smaller index. So BURN works efficiently for large,
591
isolated N. (BERN(402) takes about 645 secs vs 13.5 secs for
592
BURN(402). BERN's time growth seems to be exponential, while
593
BURN's is about cubic. But if next you do BERN(404), it only
594
takes 12 secs, since BERN remembers all in an array, whereas
595
BURN(404) will take maybe 14 secs or maybe 25, depending on
596
whether MACSYMA needs to BFLOAT a better value of %PI.) BURN is
597
available by doing LOAD(BFFAC);. BURN uses an observation of WGD
598
that (rational) Bernoulli numbers can be approximated by
599
(transcendental) zetas with tolerable efficiency.
603
- This function is obsolete, see BFZETA.
607
converts exp into a continued fraction. exp is an expression
608
composed of arithmetic operators and lists which represent
609
continued fractions. A continued fraction a+1/(b+1/(c+...)) is
610
represented by the list [a,b,c,...]. a,b,c,.. must be integers.
611
Exp may also involve SQRT(n) where n is an integer. In this case
612
CF will give as many terms of the continued fraction as the value
613
of the variable CFLENGTH[1] times the period. Thus the default is
614
to give one period. (CF binds LISTARITH to FALSE so that it may
615
carry out its function.)
618
- Function: CFDISREP (list)
619
converts the continued fraction represented by list into general
621
(%i1) CF([1,2,-3]+[1,-2,1]);
632
- Function: CFEXPAND (x)
633
gives a matrix of the numerators and denominators of the
634
next-to-last and last convergents of the continued fraction x.
636
(%o1) [1, 1, 2, 1, 2, 1, 2, 1]
641
(%i3) %o2[1,2]/%o2[2,2],NUMER;
645
default: [1] controls the number of terms of the continued
646
fraction the function CF will give, as the value CFLENGTH[1] times
647
the period. Thus the default is to give one period.
651
- The Gamma function in the complex plane. Do LOAD(CGAMMA) to use
652
these functions. Functions Cgamma, Cgamma2, and LogCgamma2.
653
These functions evaluate the Gamma function over the complex plane
654
using the algorithm of Kuki, CACM algorithm 421. Calculations are
655
performed in single precision and the relative error is typically
656
around 1.0E-7; evaluation at one point costs less than 1 msec. The
657
algorithm provides for an error estimate, but the Macsyma
658
implementation currently does not use it. Cgamma is the general
659
function and may be called with a symbolic or numeric argument.
660
With symbolic arguments, it returns as is; with real floating or
661
rational arguments, it uses the Macsyma Gamma function; and for
662
complex numeric arguments, it uses the Kuki algorithm. Cgamma2 of
663
two arguments, real and imaginary, is for numeric arguments only;
664
LogCgamma2 is the same, but the log-gamma function is calculated.
665
These two functions are somewhat more efficient.
672
- Function: DIVSUM (n,k)
673
adds up all the factors of n raised to the kth power. If only one
674
argument is given then k is assumed to be 1.
677
- Function: EULER (X)
678
gives the Xth Euler number for integer X. For the
679
Euler-Mascheroni constant, see %GAMMA.
682
- Function: FACTORIAL (X)
683
The factorial function. FACTORIAL(X) = X! . See also
684
MINFACTORIAL and FACTCOMB. The factorial operator is !, and the
685
double factorial operator is !!.
689
the Xth Fibonacci number with FIB(0)=0, FIB(1)=1, and
690
FIB(-N)=(-1)^(N+1) *FIB(N). PREVFIB is FIB(X-1), the Fibonacci
691
number preceding the last one computed.
694
- Function: FIBTOPHI (exp)
695
converts FIB(n) to its closed form definition. This involves the
696
constant %PHI (= (SQRT(5)+1)/2 = 1.618033989). If you want the
697
Rational Function Package to know About %PHI do
698
TELLRAT(%PHI^2-%PHI-1)$ ALGEBRAIC:TRUE$ .
701
- Function: INRT (X,n)
702
takes two integer arguments, X and n, and returns the integer nth
703
root of the absolute value of X.
706
- Function: JACOBI (p,q)
707
is the Jacobi symbol of p and q.
710
- Function: LCM (exp1,exp2,...)
711
returns the Least Common Multiple of its arguments. Do
712
LOAD(FUNCTS); to access this function.
716
default: [489318] - the largest number which may be given to the
717
PRIME(n) command, which returns the nth prime.
720
- Function: MINFACTORIAL (exp)
721
examines exp for occurrences of two factorials which differ by an
722
integer. It then turns one into a polynomial times the other. If
723
exp involves binomial coefficients then they will be converted
724
into ratios of factorials.
729
(%i2) MINFACTORIAL(%);
734
- Function: PARTFRAC (exp, var)
735
expands the expression exp in partial fractions with respect to
736
the main variable, var. PARTFRAC does a complete partial fraction
737
decomposition. The algorithm employed is based on the fact that
738
the denominators of the partial fraction expansion (the factors of
739
the original denominator) are relatively prime. The numerators
740
can be written as linear combinations of denominators, and the
741
expansion falls out. See EXAMPLE(PARTFRAC); for examples.
744
- Function: PRIME (n)
745
gives the nth prime. MAXPRIME[489318] is the largest number
746
accepted as argument. Note: The PRIME command does not work in
747
maxima, since it required a large file of primes, which most users
748
do not want. PRIMEP does work however.
751
- Function: PRIMEP (n)
752
returns TRUE if n is a prime, FALSE if not.
755
- Function: QUNIT (n)
756
gives the principal unit of the real quadratic number field
757
SQRT(n) where n is an integer, i.e. the element whose norm is
758
unity. This amounts to solving Pell's equation A**2- n*B**2=1.
761
(%i2) EXPAND(%*(SQRT(17)-4));
764
- Function: TOTIENT (n)
765
is the number of integers less than or equal to n which are
766
relatively prime to n.
770
default: [TRUE] - if set to FALSE excludes the zero BERNOULLI
771
numbers. (See the BERN function.)
775
gives the Riemann zeta function for certain integer values of X.
779
default: [TRUE] - if FALSE, suppresses ZETA(n) giving coeff*%PI^n
784
File: maxima.info, Node: Symmetries, Next: Groups, Prev: Number Theory, Up: Top
791
* Definitions for Symmetries::