[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

17. 対称式

17.1 対称式に関する諸定義  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

17.1 対称式に関する諸定義

関数: COMP2PUI (n, l)
リストlで与えられる完全対称関数を0からnまでの基本対称関数に変換する。 もし、リストlがn+1よりも少ない要素であれば、形式的な変数で補完される。 リストlの先頭の元は、アルファベットの個所が存在するなら、その基数と なり、そうでなければnに等しく設定される。
 
(C10) ratsimp( COMP2PUI(3,[4,g]));

                                    2                   3
(D10)                [4, g, 2 H2 - g , 3 H3 - 3 g H2 + g ]

関数: CONT2PART (pc,lvar)
変数がlvarに含まれている縮約した形式pcに対し、多項式の分割を返す。
 
(C10) pc : 2*a^3*b*x^4*y + x^5$

(C11) CONT2PART(pc,[x,y]);

                                          3
(D11)                     [[1, 5, 0], [2 a  b, 4, 1]]

(* 訳者注:本来のマニュアルの記述

pc : 2*a^3*b*x^4*y + x^5$
CONT2PART(pc,[x,y]);
                         3
                    [[2 a  b, 4, 1], [1, 5]]

と分割の表記方法と順番が変更されている。

*)
表現を変更する他の関数は: CONTRACT, EXPLOSE, PART2CONT, PARTPOL, TCONTRACT, TPARTPOL.

関数: CONTRACT (psym,lvar)
多項式psymのlvarに含まれる変数に於ける縮約形式(つまり、対称群の作用による 軌道での同値類)を返す。関数EXPLOSEは逆操作を行う。関数TCONTRACTは多項式の 対称性も検証する。

 
(C13)  psym : EXPLOSE(2*a^3*b*x^4*y,[x,y,z]);
                         4       4      4           4      4     3
(D13)/R/   ((2 y + 2 z) x  + (2 y  + 2 z ) x + 2 z y  + 2 z  y) a  b
(C14) CONTRACT(psym,[x,y,z]);
                                       4  3
(D14)/R/                          2 y x  a  b

表現を変更する関数は: CONT2PART, EXPLOSE, PART2CONT, PARTPOL, TCONTRACT, TPARTPOL.

関数: DIRECT ([P1,...,Pn],y,f,[lvar1,...,lvarn])
変数lvar1,...,lvarnのリストで関数fに関連する直像(l'image directe) (M. GIUSTI, D.LAZARDとA. VALIBOUZE,ISSAC 1988,Romeを参照せよ)と 一変数yの多項式P1,...,Pnから計算する。関数fの貧弱さは計算で重要である。 ともあれ、もしfの式が一変数に依存していなければ、それは単に与えられた この変数が無効なだけでは無く、それが事実であるかどうかの計算を相当に 減らす事にもなる。
 
(C15) DIRECT([z^2  - e1* z + e2, z^2  - f1* z + f2], z, b*v + a*u, 
              [[u, v], [a, b]]);

2 
1 
                         2                2               2
(D15)/R/            f2 E1  - Y f1 E1 + (f1  - 4 f2) E2 + Y

(C16) expand(DIRECT([z^3-e1*z^2+e2*z-e3,z^2  - f1* z + f2], z, b*v + a*u,
              [[u, v], [a, b]]));

6 
5 
4 
3 
2 
1 
       6            5            4       2     4          2  4     2   2  4
(D16) Y  - 2 E1 f1 Y  - 6 E2 f2 Y  + 2 E1  f2 Y  + 2 E2 f1  Y  + E1  f1  Y

               3                  3       3        3          3  3
 + 9 E3 f1 f2 Y  + 5 E1 E2 f1 f2 Y  - 2 E1  f1 f2 Y  - 2 E3 f1  Y

             3  3       2   2  2       2      2  2     4   2  2
 - 2 E1 E2 f1  Y  + 9 E2  f2  Y  - 6 E1  E2 f2  Y  + E1  f2  Y

             2     2       2   2     2       2      2     2             4  2
 - 9 E1 E3 f1  f2 Y  - 6 E2  f1  f2 Y  + 3 E1  E2 f1  f2 Y  + 2 E1 E3 f1  Y

     2   4  2                 2         2         2            2      2
 + E2  f1  Y  - 27 E2 E3 f1 f2  Y + 9 E1  E3 f1 f2  Y + 3 E1 E2  f1 f2  Y

     3         2                3            2      3             2   3
 - E1  E2 f1 f2  Y + 15 E2 E3 f1  f2 Y - 2 E1  E3 f1  f2 Y - E1 E2  f1  f2 Y

             5          2   3                 3       3      3       3   3
 - 2 E2 E3 f1  Y - 27 E3  f2  + 18 E1 E2 E3 f2  - 4 E1  E3 f2  - 4 E2  f2

     2   2   3        2   2   2                2   2     3      2   2
 + E1  E2  f2  + 27 E3  f1  f2  - 9 E1 E2 E3 f1  f2  + E1  E3 f1  f2

     3   2   2       2   4                 4        2   6
 + E2  f1  f2  - 9 E3  f1  f2 + E1 E2 E3 f1  f2 + E3  f1


(* 訳者注:

原文では、

DIRECT([z^2  - e1* z + e2, z^2  - f1* z + f2], z, b*v + a*u, 
              [[u, v], [a, b]]);

                    2                         2           2
                   z  - e1 f1 z - 4 e2 f2 + e1  f2 + e2 f1

DIRECT([z^3-e1*z^2+e2*z-e3,z^2  - f1* z + f2], z, b*v + a*u,
              [[u, v], [a, b]]);

 6            5            4       2     4          2  4 
Y  - 2 E1 F1 Y  - 6 E2 F2 Y  + 2 E1  F2 Y  + 2 E2 F1  Y

    2   2  4 
+ E1  F1  Y  

              3                  3       3        3          3  3
+ 9 E3 F1 F2 Y  + 5 E1 E2 F1 F2 Y  - 2 E1  F1 F2 Y  - 2 E3 F1  Y

	    3  3       2   2  2       2      2  2     4   2  2
- 2 E1 E2 F1  Y  + 9 E2  F2  Y  - 6 E1  E2 F2  Y  + E1  F2  Y

	    2     2       2   2     2       2      2     2 
- 9 E1 E3 F1  F2 Y  - 6 E2  F1  F2 Y  + 3 E1  E2 F1  F2 Y

            4  2 
+ 2 E1 E3 F1  Y  

    2   4  2                 2         2         2   
+ E2  F1  Y  - 27 E2 E3 F1 F2  Y + 9 E1  E3 F1 F2  Y

         2      2  
+ 3 E1 E2  F1 F2  Y

    3         2                3            2      3      
- E1  E2 F1 F2  Y + 15 E2 E3 F1  F2 Y - 2 E1  E3 F1  F2 Y

       2   3     
- E1 E2  F1  F2 Y

	    5          2   3                 3       3      3
- 2 E2 E3 F1  Y - 27 E3  F2  + 18 E1 E2 E3 F2  - 4 E1  E3 F2

       3   3 
 - 4 E2  F2

    2   2   3        2   2   2                2   2     3      2   2
+ E1  E2  F2  + 27 E3  F1  F2  - 9 E1 E2 E3 F1  F2  + E1  E3 F1  F2

    3   2   2       2   4                 4        2   6
+ E2  F1  F2  - 9 E3  F1  F2 + E1 E2 E3 F1  F2 + E3  F1

*)

根が和a+uとなる多項式を返す。ここでaはz^2^e1*z+e2の根、uはz^2-f1*z+f2の 根である。

 
(C17) DIRECT([z^2  - e1* z + e2,z^2  - f1* z + f2], z,a+u,[[u],[a]]);

4 
3 
2 
1 
                         2    2                        2            2
(D17)/R/ (- Y f1 + f2 + Y ) E1  + ((f1 - 2 Y) E2 - Y f1  + (f2 + 3 Y ) f1

               3         2      2                      2        2   2
 - 2 Y f2 - 2 Y ) E1 + E2  + (f1  - 2 Y f1 - 2 f2 + 2 Y ) E2 + Y  f1

                  3         2      2       4
 + (- 2 Y f2 - 2 Y ) f1 + f2  + 2 Y  f2 + Y

DIRECTが取り得るフラグは:ELEMENTAIRESとPUISSANCES(デフォルト値)で、 対称式の分解を対称関数か羃乗和関数で計算するかを決める。

SYMの関数でこの関数を利用するのは:
 
MULTI_ORBIT (ORBITの時), PUI_DIRECT, MULTI_ELEM
(ELEMの時), MULTI_PUI (PUIの時), PUI2ELE, ELE2PUI
(もし、フラグDIRECTがPUISSANCESであれば)。

関数: ELE2COMP (m , l)
基本対称関数を完全関数に変換する。COMP2ELEとCOMP2PUIに似ている。

基底変更を行う他の関数は:

 
COMP2ELE, COMP2PUI, ELE2PUI, ELEM, MON2SCHUR, MULTI_ELEM,
MULTI_PUI, PUI, PUI2COMP, PUI2ELE, PUIREDUC, SCHUR2COMP.

関数: ELE2POLYNOME (l,z)
リストlに含まれる根の基本対称関数に対応するZの多項式を与える。 l=[n,e1,...,e1]、ここでnは多項式の次数で、eiは第i番の基本対称関数 である。

 
(C18) ele2polynome([2,e1,e2],z);
                                 2
(D18)/R/                        z  - E1 z + E2
(C19) polynome2ele(x^7-14*x^5  + 56*x^3  - 56*X + 22,x);
(D19)/R/             [7, 0, - 14, 0, 56, 0, 0, 56 X - 22]
(C20)  ele2polynome( [7, 0, - 14, 0, 56, 0, - 56, - 22],x);
                         7       5       3
(D20)/R/                x  - 14 x  + 56 x  - 56 x + 22

(* 訳者注:
polynome2eleはele2polynomeの逆で、与えられた多項式をele2polynomeが
受け取れる次数と基本対称関数の組合せのリストに変換する。尚、基本対称
関数と多項式方程式の係数の関係は所謂"解と係数の関係"である。
例えば二次多項式の根をa1,a2とすると、x^2-(a1+a2)*x+a1*a2=x^2-e1*xe2
より、e1=a1+a2,e2=e1*e2の関係がある。最初の例はその事を表現している。
又、最後の二つの例は解と係数の関係を表している。
*)
逆変換は: POLYNOME2ELE(p,z)

参照すべき他の関数は: POLYNOME2ELE, PUI2POLYNOME.

関数: ELE2PUI (m, l)
基本対称関数を完全関数に変換する。COMP2ELEとCOMP2PUIに似ている。

他の基底変換の関数は:
 
COMP2ELE, COMP2PUI, ELE2COMP, ELEM, MON2SCHUR, MULTI_ELEM,
MULTI_PUI, PUI, PUI2COMP, PUI2ELE, PUIREDUC, SCHUR2COMP.

関数: ELEM (ele,sym,lvar)
リストlvarに含まれる変数での対称式symをリストeleに含まれる基本対称関数で 分解する。もし、eleの第一元がアルファベットの部分の基数であれば、多項式 symの次数となる。もし、値がリストeleよりも少なければ、形式的な値として "ei"が追加される。多項式symは異なった三形式で与える事が可能である: 縮約(デフォルト値としてELEMは値1を取る)、分割(ELEMは値3を取る)、 面積(e'tendue)(つまり、多項式そのもの)(ELEMは値2を取る)。 関数PUIはこれと全く同じ使い方をする。

e1で基数3のアルファベットに関しては、第一の基本対称関数は値7を取り、 三変数での縮約形式(これらの変数には依存しない)での対称式を x^4-2*x*yとして基本対称関数で分解すると:
 
(C21) expand(ELEM([3,7],x^4-2*x*y,[x,y]));
                                     2
(D21)                    28 E3 + 2 E2  - 198 E2 + 2401
となる。

他の基底変換の関数は: COMP2ELE, COMP2PUI, ELE2COMP, ELE2PUI, MON2SCHUR, MULTI_ELEM, MULTI_PUI, PUI, PUI2COMP, PUI2ELE, PUIREDUC, SCHUR2COMP.

関数: EXPLOSE (pc,lvar)
縮約した形式のpcに対する対称式を返す。リストlvarは変数を含む。
 
(C22) EXPLOSE(a*x +1,[x,y,z]);
(D22)/R/                      a x + (y + z) a + 1

(* 訳者注:
縮約した形式a forme contracte'eとは、対称式に作用する対称群をその形式に
作用させる事で、元の対称式が復元可能なものである。上記の例題の様に縮約
した形式は単項式とは限らない。

更に、リストlvarに含まれる変数に関して対称な式を生成する為、lvarに含ま
れなかったものは係数として扱われる。
例えば、

(C23)  EXPLOSE(a*x^3*y^2*z*w^5,[x,y,z]);
              2    2     3       3    3     2     2  3    3  2        5
(D23)/R/ ((z y  + z  y) x  + (z y  + z  y) x  + (z  y  + z  y ) x) a w
(C24) EXPLOSE(a*x^3*y^2*z*w^5,[x,a]);
                                 3    3     5  2
(D24)/R/                     (a x  + a  x) w  y  z

*)

表現を変更する他の関数は: CONTRACT, CONT2PART, PART2CONT, PARTPOL, TCONTRACT, TPARTPOL.

関数: KOSTKA (part1,part2)
P. ESPERETによる評価式)分割part1とpart2に対するkostka数を計算する。

 
(C25) kostka([3,3,3],[2,2,2,1,1,1]);
(D25)                                  6

関数: LGTREILLIS (n,m)
重みnで長さmの分割を返す。

 
(C26) LGTREILLIS(4,2);
(D26)                          [[3, 1], [2, 2]]

(* 訳者注:
長さ(深さ)kの重み(整数)nの分割とは、整数の列[n1,n2,...,nk]で、
n1+n2+...+nk=n, n1>=n2>=...>=nk>0を満たすものである。
上の例では、深さが2、重みが4の為、n1+n2=4,n1>=n2となるのは
3,1と2,2の組しか無い。
*)
LTREILLIS, TREILLISとTREINATも参照せよ。

関数: LTREILLIS (n,m)
重みがnで長さがm以下の分割のリストを返す。
 
(C27) ltreillis(4,2);
(D27)                      [[4, 0], [3, 1], [2, 2]]

(* 訳者注:
この例の様に、重みが4で深さが2以下の分割は、先ず長さが1の場合は4自身。
2の場合はLGTREILLIS(4,2);の結果と同じ3,1と2,2となる。
このLTREILLISで返されるリストの元の長さは全て同じものであり、上の例の
様に、深さが短かいものに関しては0を追加している。
*)
LGTREILLIS, TREILLISとTREINATも参照せよ。

関数: MON2SCHUR (l)

リストlはSchur関数S_lを表現する: ここで、l=[i1,i2,...,iq]で、i1<=i2<=...<=iqとする。 Schur関数S_[i1,i2,...,iq]は無限行列(h_{i-j}) i>=1,j>=1の q成分の行とi1+1,i2+2,...,iq+q番の列で構成される小行列式である。

TREINATとKOSTKA関数が用いる単項式関数で、このSchur関数は記述されている。 その返される形式は変数x1,x2,...で縮約された表現による対称式である。
 
(C5) mon2schur([1,1,1]);
(D5)/R/                            X3 X2 X1
(C6) mon2schur([3]);
                              3        2
(D6)/R/                     X1  + X2 X1  + X3 X2 X1
(C7) MON2SCHUR([1,2]);
                                   2
(D7)/R/                       X2 X1  + 2 X3 X2 X1

三変数のこの場合には次で与えられる事を意味する:

 
   2 x1 x2 x3 + x1^2 x2 + x2^2 x1 + x1^2 x3 + x3^2 x1
    + x2^2 x3 + x3^2 x2

他の基底変更の関数は:
 
COMP2ELE, COMP2PUI, ELE2COMP, ELE2PUI, ELEM, MULTI_ELEM,
MULTI_PUI, PUI, PUI2COMP, PUI2ELE, PUIREDUC, SCHUR2COMP.

関数: MULTI_ELEM (l_elem,multi_pc,l_var)
リストl_varのリストに含まれる変数の群による多変数縮約形式multi_pcの 多変数対称式をl_elemに含まれる基本対称関数の群に分解する。

 
(C38) MULTI_ELEM([[2,e1,e2],[2,f1,f2]],a*x+a^2+x^3,[[x,y],[a,b]]);
                        3                        2
(D38)/R/              E1  + (- 3 E2 + f1) E1 + f1  - 2 f2

他の基底変更の関数は:

 
COMP2ELE, COMP2PUI, ELE2COMP, ELE2PUI, ELEM,
MON2SCHUR, MULTI_PUI, PUI, PUI2COMP, PUI2ELE,
PUIREDUC, SCHUR2COMP.

関数: MULTI_ORBIT (P,[lvar1, lvar2,...,lvarp])
Pはリストlvar1,lvar2,...,lvarpに含まれる変数の集合の多項式である。 この関数はこのp個のリストで表現される変数集合の対称群の積による多項式p への作用による軌道を返す。
 
(C39) MULTI_ORBIT(a*x+b*y,[[x,y],[a,b]]);
(D39)/R/                    [b y + x a, a y + b x]
(C40)  multi_orbit(x+y+2*a,[[x,y],[a,b,c]]);
(D40)/R/            [y + x + 2 c, y + x + 2 b, y + x + 2 a]
(C41) multi_orbit(x+2*y+3*a,[[x,y],[a,b,c]]);
(D41)/R/ [2 y + x + 3 c, 2 y + x + 3 b, 2 y + x + 3 a, y + 2 x + 3 c, 

                                                  y + 2 x + 3 b, 3 a + y + 2 x]

(* 訳者注:
(C12)の結果は最初の二つが[x,y]の取り換えた場合のx+2*y+3*aの結果。
最後の三つが[a,b,c]の取り換えによる結果である。(C10)の結果から判る様に、
返す値はリスト形式だが実体は集合で、重複する場合は削除されている。
*)
対称群のみの作用によるORBITも参照せよ。

関数: MULTI_PUI
これは関数ELEMに対する関数MULTI_ELEMと同様に関数PUIに対応するものである。

 
(C42) MULTI_PUI([[2,p1,p2],[2,t1,t2]],a*x+a^2+x^3,[[x,y],[a,b]]);
                                    3
                        3 P1 P2 - P1  + 2 t1 P1 + 2 t2
(D42)/R/                ------------------------------
                                      2

(* 訳者注:

原文での計算結果は
                                              3
                                       3 P1 P2   P1
                          T2 + P1 T1 + ------- - ---
                                          2       2

となっており、原文の誤り。
*)

関数: MULTINOMIAL (r,part)
ここでrは分割partの重みである。この関数は多変数単項式の係数を返す。 もし、分割partの成分がi1,i2,...,ikであれば、MULTINOMIALの結果は r!/(i1!i2!...ik!)である。

関数: MULTSYM (ppart1, ppart2,N)
N次の対称群の作用による剰余で同値類に分類されていないN変数の二つの対称式 の積を計算する。これらの多項式はそれらの分割で表現されている。 例えば、二つのx,yの対称式:3*(x+y) + 2*x*yと5*(x^2+y^2)の分割形式は各々 [[3,1],[2,1,1]]と[[5,2]]であり、それ故に、それらの積は:
 
(C43) MULTSYM([[3,1],[2,1,1]],[[5,2]],2);
(D43)/R/             [[10, 3, 1], [15, 3, 0], [15, 2, 1]]

(* 訳者注:
原文の答は[[10, 3, 1], [15, 2, 1], [15, 3, 0]]と順番が違うが問題は無い。
*)

つまり、10*(x^3*y+y^3*x)+15*(x^2*y +y^2*x) +15(x^3+y^3)である。

対称多項式の表現を変更する関数は: CONTRACT, CONT2PART, EXPLOSE, PART2CONT, PARTPOL, TCONTRACT, TPARTPOL.

関数: ORBIT (P,lvar)
多項式Pの変数をリストlvar、作用をリストlvarに含まれる変数集合の対称群で 軌道を計算する。

 
(C44) orbit(A*X+B*Y,[X,Y]);
(D44)/R/                    [A Y + B X, B Y + A X]
(C45) orbit(2*X+X^2,[X,Y]);
                               2         2
(D45)/R/                     [Y  + 2 Y, X  + 2 X]

多項式上の対称群の積の作用に関してはMULTU_ORBITも参照せよ。

関数: PART2CONT (ppart,lvar)
分割の形式を対称式の縮約形式に変換する。縮約形式はlvarに含まれる変数で 返される。

 
(C46)  PART2CONT([[2*a^3*b,4,1]],[x,y]);
                                     3      4
(D46)/R/                          2 a  b y x

表現を変更する他の関数は: CONTRACT, CONT2PART, EXPLOSE, PARTPOL, TCONTRACT, TPARTPOL.

関数: PARTPOL (psym, lvar)
psymはlvarに含まれる変数について対称式である。この関数はその分割表現を返す。
 
(C47) PARTPOL(-a*(x+y)+3*x*y,[x,y]);
(D47)/R/                   [[3, 1, 1], [- a, 1, 0]]
(C48) PARTPOL(-a*(x+y)+3*x^2*y+3*x*y^2,[x,y]);
(D48)/R/                   [[3, 2, 1], [- a, 1, 0]]

表現を変更する他の関数は: CONTRACT, CONT2PART, EXPLOSE, PART2CONT, TCONTRACT, TPARTPOL.

関数: PERMUT (l)
リストlの置換のリストを返す。

関数: POLYNOME2ELE (p,x)
リストl=[n,e1,...,en]を返す。ここでnは多項式pの変数xでの次数、 eiはpの根のi番基本対称関数である。

 
(C49) POLYNOME2ELE(x^7-14*x^5  + 56*x^3  - 56*X + 22,x);
(D49)/R/             [7, 0, - 14, 0, 56, 0, 0, 56 X - 22]
(C50)  ELE2POLYNOME( [7, 0, - 14, 0, 56, 0, - 56, - 22],x);
                         7       5       3
(D50)/R/                x  - 14 x  + 56 x  - 56 x + 22

(* 訳者注:

代数学の基本定理によって、実数係数の多項式はn個の解を持つ。ここで
根をa1,a2,..,anとすると多項式は(x-a1)*...*(x-an)に分解される。
この多項式を展開すると、今度は
x^n-(-1)^n*(a1+a2+..+an)*x^(n-1)+(-1)^n*(a1*a2+...)*x^(n-2)+(-1)^n*a1*a2*..*an
となる。i番目の基本対称式eiは、この多項式のx^(n-i)の係数になる。
この命令では単にその係数をリストで与えている。
*)

この逆変換はELE2POLYNOME(l,x)である。

関数: PRODRAC (L,K)
Lは集合A上の基本対称関数を含むリストである。PRODRACは多項式を返し、 その多項式の根はAの元であるKを生成するものである。

関数: PUI (pui,sym,lvar)
リストlvarに含まれる変数での対称式symをリストpuiに含まれる羃乗和関数に 分解する。もし、puiの第一元がアルファベットで表記されるものの基数で あったとすれば、多項式symの次数を取る。もし、リストpuiに対して値が 欠けていれば、形式的な値の"pi"が追加される。多項式symは以下の3個の 異った形式で与えられる事が可能である:縮約(デフォルト値で、PUIは値として 1を取る)、分割(PUIは値として3を取る)、そして面積(つまり、多項式そのまま) (PUIは値として2を取る)。関数ELEMも同様である。
 
(C10) PUI;

(D10)                                  1

(C11) ratsimp(PUI([3,a,b],u*x*y*z,[x,y,z]));

                                              3
                             (2 P3 - 3 a b + a ) u
(D11)                        ---------------------
                                       6

他の基底変換の関数は:

 
COMP2ELE, COMP2PUI, ELE2COMP, ELE2PUI, ELEM, MON2SCHUR,
MULTI_ELEM, MULTI_PUI, PUI2COMP, PUI2ELE, PUIREDUC,
SCHUR2COMP.

関数: PUI2COMP (N,LPUI)
リストLPUIで与えられた羃乗和関数に対して、N個の完全関数のリスト (先頭は基数)を返す。もし、LPUIが空であれば、基数はNとなり、 そうでなければ、先頭の要素はCOMP2ELEとCOMP2PUIと同じになる。
 
(C53) PUI2COMP(2,[]);
                                         2
                                       P1  + P2
(D53)/R/                       [2, P1, --------]
                                          2
(C54) PUI2COMP(3,[2,a1]);
                              2         3
                            A1  + P2  A1  + 3 P2 A1 + 2 P3
(D54)/R/            [2, A1, --------, --------------------]
                               2               6
(C55) ratsimp(PUI2COMP(3,[2,a1]));
                                   2                     3
                            P2 + A1   2 P3 + 3 A1 P2 + A1
(D55)               [2, A1, --------, --------------------]
                               2               6

他の基底変換の関数は:
 
COMP2ELE, COMP2PUI, ELE2COMP, ELE2PUI, ELEM,
MON2SCHUR, MULTI_ELEM, MULTI_PUI, PUI, PUI2ELE,
PUIREDUC, SCHUR2COMP.

関数: PUI2ELE (N,LPUI)
羃乗和関数を基本対称関数に変換する。もし、フラグPUI2ELEがGIRARDであれば、 1からNまでの基本対称関数のリストを返し、フラグがCLOSEであれば、基本対称 関数は無い。

他の基底変換の関数は:

 
COMP2ELE, COMP2PUI, ELE2COMP, ELE2PUI, ELEM,
MON2SCHUR, MULTI_ELEM, MULTI_PUI, PUI, PUI2COMP,
PUIREDUC, SCHUR2COMP.

関数: PUI2POLYNOME (X,LPUI)
リストLPUIに含まれる根の羃乗和関数のXに於ける多項式を計算する。

 
(C56) polynome2ele(X^3-4*X^2+5*X-1,X);
(D56)/R/                         [3, 4, 5, 1]
(C57) ele2pui(3,%);
(D57)/R/                         [3, 4, 6, 7]
(C58) pui2polynome(X,%);
                               3      2
(D58)/R/                      X  - 4 X  + 5 X - 1

他の参照すべき関数は: POLYNOME2ELE, ELE2POLYNOME.

関数: PUI_DIRECT (ORBITE,[lvar1,...,lvarn],[d1,d2,...,dn])

fを変数lvar1,...,lvarnのn個のブロックの多項式とする。ciをlvariに 含まれる変数の数とする。次にSCは次数c1,...,cnのn対称群の積とする。 この群はfに自然に作用する。リストORBITEは軌道であり、SC(f)はSCによる 関数fへの作用を現わす。(このリストは関数:MULTI_ORBITとともに使える。) diはc1<=d1,c2<=d2,...,cn<=dnを満す項である。それ故、SDは対称群の積 S_d1 x S_d2 x ... x S_dnとなる。

関数PUI_DIRECTはSC(F)の羃乗和関数を演繹したSD(f)のN個の羃乗和関数である。 ここでNはSD(f)の基数である。その結果はSDに対する比によって、多変数縮約 形式で返される。つまり、SDの作用による軌道で要素は保たれない。)

 
(C8)  L:[[x,y],[a,b]]$
(C9) PUI_DIRECT(MULTI_ORBIT(a*x+b*y, L), L,[2,2]);

2 
1 
                                              2  2
(D9)/R/                    [x a, 4 b x a y + x  a ]
(C10)  PUI_DIRECT(MULTI_ORBIT(a*x+b*y, L), L,[3,2]);

6 
5 
4 
3 
2 
1 
                                2  2       2  2        3  3
(D10)/R/ [2 x a, 4 b x a y + 2 x  a , 3 b x  a  y + 2 x  a , 

    2  2  2  2        3  3        4  4
12 b  x  a  y  + 4 b x  a  y + 2 x  a , 

    2  3  3  2        4  4        5  5
10 b  x  a  y  + 5 b x  a  y + 2 x  a , 

    3  3  3  3       2  4  4  2        5  5        6  6
40 b  x  a  y  + 15 b  x  a  y  + 6 b x  a  y + 2 x  a ]

(C11) PUI_DIRECT([y+x+2*c, y+x+2*b, y+x+2*a],[[x,y],[a,b,c]],[2,3]);

3 
2 
1 
                                2              2
(D11)/R/ [3 x + 2 a, 6 x y + 3 x  + 4 a x + 4 a , 

                                2                  3        2       2        3
                            (9 x  + 12 a x) y + 3 x  + 6 a x  + 12 a  x + 8 a ]
(C12) PUI_DIRECT([y+x+2*c, y+x+2*b, y+x+2*a],[[x,y],[a,b,c]],[3,4]);

(* 訳者注:
(C12)の結果は長いので、非力な計算機では実行しない方が良いでしょう。
*)

関数: PUIREDUC (N,LPUI)
LPUIは一つのリストであり、その第一成分がMである。PUIREDUCはM次の関数 に対するN個の羃乗和関数を与える。
 
(C10) RATSIMP(PUIREDUC(3,[2]));

                                                  3
                                       3 P1 P2 - P1
(D10)                      [2, P1, P2, -------------]
                                             2

関数: RESOLVANTE (p,x,f,[x1,...,xd])
変数がxで次数n>=dの多項式pの終結式を関数fで計算する。 変換関数fで影響を与えないない変数のリスト[x1,...,xd]で設定しない 事が計算の効率を上げる為に重要である。 計算効率の向上の為に、変数RESOLVANTEに対するフラグを適切なアルゴリズム が使われる様に設定する事が可能である:

もし、関数fがunitaireであれば:

RESOLVANTEの取り得るフラグは:

 
resolvante:unitaire;
resolvante(x^7-14*x^5  + 56*x^3  - 56*X + 22,x,x^3-1,[x]);

  7      6        5         4          3           2
Y  + 7 Y  - 539 Y  - 1841 Y  + 51443 Y  + 315133 Y  + 376999 Y

 + 125253

(* 訳者注:
私のmaxima-5.6環境では、Xを含む多項式となっている。結果を見ている
とunitatireではXを1と置くらしいのだが、それが反映されていない。
*)

(C15) resolvante : lineaire;
(D15)                              LINEAIRE
(C16) resolvante(x^4-1,x,x1+2*x2+3*x3,[x1,x2,x3]);

" resolvante lineaire " 
24 
23 
22 
21 
20 
19 
18 
17 
16 
15 
14 
13 
12 
11 
10 
9 
8 
7 
6 
5 
4 
3 
2 
1 
          24       20         16            12             8              4
(D16)/R/ Y   + 80 Y   + 7520 Y   + 1107200 Y   + 49475840 Y  + 344489984 Y

                                                                    + 655360000


resolvante : general;
resolvante(x^4-1,x,x1+2*x2+3*x3,[x1,x2,x3]);
resolvante(x^4-1,x,x1+2*x2+3*x3,[x1,x2,x3,x4]);
direct([x^4-1],x,x1+2*x2+3*x3,[[x1,x2,x3]]);
も同様である。

(C25) resolvante:lineaire$
(C26) resolvante(x^4-1,x,x1+x2+x3,[x1,x2,x3]);

" resolvante lineaire " 
4 
3 
2 
1 
                                     4
(D26)/R/                            Y  - 1


(C27) resolvante:symetrique$
(C28) resolvante(x^4-1,x,x1+x2+x3,[x1,x2,x3]);

" resolvante symetrique " 
1 
2 
3 
4 
                                     4
(D28)/R/                            Y  - 1

(C31) resolvante(x^4+x+1,x,x1-x2,[x1,x2]);

" resolvante symetrique " 
1 
2 
3 
4 
5 
6 
                                  6      2
(D31)/R/                         Y  - 4 Y  - 1
(C32) resolvante:alternee$
(C33) resolvante(x^4+x+1,x,x1-x2,[x1,x2]);

" resolvante alternee " 
12 
10 
8 
6 
4 
2 
                   12      8       6        4        2
(D33)/R/          Y   + 8 Y  + 26 Y  - 112 Y  + 216 Y  + 229
(C34) resolvante:produit;
(D34)                               PRODUIT
(C35) resolvante(x^7-7*x+3,x,x1*x2*x3,[x1,x2,x3]);

" resolvante produit " 
          35      33         29        28         27        26         24
(D35)/R/ Y   - 7 Y   - 1029 Y   + 135 Y   + 7203 Y   - 756 Y   + 1323 Y

           23          22            21           20          19           18
 + 352947 Y   - 46305 Y   - 2463339 Y   + 324135 Y   - 30618 Y   - 453789 Y

             17              15             14              12             11
 - 40246444 Y   + 282225202 Y   - 44274492 Y   + 155098503 Y   + 12252303 Y

            10              9            8            7             6
 + 2893401 Y   - 171532242 Y  + 6751269 Y  + 2657205 Y  - 94517766 Y

            5             3
 - 3720087 Y  + 26040609 Y  + 14348907

(C36) resolvante:symetrique$
(C37)  resolvante(x^7-7*x+3,x,x1*x2*x3,[x1,x2,x3]);

" resolvante symetrique " 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
          35      33         29        28         27        26         24
(D37)/R/ Y   - 7 Y   - 1029 Y   + 135 Y   + 7203 Y   - 756 Y   + 1323 Y

           23          22            21           20          19           18
 + 352947 Y   - 46305 Y   - 2463339 Y   + 324135 Y   - 30618 Y   - 453789 Y

             17              15             14              12             11
 - 40246444 Y   + 282225202 Y   - 44274492 Y   + 155098503 Y   + 12252303 Y

            10              9            8            7             6
 + 2893401 Y   - 171532242 Y  + 6751269 Y  + 2657205 Y  - 94517766 Y

            5             3
 - 3720087 Y  + 26040609 Y  + 14348907
(C38) resolvante:cayley$
(C39) resolvante(x^5-4*x^2+x+1,x,a,[]);

" resolvante de Cayley " 
;; Loading file /usr/local/maxima/sym/resolcayley.lsp ...
;; Loading of file /usr/local/maxima/sym/resolcayley.lsp is finished.
         6       5         4          3            2
(D39)/R/ X  - 40 X  + 4080 X  - 92928 X  + 3772160 X  + 37880832 X + 93392896


Cayleyの終結式については、二つの最後の引数が中性で、与えられた 多項式はその次数が5である事がデフォルトとして必要である。

以下も参照せよ:

 
RESOLVANTE_BIPARTITE, RESOLVANTE_PRODUIT_SYM,
RESOLVANTE_UNITAIRE, RESOLVANTE_ALTERNEE1, RESOLVANTE_KLEIN, 
RESOLVANTE_KLEIN3, RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE. 

関数: RESOLVANTE_ALTERNEE1 (p,x)
関数$\prod_{1\leq i<j\leq n-1} (x_i-x_j)$による次数nの多項式p(x) の変換を計算する。

以下も参照せよ:

 
RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
RESOLVANTE , RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE, RESOLVANTE_BIPARTITE.

関数: RESOLVANTE_BIPARTITE (p,x)
関数$x_1x_2\ldots x_{n/2}+x_{n/2+1}\ldotsx_n$による次数n(n個の対)の 関数p(x)の変換を計算する。

以下も参照せよ:

 
RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
RESOLVANTE , RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE,RESOLVANTE_ALTERNEE1
 
(C11) RESOLVANTE_BIPARTITE(x^6+108,x);

10 
9 
8 
7 
6 
5 
4 
3 
2 
1 
                     10        8           6             4
(D11)               y   - 972 y  + 314928 y  - 34012224 y

以下も参照せよ:

 
RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
RESOLVANTE, RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE,
RESOLVANTE_ALTERNEE1.

関数: RESOLVANTE_DIEDRALE (p,x)
関数x_1x_2+x_3x_4によるp(x)の変換を計算する。

 
(C11) resolvante_diedrale(x^5-3*x^4+1,x);

       15       12       11       10        9         8         7        6
(D11) x   - 21 x   - 81 x   - 21 x   + 207 x  + 1134 x  + 2331 x  - 945 x

                             5          4          3          2
                     - 4970 x  - 18333 x  - 29079 x  - 20745 x  - 25326 x - 697

以下も参照せよ:

 
RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
RESOLVANTE_ALTERNEE1, RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
RESOLVANTE_VIERER, RESOLVANTE.

関数: RESOLVANTE_KLEIN (p,x)
関数x_1x_2_x4+x_4によるp(x)の変換を計算する。

以下も参照せよ:

 
RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
RESOLVANTE_ALTERNEE1, RESOLVANTE, RESOLVANTE_KLEIN3,
RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE.

関数: RESOLVANTE_KLEIN3 (p,x)
関数x_1x_2x_4+x_4によるp(x)の変換を計算する。

以下も参照せよ:
 
RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
RESOLVANTE_ALTERNEE1, RESOLVANTE_KLEIN, RESOLVANTE,
RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE.

関数: RESOLVANTE_PRODUIT_SYM (p,x)
多項式p(x)の生成する全ての終結式を計算する。

 
(C11) resolvante_produit_sym(x^5+3*x^4+2*x-1,x);

        5      4             10      8       7       6       5    4       3
(D11) [Y  + 3 Y  + 2 Y - 1, Y   - 2 Y  - 21 Y  - 31 Y  - 14 Y  - Y  + 14 Y

      2       10      8       7    6       5       4       3      2
 + 3 Y  + 1, Y   + 3 Y  + 14 Y  - Y  - 14 Y  - 31 Y  - 21 Y  - 2 Y  + 1, 

 5      4
Y  - 2 Y  - 3 Y - 1, Y - 1]
(C12) resolvante:produit$

(C13) resolvante(x^5+3*x^4+2*x-1,x,a*b*c,[a,b,c]);


" resolvante produit " 
           10      8       7    6       5       4       3      2
(D13)     Y   + 3 Y  + 14 Y  - Y  - 14 Y  - 31 Y  - 21 Y  - 2 Y  + 1

以下も参照せよ:
 
RESOLVANTE, RESOLVANTE_UNITAIRE,
RESOLVANTE_ALTERNEE1, RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE.

関数: RESOLVANTE_UNITAIRE (p,q,x)
多項式q(x)による多項式p(x)の終結式を計算する。

以下も参照せよ:
 
RESOLVANTE_PRODUIT_SYM, RESOLVANTE,
RESOLVANTE_ALTERNEE1, RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
RESOLVANTE_VIERER, RESOLVANTE_DIEDRALE.

関数: RESOLVANTE_VIERER (p,x)
関数x_1x_2-x_3x_4によるp(x)の変換を計算する。

以下も参照せよ:
 
RESOLVANTE_PRODUIT_SYM, RESOLVANTE_UNITAIRE,
RESOLVANTE_ALTERNEE1, RESOLVANTE_KLEIN, RESOLVANTE_KLEIN3,
RESOLVANTE, RESOLVANTE_DIEDRALE.

関数: SCHUR2COMP (P,l_var)
: Pをリストl_varに含まれる変数での多項式とする。l_varの各変数は完全対称 関数を表現する。l_varでi番目の完全対称関数を文字hと添字iの結合:hiで 表現する。この関数はPのSchur関数による表現を与える。

 
  SCHUR2COMP(h1*h2-h3,[h1,h2,h3]);

 				    s	  
				     1, 2

 SCHUR2COMP(a*h3,[h3]);
 				      s  a
				       3
(* 訳者注:maxima-5.6で動作せず。*)

関数: SOMRAC (liste,K)
listeは多項式Pの基本対称関数を含む。これは多項式を計算し、その多項式の根は Pの根と異なるKに対するKの和である。

PRODRACも参照せよ。

関数: TCONTRACT (pol,lvar)
多項式polがリストlvarに含まれる変数に於いて対称であるかどうか検証する。 対称式であれば、関数CONTRACTを用いて縮約した形式を返す。
 
(C32)  TCONTRACT (2*x*y+(x+y)*z^2,[x,y]);

                                    2
(D32)                            x z  + 2 x y
(C33) TCONTRACT (2*x*y+(x+y)*z^2,[x,y,z]);

(D33)                         manque des monomes

他の表現を変更する関数は: CONTRACT, CONT2PART, EXPLOSE, PART2CONT, PARTPOL, TPARTPOL。

関数: TPARTPOL (pol,lvar)
多項式polがリストlvarに含まれる変数で対称であるかどうか検査する。 対称式であれば、関数PARTPOLを用いた分割形式を返す。

他の表現を変更する関数は: CONTRACT, CONT2PART, EXPLOSE, PART2CONT, PARTPOL, TCONTRACT.

関数: TREILLIS (n)
重みnの全ての分割を返す。

 
(C10) treillis(4);

(D10)           [[4], [3, 1], [2, 2], [2, 1, 1], [1, 1, 1, 1]]

LGTREILLIS, LTREILLISとTREINATも参照せよ。

関数: TREINAT
TREINAT(part) 自然な順序での分割partよりも小さな分割のリストを返す。
 
(C10) treinat([5]);

(D10)                                [[5]]
(C11) treinat([1,1,1,1,1]);

(D11) [[5], [4, 1], [3, 2], [3, 1, 1], [2, 2, 1], [2, 1, 1, 1], [1, 1, 1, 1, 1]]
(C12) treinat([3,2]);

(D12)                        [[5], [4, 1], [3, 2]]

(* 訳者注:
通常の分割の順序と逆か?
*)
LGTREILLIS,LTREILLISとTREILLISも参照せよ。


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Hiroshi Yokota on September, 16 2002 using texi2html