Mathematica 9 is now available

Documentation / Mathematica / Mathematicaブック / Mathematicaの実践的な紹介 / 代数計算の基礎  /

1.4.4 代数式の簡約化

代数式をできる限り簡単な形で表現したいと思うときがよくある.しかし,「簡単な形」と一概にいっても,どう変形したら実際に簡単になるか,の疑問をすべてのケースではっきりさせるのはなかなか難しい.これを実際に行う手順として,式をいろいろな形に書き直してみて,その中で一番項数が少ない形を選ぶ方法が実践的でよいだろう.

代数式の簡約化

Simplifyを使うと, が因数分解された形に書き直される.

In[1]:= Simplify[x^2 + 2x + 1]

Out[1]=

Simplifyを使うと,今度は因数分解された形の方が大きくなってしまうため, は展開形のまま残される.

In[2]:= Simplify[x^10 - 1]

Out[2]=

Simplifyを頻繁に使うことで,計算で得られる結果を「整理」しておくことができる.

を積分する.積分の詳細は 1.5.3を参照のこと.

In[3]:= Integrate[1/(x^4-1), x]

Out[3]=

Integrateの結果を微分するともとの積分式が得られるはずである.こういうことはよくあるが,この場合は,もっと複雑な式になってしまう.

In[4]:= D[%, x]

Out[4]=

ここでも Simplifyを使うと,もとのより分かりやすい形を取り戻すことができる.

In[5]:= Simplify[%]

Out[5]=

Simplifyは,与えられた式に対して各種の標準的な代数変形を試すように設定されている.ただし,式によってはもっと高等な変形を使い簡約化が進められる場合もある.

FullSimplifyは,さらに多くの変形を試すようにできている.これらの変形では,代数関数だけでなく他の多種にわたる関数が使われる.

Simplifyでは式を簡約することができない.

In[6]:= Simplify[Gamma[x] Gamma[1 - x]]

Out[6]=

そこで, FullSimplifyを使ってみると,より簡単な形に変形できる.

In[7]:= FullSimplify[Gamma[x] Gamma[1 - x]]

Out[7]=

式が短い場合は,FullSimplifyで驚くほど簡単な式を得られることがよくある.しかし,式が長くなると,処理スピードが極端に落ちてしまうことがある.

スピード低下の原因は FullSimplifyの処理手順にある.つまり,式から項を代る代るに取り出しては,その項以外の項に1つずつ組み合せていき,その結果得られる各々の組に対して変形が試されるからである.もとの式が大きいと天文学的な回数が必要になってしまう.

Simplifyも難しい処理を行わなければならない.ただ,Simplifyは,FullSimplifyが試すような処理に非常に長い時間がかかる変形は避けるように設定されている.簡単な代数計算なら,Simplifyを逐次適用していくことで得られた結果を順次簡約していけるので便利であろう.

しかし,複雑な計算になると,FullSimplifyはもとより, Simplifyでさえも膨大な数のさまざまな形を試すことで終ってしまい,そのため計算に費やす時間も長くなる.そのような場合は,ユーザが簡約化をきめ細くコントロールし,最終的にどのような形にしたいかということを考えながら,各段階の計算を進める必要がある.



Any questions about topics on this page? Click here to get an individual response.Buy NowMore Information
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.