|
3.4.1 方程式と解の表現
Mathematicaは方程式を論理構文として扱う. x^2 + 3x == 2と方程式を入力すると, Mathematicaはこれを x^2 + 3xは 2に等しいとする構文として解釈する. xに特定の値を割り当てると(例えば, x = 4というように), Mathematicaが判断できるようになり,論理構文 x^2 + 3x == 2がFalseであることが判明する.
一方, xに特定の値を与えなければ,判断不能なままなので, x^2 + 3x == 2が TrueなのかFalseなのか判明しない.そして,方程式はそのままの記号代数式の形 x^2 + 3x == 2で残される.
Mathematicaでは,記号代数式の方程式に各種の操作を施せる.方程式をまとめ直すには,特定の変数の組について解けた形にするのが普通であろう.
シンボル的な方程式を例に見てみる.
In[1]:= x^2 + 3x == 2
Out[1]= 
Reduceを使って, xの「解」が得られるように整理し直す.得られる式も,もとの方程式と同じように論理構文として見ることができる.
In[2]:= Reduce[%, x]
Out[2]= 
2次方程式 x^2 + 3x == 2は, xの値について暗示的な構文と考えられる.上の例で示したように,関数Reduceを使えば,より明示的に xの値を表した式に書き換えられる.Reduceが生成する式は x == || x == の形を取る.この式もまた論理構文であり, xは か に等しいとの意味を持つ.この論理構文を満たす xの値は,もとの2次方程式を満たす xの値と全く同じである.ただし,多くの場合,Reduceで得られる式の方がもとの方程式よりはるかに有用である.
方程式は他の論理構文と同じように組み合せたり,操作したりすることが可能である. ||や &&等の論理結合記号を使い,代替や連立の条件を設定できる.また, LogicalExpandやFullSimplifyのような関数を使い,方程式の組を簡約することも可能である.
方程式は,通常,論理構文として変形操作すると便利である.しかし,場合によっては,求められた方程式の解を他の計算に利用したい.そのような場合は,方程式を lhs == rhsのもとの形から lhs -> rhsの変換規則の形に置き換えておくとよい.解を変換規則の形にしておけば,置換記号 /.を使い簡単に解を式に代入できるようになる.
Reduceを適用すると,2次方程式の根に相当する xの値に関した論理構文が生成される.
In[3]:= Reduce[ x^2 + 3x == 2, x ]
Out[3]= 
ToRulesを作用させ,論理構文から変換規則のリストを作成する.
In[4]:= {ToRules[ % ]}
Out[4]= 
変換規則を使い,解を xを含む式に代入することができる.
In[5]:= x^2 + a x /. %
Out[5]= 
Solveを使うと,解が変換規則の形で生成される.
In[6]:= Solve[ x^2 + 3x == 2, x ]
Out[6]= 
|