|
3.7.4 スカラー,ベクトルおよび行列に対する演算
Mathematicaにおける数学関数のほとんどはリストの要素に個別に機能するように設定される.特に属性が Listableとして与えられているものは,必ずリスト対応可能に設定される.
このためほとんどの数学関数は行列やベクトルの要素ごとに個別に機能する.
Logはベクトルの要素にそれぞれ個別に適用される.
In[1]:= Log[ {a, b, c} ]
Out[1]= 
行列についても同じことがいえる.このことはネストしているすべてのリストについて当てはまる.
In[2]:= Log[ {{a, b}, {c, d}} ]
Out[2]= 
微分関数 Dもまたリストの各要素に個別に適用される.
In[3]:= D[ {x, x^2, x^3}, x ]
Out[3]= 
ベクトルの和は要素ごとに行われる.
In[4]:= {a, b} + {ap, bp}
Out[4]= 
次元の異なるベクトルの和を求めようとするとエラーになる.
In[5]:= {a, b, c} + {ap, bp}

Out[5]= 
スカラー 1をベクトルの各要素に加える.
In[6]:= 1 + {a, b}
Out[6]= 
リストとしてとらえられないオブジェクトは,すべてスカラーとみなされる.ここでは, cがスカラーとみなされベクトルの各要素に独立して加えられる.
In[7]:= {a, b} + c
Out[7]= 
この場合,スカラーkがベクトルの各要素に掛け合わされる.
In[8]:= k {a, b}
Out[8]= 
演算が終了した時点で, Mathematicaは与えられたオブジェクトが明確なリスト形式であるもののみをベクトルとして扱う.この際,リストでないものの場合 Mathematicaはこれをスカラーとみなす.すなわち,特定の演算の前後に特定の量をリストとして設定すると異なる結果となってしまう.
オブジェクト pはスカラーとして扱われる.したがって,ベクトルの各要素にそれぞれ加算される.
In[9]:= {a, b} + p
Out[9]= 
一方, pをリスト {c, d}として置換すると右のようになる.
In[10]:= % /. p -> {c, d}
Out[10]= 
一方,演算の前に pをリスト {c, d}で置換しておくとまた違った結果になる.
In[11]:= {a, b} + {c, d}
Out[11]= 
|