|
3.3.8 複素数の変数を含む式
Mathematicaは,通常, x等の変数が実数でも複素数でも特に区別せず演算できる.それでも,変数を実数か複素数に特定した上で変換操作を行いたいときがあるだろう.
ComplexExpandは代数式や三角関数の式を展開するのに使うが,変数の取れる型は明確に条件付けられる.

複素数からなる式の展開
xと yがともに実数であるとして,式を展開する.
In[1]:= ComplexExpand[Tan[x + I y]]
Out[1]= 
この式では, aは実数だが xは複素数とする.展開すると, xは実数部と虚数部に分解される.
In[2]:= ComplexExpand[a + x^2, {x}]
Out[2]= 
複素変数が1つ増えただけで,展開した形は非常に複雑になる.
In[3]:= ComplexExpand[Sin[x] Exp[y], {x, y}]
Out[3]= 
実数のパラメータを使い複素数の変数 を表す方法はいくつかある.例えば,先に示したように, zは「直交座標の形式」で Re[z] + I Im[z]と書ける.また,「極形式」なら, Abs[z] Exp[I Arg[z]]と書ける.
ComplexExpandの指定にオプション TargetFunctionsの設定を付加することで,複素数の変数をどう表すべきか指定できる. TargetFunctionsには Re, Im, Abs, Arg, Conjugate, Sign の中の関数をリスト形式で割り付ける.すると, ComplexExpandが,与えられた関数を使い展開式の変数を書き直してくれる.何も指定していないときは, Reと Imがデフォルトで使われる.
直交座標の形式で式を展開する.
In[4]:= ComplexExpand[Re[z^2], {z}]
Out[4]= 
今度は,極形式で展開する.
In[5]:= ComplexExpand[Re[z^2], {z}, TargetFunctions -> {Abs, Arg}]
Out[5]= 
さらに,別の形式で展開してみる.
In[6]:= ComplexExpand[Re[z^2], {z}, TargetFunctions -> Conjugate]
Out[6]= 
|