|
1.10.9 入出力の表記法
ノートブックでは,入力および出力の表示形態をいろいろ変えることができる.フロントエンドのメニューから次の表に示す表記変換のコマンドを選択することで,セルの内容を1つの表記から別の表記に変えることができる.

入力と出力の表記法
この入力は,InputFormとStandardFormのどちらでも有効である.
In[1]:= x^2 + y^2/z
Out[1]= 
よりStandardFormに適した形で入力する.
In[2]:= 
Out[2]= 
InputForm(入力形)は,最も汎用性が高く,ノートブック型インターフェースでもテキスト型インターフェースでも同様に使うことができる.
ノートブック型インターフェースを使っている場合,特に指定がなければ,出力はStandardFormに従い生成される.
In[3]:= Sqrt[x] + 1/(2 + Sqrt[y])
Out[3]= 
一方,テキスト型インターフェースでは,OutputFormが使われる.
In[4]:= Sqrt[x] + 1/(2 + Sqrt[y]) // OutputForm
Out[4]//OutputForm= Sqrt[x] + (2 + Sqrt[y])^(-1)
Out[4]//OutputForm= " 1 Sqrt[x] + ----------- 2 + Sqrt[y]"
ノートブック型インターフェースを使っている場合,特に指定がなければ,入力と出力の両方にStandardForm(標準形)が使われる.
StandardFormの基本的な目的は,特殊文字や二次元式の記号を使うことで,Mathematica式を正確で読みやすい形に表記することにある.
この入力と出力は,ともにStandardFormで表される.
In[5]:= 
Out[5]= 
StandardFormを使う大きな利点は,得られる出力を直接入力として使えるということにある.
In[6]:= 
Out[6]= 
StandardFormは,慣用的な数学表記にみられる曖昧さを排除しているため,正確な記述を可能としている.Mathematicaでは,さらに,TraditionalForm(慣用形)と呼ばれる,慣用的な数学表記による式の表示を行うための大きな規則集も備えている.
TraditionalFormを使うと,関数名は小文字になり,引き数は角カッコではなく丸カッコでくくられる.
In[7]:= 
Out[7]//TraditionalForm= 
TraditionalFormでは,関数に応じた標準数学記号が使われる.
In[8]:= {Abs[x], ArcTan[x], BesselJ[0, x], Binomial[i, j]} // TraditionalForm
Out[8]//TraditionalForm= 
TraditionalFormで記述した式は,慣用的な数学表記を使った文書に挿入したりするのに適している.しかし,この表記法は主に出力で使われ,式の記述で正確さに欠けるためMathematicaの入力には適していない.
例えば,TraditionalFormを出力に使っている場合,Ci[x]とCosIntegral[x]はともにCi(x)と表示 される.このため,Ci(x)を入力に使うと,それだけではどちらを意味するものかが不明になってしまう.
StandardFormでは,3つの式はすべて固有なものとして扱われるためまぎらわしさは残らない.
In[9]:= { Ci[1+x], CosIntegral[1+x], Ci(1+x) } // StandardForm
Out[9]//StandardForm= 
しかし,TraditionalFormを使うと3つともほとんど同じような表示になってしまう.最初の2関数は区別がつかない.第3の関数も,余分なスペースがあるが少ししか違わない.
In[10]:= { Ci[1+x], CosIntegral[1+x], Ci(1+x) } // TraditionalForm
Out[10]//TraditionalForm= 
その曖昧さからTraditionalFormは,一般に,Mathematicaカーネルに送る入力には適さない.しかし,MathematicaにはTraditionalFormで書かれた式を解釈するための検索法の規則が備えられているので,十分に単純な式であればTraditionalFormのものでも正確に解釈される.
特に指定しなければ,カーネルに入力するためのセルではStandardFormが使われるものと前提される.

この例では入力セルにTraditionalForm を使うように特別指定をした.TraditionalFormのセルには歯形のセルマークが付けられる.(歯形の記号は入力しづらいことを示す.)


TraditionalFormによる入力が正常に機能するいくつかの場合
TraditionalFormで式が表されるとき,たとえその式が再び入力として使われることがあっても,正確に解釈されるように隠しタグが付加される.そしてその式が多少編集されても,付加されたタグが残っていれば正確に解釈される.
TraditionalFormで出力させる.
In[11]:= Exp[I Pi x] // TraditionalForm
Out[11]//TraditionalForm= 
MathematicaにTraditionalFormの入力を期待するよう指示する.入力は,直前の出力行のコピーなので,隠しタグが付加されており正確な解釈が行われる.
In[12]:= 
Out[12]//StandardForm= 
このような簡単な編集なら,隠し情報はそのまま残る.
In[13]:= 
Out[13]//StandardForm= 
式が,最初からTraditionalFormで書かれたものであっても,また,外部プログラムから取り込まれたものであっても,それがどのような意味を持つかの解釈が試みられる.もし曖昧な記述があるとすると,それは,初等数学で使う標準的な慣用に従って書かれたものと解釈される.
TraditionalFormの入力では,この式は導関数として解釈される.
In[14]:= 
Out[14]//StandardForm= 
これは,逆正接として解釈される.
In[15]:= 
Out[15]//StandardForm= 
正接の2乗と解釈される.
In[16]:= 
Out[16]//StandardForm= 
この式には標準的な解釈の仕方がない.Mathematicaでは,1/Tan[x]^2と解釈される.
In[17]:= 
Out[17]//StandardForm= 
上の例から,TraditionalFormでは計算したい式を思った通りに入力できない場合があることが分かったであろう.それでも,簡単な式にとどめておけばこの表記法でも十分に事は足りる.さらに,次に示す秘訣を使えば入力をより正確なものにもできる.

TraditionalFormの入力をより正確なものとする秘訣
間にスペース(空白)がないのでf(1 + x)は関数として解釈される.これに対して,g (1 + x)はgと1 + xの乗算として解釈される.
In[18]:= 
Out[18]//StandardForm= 
単なるeはシンボルだが, ee は自然対数の底である.
In[19]:= 
Out[19]//StandardForm= 
|