|
3.3.6 発展:代数的数体における多項式
Factorのような関数で多項式の因数分解をするとき,通常,得られる式の係数はすべてが有理数からなるものとする.ただし,オプション Extensionを設定することで係数の存在し得る領域を広げることが可能である.

代数的数体における多項式の因数分解
係数が有理数しか取れないものとすると,この多項式は因数分解できない.
In[1]:= Factor[1 + x^4]
Out[1]= 
係数に を使ってもよいものとすると,因数分解ができるようになる.
In[2]:= Factor[1 + x^4, Extension -> {Sqrt[2]}]
Out[2]= 
係数に を使ってもよいものとしても,因数分解できる.
In[3]:= Factor[1 + x^4, Extension -> {Sqrt[-1]}]
Out[3]= 
GaussianIntegers->Trueの条件指定は Extension->Sqrt[-1]に等しい.
In[4]:= Factor[1 + x^4, GaussianIntegers -> True]
Out[4]= 
と の両方を使ってよいものとすれば,この多項式も完全に因数分解できる.
In[5]:= Factor[1 + x^4, Extension -> {Sqrt[2], Sqrt[-1]}]
Out[5]= 
Expandを作用されると,もとの式が得られる.
In[6]:= Expand[%]
Out[6]= 

代数的数を係数とする因数分解
係数に を持つ多項式を例に使う.
In[7]:= t = Expand[(Sqrt[2] + x)^2]
Out[7]= 
Factorのデフォルト設定だと,因数分解してくれない.
In[8]:= Factor[t]
Out[8]= 
代数的数を係数に使うように指定すれば, を使い分解可能になる.
In[9]:= Factor[t, Extension -> Automatic]
Out[9]= 
他の多項式に関する関数も Factorと同じように機能する.つまり,特に条件を指定しなければ代数的数は単なるシンボルとして扱われ,係数が有理整数において操作可能である.それに対し, Extension->Automaticとオプション設定をすれば,係数の表現に代数的数を使った変形操作が可能となる.
デフォルト設定では,これらの多項式の間で約分はできない.
In[10]:= Cancel[t / (x^2 - 2)]
Out[10]= 
代数的数を許すと,約分できるようになる.
In[11]:= Cancel[t / (x^2 - 2), Extension->Automatic]
Out[11]= 
デフォルト設定では,共通な因数は見付けられない.
In[12]:= PolynomialLCM[t, x^2 - 2]
Out[12]= 
今度は,見付けられる.
In[13]:= PolynomialLCM[t, x^2 - 2, Extension->Automatic]
Out[13]= 
|