一意的な値を持たない関数

の平方根 を求めるということは,実際には,方程式 の解を求めることである.ところが,一般に,この方程式には解が2つ存在する.例えば,に対して,解は,の2つがある.を「関数」と見立ててそれを評価するとき,通常,単一な値を結果として得たいので,一方を選択しなければいけない.なら,は正とする,というのが標準的な選択である.Mathematica の関数Sqrt[x]も正を選択をするようになっている.

2つの解から単一の解を選ばなければならないということは,Sqrt[x]の操作は,の真の逆関数ではないということになる.つまり,与えられた数の二乗を取り,二乗した値から平方根を求めても必ずしももとの数は得られない.

を計算すると,が返ってくる.は得られない.
In[1]:=
Click for copyable input
Out[1]=
二乗した値から平方根を取っても必ずしももとの値は得られない.
In[2]:=
Click for copyable input
Out[2]=

を評価すると,可能な解として がある.この場合は,どちらの解を優先すべきかは上の場合ほど明確に定められない.

実際,すべての複素数 に対して連続となるようにの値を選択することは不可能である.複素平面上に「分岐」と呼ばれる半直線を設定し,その半直線を越えて動くときは不連続となる.Mathematica では,に対する分岐を負の実軸に沿うものとする標準的な規約が使われている.

求まるのは で, ではない.
In[3]:=
Click for copyable input
Out[3]=
Sqrtにおける負の実軸に沿った分岐は次のことを意味する.つまり, が軸のすぐ上とすぐ下のどちらの値を取るかで,Sqrt[z]の値は大きく変わる.
In[4]:=
Click for copyable input
Out[4]=
二乗すると両方とも近い値である.
In[5]:=
Click for copyable input
Out[5]=
平方根の虚部を3Dプロットする.負の実軸に沿って不連続になっているのがよく分かる.
In[6]:=
Click for copyable input
Out[6]=

を用いて 乗根を求めるとき,原理的には結果に 通りの可能性がある.単一の値を得るには,特定の「主根」を選ぶ必要がある. 乗したベキ数から 乗根を求めてももとの数が得られるという保証はない.

複素数を10乗する.得られる値は一意的に決まる.
In[7]:=
Click for copyable input
Out[7]=
10個の10乗根が可能であるが,その中の1つだけが実際に使われる.この場合は,10乗根が取られたもとの数ではない.
In[8]:=
Click for copyable input
Out[8]=

平方根のような,基本的に方程式の解を見出す関数がいくつもある.対数関数や逆三角関数もこの種の関数に当たる.これらを使うほとんどの方程式問題では,方程式には複数の解が存在する.それでも,一意的な「主」値を選択する必要がある.このとき,全複素平面において連続となる主値を選択することはできない.このため,不連続な線,つまり,分岐が存在する必要がある.これらの分岐をどの位置に取るかは本来任意である.Mathematica では,数学で最も標準的とされる分岐位置が採用されている.

Sqrt[z] および z^sRe のときRe のとき は整数ではない)
Exp[z]なし
Log[z]
三角関数なし
ArcSin[z] および ArcCos[z] および
ArcTan[z] および
ArcCsc[z] および ArcSec[z]
ArcCot[z]
双曲線関数なし
ArcSinh[z] および
ArcCosh[z]
ArcTanh[z] および
ArcCsch[z]
ArcSech[z] および
ArcCoth[z]

複素平面上で設定されている分岐.その線上で関数は不連続となる

ArcSinは多価関数であるから,常にSinの「逆」が得られるという保証はない.
In[9]:=
Click for copyable input
Out[9]=
分岐の両側において,ArcSin[z]の値は大きく異なる.
In[10]:=
Click for copyable input
Out[10]=
三次元で の虚部をプロットする.2ヵ所で分岐が入っているのが分かる.
In[11]:=
Click for copyable input
Out[11]=
New to Mathematica? Find your learning path »
Have a question? Ask support »