代数式の簡約化

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

Simplify[expr]標準的な代数変形を適用して,式 expr の最も簡単な形を探す
FullSimplify[expr]標準外の広範な変形を使い最も簡単な形を探す

代数式の簡約化

Simplifyを使うと,が因数分解された形に書き直される.
In[1]:=
Click for copyable input
Out[1]=
Simplifyを使うと,今度は因数分解された形の方が大きくなってしまうため,は展開形のまま残される.
In[2]:=
Click for copyable input
Out[2]=

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

を積分する.積分の詳細は「積分法」を参照のこと.
In[3]:=
Click for copyable input
Out[3]=
Integrateの結果を微分するともとの積分式が得られるはずである.こういうことはよくあるが,この場合は,もっと複雑な式になってしまう.
In[4]:=
Click for copyable input
Out[4]=
ここでもSimplifyを使うと,もとのより分かりやすい形を取り戻すことができる.
In[5]:=
Click for copyable input
Out[5]=

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

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

Simplifyでは式を簡約することができない.
In[6]:=
Click for copyable input
Out[6]=
そこで,FullSimplifyを使ってみると,より簡単な形に変形できる.
In[7]:=
Click for copyable input
Out[7]=

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

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

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

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

New to Mathematica? Find your learning path »
Have a question? Ask support »