|
3.1.1 数の型
Mathematicaには,4つの数の型が組み込まれている.

Mathematica内部での数の型
有理数は,常に約分された整数の比として表される.
In[1]:= 12344/2222
Out[1]= 
小数点を用いると,整数や有理数ではなく,実数の近似値として扱われる.
In[2]:= 5456.
Out[2]= 
近似値としての実数の桁数は何であってもよい.
In[3]:= 4.54543523454543523453452345234543
Out[3]= 
複素数は整数や有理数の成分で構成してもよい.
In[4]:= 4 + 7/8 I
Out[4]= 
実数を成分としてもよい.
In[5]:= 4 + 5.6 I
Out[5]= 

型の違いによる値123の意味の相違
Mathematicaでは,頭部(ヘッド)を調べることによって数の型の区別を確認することができる.(他の表記物と同様に数も頭部を持つが,数の頭部は型以外の情報を持たない.)
値 123を整数として入力し, Headを作用させ型を確認する.
In[6]:= Head[123]
Out[6]= 
今度は小数点を指定し,値 123.を実数として入力する.型を確認すると実数型が返される.
In[7]:= Head[123.]
Out[7]= 

数の型の判定関数
NumberQ[x]は,どんな型の数に対しても判定を行う.
In[8]:= NumberQ[5.6]
Out[8]= 
5.は実数の近似値として扱われるので IntegerQは Falseを返す.
In[9]:= IntegerQ[5.]
Out[9]= 
複素数をよく使う場合,虚数部の表記によっては微妙な違いが生じるので気を付ける必要がある.入力値 123.は実数として扱われ,その虚数部分は厳密なゼロとされる.しかし,虚数部がある精度のもとで近似値としてゼロとなっているような複素数を扱いたいという場合もあるだろう.
虚数部分を厳密な整数ゼロとすると,複素数は実数に簡約される.
In[10]:= Head[ 123 + 0 I ]
Out[10]= 
ここで,虚数部は特定の精度までのゼロなので,複素数のまま保持される.
In[11]:= Head[ 123. + 0. I ]
Out[11]= 
複素数の虚数部が厳密なゼロか有限精度のゼロかどうかを区別することは理屈っぽいだけで実用的な意味がないように思われる.しかし,区別することは重要で,3.2.7で説明するが,複素数を使ったベキと根の解釈でこの違いは大きな意味を持つ.
数の型を調べるには Head[expr]を使えば, Mathematicaが保持する数の頭部が参照できる.しかし,多くの場合は IntegerQ[x]のような関数を xに作用させxが特定の型かどうかを調べる方が手っ取り早い.これらの判定関数は引数が調べる型に属するときTrueを返し,そうでなければFalseを返す.例えば,判定する前に整数の型を xに割り当てておかなければ,IntegerQ[x]はFalseを返してくる.
|