WOLFRAM言語チュートリアル

複素数の変数を含む式

Wolfram言語は,通常,等の変数が実数でも複素数でも特に区別せず演算できる.それでも,変数を実数か複素数に特定した上で変換操作を行いたいときがあるだろう.

ComplexExpandは代数式や三角関数の式を展開するのに使うが,変数の取れる型は明確に条件付けられる.

ComplexExpand[expr]すべての変数が実数であるという前提で式 expr を展開する
ComplexExpand[expr,{x1,x2,}]変数 が複素数であるという前提で式 expr を展開する

複素数からなる式の展開

がともに実数であるとして,式を展開する.
In[1]:=
Click for copyable input
Out[1]=
この式では,は実数である.だがは複素数であり,展開すると実数部と虚数部に分解される.
In[2]:=
Click for copyable input
Out[2]=
複素変数が1つ増えただけで,展開した形は非常に複雑になる.
In[3]:=
Click for copyable input
Out[3]=

実数のパラメータを使い複素数の変数 z を表す方法はいくつかある.例えば,先に示したように,z は「直交座標の形式」でRe[z]+I Im[z]と書ける.また,「極形式」なら,Abs[z] Exp[I Arg[z]]と書ける.

ComplexExpandの指定にオプションTargetFunctionsの設定を付加することで,複素数の変数をどう表すべきか指定できる.TargetFunctionsには{Re,Im,Abs,Arg,Conjugate,Sign}の中の関数をリスト形式で割り付ける.すると,ComplexExpandが,与えられた関数を使い展開式の変数を書き直してくれる.何も指定していないときは, ReImがデフォルトで使われる.

直交座標の形式で式を展開する.
In[4]:=
Click for copyable input
Out[4]=
今度は,極形式で展開する.
In[5]:=
Click for copyable input
Out[5]=
さらに,別の形式で展開してみる.
In[6]:=
Click for copyable input
Out[6]=