Mathematica 9 is now available

Documentation / Mathematica / Mathematicaブック / Mathematicaの仕組み / 式の評価 /

2.6.1 評価の原理

Mathematicaの基本操作は評価を行うことである.ユーザが式を入力すると,Mathematicaは式を評価し,結果を返す.

Mathematicaにおける評価は一連の定義を適用していくことで行われる.定義にはユーザが明示的に入力したものと,Mathematicaに組込み済みのものがある.

例えば,Mathematicaは整数の加法用の組込み関数を使い,式6 + 7を評価する.同じように,簡約化のための組込み関数を使い,代数式x - 3x + 1を評価する.その際に,x = 5との定義がすでに作成されていれば,Mathematicaは,この定義を使いx - 3x + 1-9に約す.

Mathematicaにおいて最も中心をなす2つの概念は「式」と「評価」であろう.2.1で説明したように,Mathematicaが扱うオブジェクトは多岐にわたるが,それらのすべては,「式」を使い一様な形式で表される.本節では,Mathematicaが実行できるすべての操作を評価処理の例としてどのように統一的に見ることができるかを説明していく.

評価の解釈例

Mathematicaは,「無限評価システム」である.つまり,式が入力されると,Mathematicaは定義を適用できる結果がもはや得られないと分かるまで,定義を適用し続ける.

x1x2により定義し,その後に,x2を定義する.

In[1]:= x1 = x2 + 2 ; x2 = 7

Out[1]=

x1が参照されると,Mathematicaは,既知のすべての定義を使い結果を生成する.

In[2]:= x1

Out[2]=

階乗関数をそれ自身により定義した帰納的定義に適用する.

In[3]:= fac[1] = 1 ; fac[n_] := n fac[n-1]

fac[10]が参照されると,Mathematica は,結果が変化しなくなるまで定義を繰り返し適用する.

In[4]:= fac[10]

Out[4]=

Mathematicaは,既知の定義を適用し尽くした時点で,得られた式をそれがどのようなものであれ結果として返す.場合によっては,結果は数等のオブジェクトである.しかし通常は,シンボル形式で表されたいくつかのオブジェクトを含む式である.

Mathematicaは,加法式の簡約化のための組込み定義を使う.しかし,f[3]には何も変換規則の定義がないので,それはシンボル形式のまま返される.

In[5]:= f[3] + 4f[3] + 1

Out[5]=

Mathematicaは,結果が変化しなくなるまで定義を適用していく,という原則に従う.このため,Mathematicaが出力する最終結果を取り出し,再入力すると,同じ結果が再び得られる.(これには,微妙な場合が含まれる.詳しくは2.6.13を参照のこと.)

Mathematicaからの結果をタイプすると,同じ式が再び得られる.

In[6]:= 1 + 5 f[3]

Out[6]=

どんなときでも,Mathematicaは,その時点で既知の定義しか使うことができない.もちろん,定義が後で追加されると,Mathematicaはそれらも使うことができる.ただし,そのときの結果は以前のものとは違うかもしれない.

関数fに関する新たな定義を作る.

In[7]:= f[x_] = x^2

Out[7]=

新定義のために,得られる結果は変わることがある.

In[8]:= 1 + 5 f[3]

Out[8]=

最も単純な評価の例として,f[x_] = x^2等の定義を使って,式を直接他の式に変換するという処理がある.しかし,Mathematica言語で書かれたプログラムの実行に使われる処理も評価の形態である.したがって,例えば,条件子やループを含んだ一連のMathematica式で構成された手続き型のプログラムがあるとき,それを実行することは式を評価することに相当する.場合によっては,評価処理は,例えば,ループにおいて特定の式を何回も評価することもある.

Print[zzzz]は,Do式の評価中に3回評価される.

In[9]:= Do[Print[zzzz], {3}]



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.