|
3.3.1 多項式の変形操作

多項式の変形操作
単一変数からなる多項式を入力する.
In[1]:= (2 + 4 x^2)^2 (x - 1)^3
Out[1]= 
Expandを使い,積とベキを展開し,単純な和の形に書き直す.
In[2]:= t = Expand[ % ]
Out[2]= 
Factorで多項式を完全に因数分解する.
In[3]:= Factor[ t ]
Out[3]= 
FactorTermsを使い,多項式 tのすべての項に共通な因数をカッコの外に取り出す.
In[4]:= FactorTerms[ t ]
Out[4]= 
同じ多項式でも,さまざまな形に書かれる.そのうちの3つの標準的な形が関数 Expand, FactorTermsと Factorで得られる. Expandは,多項式の持つすべての積を展開し,式を単純な項の和の形でまとめ直す. FactorTermsは,すべての項に共通な因子でまとめ直す.また, Factorは,なるべく小さい次数の因数に分解する.
複数の変数の多項式については,変数のどれか1つを主要な変数とし,その変数について式を書き直すことが考えられる. Collect[poly, x]は, xを主変数とみたてて,多変数の多項式を xのベキ乗項の和の形に書き直す.
2つの変数を持つ多項式を例に使う.
In[5]:= Expand[ (1 + 2x + y)^3 ]
Out[5]= 
xを主変数とし多項式に Collectを作用させる.
In[6]:= Collect[ %, x ]
Out[6]= 
主変数を複数指定した上で Collectを使う.すると,指定した変数について多項式をまとめ直してくれる.
In[7]:= Collect[ Expand[ (1 + x + 2y + 3z)^3 ], {x, y} ]
Out[7]= 

制約付きの多項式の展開
xを含まない部分は展開しないようにする.
In[8]:= Expand[(x + 1)^2 (y + 1)^2, x]
Out[8]= 
今度は,式の部分でパターン b[_]に合ったオブジェクトを持たないものを展開から外す.
In[9]:= Expand[(a[1] + a[2] + 1)^2 (1 + b[1])^2, b[_]]
Out[9]= 

ベキの展開
Mathematicaは, cが整数である場合を除いて, (a b)^cのような形の項を自動的に展開しない.一般に,後者の展開は aと bがともに正の実数であるときに限り正しい.それでも,関数 PowerExpandを使えば, aと bが正の実数であると仮定され展開してくれる.
この式は自動的に展開してくれない.
In[10]:= (x y)^n
Out[10]= 
それでも, PowerExpandを使うと, xと yを正の実数と仮定し展開してくれる.
In[11]:= PowerExpand[%]
Out[11]= 
Logもそのままでは展開してくれない.
In[12]:= Log[%]
Out[12]= 
今度も, PowerExpandを使えば展開できるようになる.
In[13]:= PowerExpand[%]
Out[13]= 

式のまとめ直し
各所で関数 fを使った式を入力する.
In[14]:= t = 3 + x f[1] + x^2 f[1] + y f[2]^2 + z f[2]^2
Out[14]= 
パターン f[_]にマッチするオブジェクトを共通成分とする項でまとめ直す.
In[15]:= Collect[t, f[_]]
Out[15]= 
求まった各項の係数部に Factorを適用 する.
In[16]:= Collect[t, f[_], Factor]
Out[16]= 
|