next up previous
Next: 多項式環(Dom::DistributedPolynomial, Dom::Polynomial) Up: 多項式(poly) Previous: 1変数多項式の(余りのある)割り算(divide)

多項式の因数分解(factor)

多項式の因数分解には factor を使います。
 f:=poly((X+1)*(Y+1),Dom::IntegerMod(17));

            poly(X Y + X + Y + 1, [X, Y], Dom::IntegerMod(17))



 factor (f);

[1 mod 17, poly(Y + 1, [X, Y], Dom::IntegerMod(17)), 1,

   poly(X + 1, [X, Y], Dom::IntegerMod(17)), 1]

答えはリストになっていて、上の場合

$\displaystyle f=1 \times (Y+1)^1 \times (X+1)^1
$

ということを意味しています。 一般には、

$\displaystyle f=c
f_1^{e_1}
f_2^{e_2}
f_3^{e_3}
\dots
f_n^{e_n}
$

なら、

$\displaystyle [c, f_1,e_1,f_2,e_2,f_3,e_3,\dots f_n,e_n]
$

の形式で答えがかえってきます。

ただし体(あるいは多項式環)係数以外の多項式の因数分解はできません。

 f:=poly((X+1)*(Y+1),Dom::IntegerMod(18));

            poly(X Y + X + Y + 1, [X, Y], Dom::IntegerMod(18))


 factor (f);

Error: can only factor over fields or polynomial rings [faclib::domfact]
ごもっとも。

2008-11-15