この記事では、虚数と複素数についての基本事項と、Excel のエンジニアリング関数による複素数計算について解説します。
【Excel】虚数と複素数
平方 (
虚数単位
複素数とは単位 (素) が “
のように表します。
複素数
横軸
このような平面を複素平面 (complex plane)、またはガウス平面(Gaussian plane)とよびます。
ある複素数
と書きます。
となるので、複素数の絶対値は共役複素数を用いて
と表すこともできます。
複素数
となります (複素数の積の絶対値は各々の絶対値の積に等しくなっています)。
Excel には複素数を演算するためのエンジニアリング関数が一通り揃っています。これらの関数は a+bi あるいは a+bj の形式で記述された文字列を複素数として認識して受け取ります (a, b は任意の数値)。complex_2.xslx の “基本演算” シートには、主な関数の演算例を載せています。必要な方はファイルをダウンロードしてください。
≫ complex_2.xslx をダウンロード
セル C6 には文字列 2+3i、C7 には 1+i が入力されています。
セル C9 には
=IMSUM(C6,C7)
が入力されていて、2+3i と 1+i の加算 3 + 4i が表示されています。同様に、セル C10, C11, C12 には
=IMSUB(C6,C7) =IMPRODUCT(C6,C7) =IMDIV(C6,C7)
が入力され、減算、乗算、除算を実行しています。
複素平面における原点からの距離
と表すことを複素数の極形式とよびます (下図参照)。
argument (偏角) の略語を使って、
となるので、極形式の複素数は
と書き直せます。
複素数
から計算できますが、一般に手計算では困難です。Excel には複素数の偏角を求める IMARGUMENT 関数が用意されています。セル C16 には
=IMARGUMENT(C6)
と入力して、z1 の偏角の値が計算されています。
complex_2 ブックの “極形式” シートでは、偏角
シートの中身に関心がある人は、ダウンロードしたブックを開いて数式を確認してみてください。同じブックの “らせん” シートでは、ちょっとした遊びで、複素平面に螺旋を描いています。そちらもぜひご覧ください。
以下では、Excel の複素数演算に使用する主なエンジニアリング関数を列挙して解説します。
COMPLEX:数値の組を複素数に変換
COMPLEX関数は2つの数値を虚数単位で結びつけて複素数に変換します。COMPLEX関数は
=COMPLEX(実数部,虚数部,[単位])
という形で入力します。たとえば
=COMPLEX(1,3)
と記述すると「1+3i」という文字列に変換されます。[単位] は「i」または「j」のどちらかを指定しますが、省略すると「i」を指定したことになります。
IMREAL:複素数の実部
IMREAL関数は複素数から実部 (real part) を抜き出します。IMREAL関数は
=IMREAL(複素数)
の形で入力し、引数には「”a+bi”」もしくは「”a+bj”」で表された複素数を指定します。たとえば
=IMREAL("5+3i")
と入力すると、複素数 5 + 3i の実数部「5」が戻ってきます。あるいは COMPLEX 関数をネストして
=IMREAL(COMPLEX(5,3))
としても、やはり「5」を返します。
IMAGINARY:複素数の虚部
IMAGINARY関数は複素数から虚部 (imaginary part) を抜き出します。IMAGINARY関数は
=IMAGINARY(複素数)
の形で入力し、引数には「”a+bi”」あるいは「”a+bj”」で表された複素数を指定します。たとえば
=IMAGINARY("7+9i")
と入力すると、複素数 7 + 9i の虚数部「 9 」が戻ってきます。あるいは COMPLEX 関数を入れ子にして
=IMAGINARY(COMPLEX(7,9))
としても、やはり虚数部「 9 」を返します。
IMCONJUGATE:共役複素数
複素数 a + bi に対して a – bi を共役複素数とよびます。IMCONJUGATE関数は
=IMCONJUGATE(複素数)
と入力して引数の共役複素数を返します。たとえば
=IMCONJUGATE("1+2i")
と入力すると 1+2i の共役複素数「1-2i」を返します。
IMABS:複素数の絶対値
複素数 a + bi を複素数平面上の点 (a, b) 上の点に対応させたとき、原点から (a, b) までの距離が複素数の絶対値と定義されています。IMABS関数は
=IMABS(複素数)
と入力し、引数の絶対値を返します。たとえば
=IMABS("1+i")
と入力すると、√2 の近似値「1.414214」が返されます。
IMARGUMENT:複素数の偏角
複素数 a + bi を複素数平面上の点 (a, b) 上の点に対応させたとき、原点と (a, b) を結ぶ線分が実軸となす角度 θ が偏角と定義されています。IMARGUMENT関数は
=IMARGUMENT(複素数)
という形式で入力し、複素数の偏角 θ をラジアン単位で得ます。たとえば
=IMARGUMENT("1+1i")
と入力すると π/4 の近似値「0.785」が返ります。DEGREES 関数を用いて
=DEGREES(IMARGUMENT("1+1i"))
と入力すれば度数法単位で「 45 」を得ることができます。
IMSUM:複素数の和
IMSUM関数は
=IMSUM(複素数1[,複素数2,...])
と入力し、引数に指定した全ての複素数の総和を計算します。たとえば
=IMSUM("2+i","1+3i")
と入力すると「3+4i」が返ります。あるいは
=IMSUM(COMPLEX(2,1),COMPLEX(1,3))
と入力しても同じ結果を得ることができます。
IMSUB:複素数の差
IMSUB関数は
=IMSUB("複素数1","複素数2")
の形で入力し、複素数 1 から複素数 2 を引いた複素数を返します。たとえば
=IMSUB("8+7i","2+3i")
と入力すると「6+4i」が返ります。あるいは
=IMSUB(COMPLEX(8,7),COMPLEX(2,3))
と入力しても同じ結果になります。
IMPRODUCT:複素数の積
IMPRODUCT関数は
=IMPRODUCT(複素数1[,複素数2, ...])
と入力し、指定した引数の積を返します。たとえば
=IMPRODUCT("5+2i","1+3i")
とすると、5 + 2i と 1 + 3i の積「 -1 + 17i 」を返します。
IMDIV:複素数の商
IMDIV関数は
=IMDIV("複素数1","複素数2")
の形で入力し、複素数1 を複素数2 で割った値を返します。たとえば
=IMDIV("5+2i","1+i")
と入力すると複素数 5 + 2i を複素数 1 + i で割った「3.5-1.5i」を返します。
IMPOWER:複素数のべき乗
IMPOWER関数は
=IMPOWER(複素数,数値)
の形式で記述し、1 つめの引数を底、2 つめの引数を指数とするべき乗を返します。たとえば
=IMPOWER("1+i",5)
と入力すると (1 + i)5 を計算して「-4-4i」という文字列を得ることができます。
IMSQRT:複素数の平方根
IMSQRT関数は
=IMSQRT(複素数)
と入力して引数の平方根、すなわち引数を 0.5 乗した複素数を返します。たとえば
=IMSQRT("3+4i")
と入力すると (3+4i)0.5 を計算して「2+i」を得ます。
エクセルや数学に関するコメントをお寄せください