More than 1 year has passed since last update.


虚数って?

i^2 = -1

になる $i$ が、虚数の単位。

電子工学や電気工学の人は電流の $i$ と間違えるから $j$ って書くけど、 $j^2 = -1$ という定義は同じだから、文字が違うだけ。この記事は「高校数学」の話なので、以後虚数の単位は $i$ と書く。

ちなみになんで $i$ かというと、実数は real number なので、それに対応させて imaginary number というのが理由。この imaginary というのは、「想像上の」という意味。日本語で、実と虚、という対応を付けたのはなかなかの名訳。


なんで虚数が要るの?

$1\times{}1 = 1$、っていうのは実数の世界ではあたりまえ。方程式だと $x^2 = 1$ という方程式の解は $x = 1$ で決まる。でも実はもう一つ解があって、$x = -1$も解。なぜなら$-1\times{}-1 = 1$だから。因数分解してみると、$x^2 - 1 = (x+1)(x-1)$なので、解が出てくる。

でも、$x^2 = -1$ という方程式を解こうとすると、答は実数にはならない。実数を二乗した数は、必ず正の数あるいはゼロになるから。

じゃあどうする?

…二乗したら負の実数になるような数を作ってやればいい。それが虚数。そうすれば、2次方程式の世界を完全に表現できる。

あと、$i$のべき乗について補足すると、$i^3 = -i$, $i^4 = (i^2)^2 = 1$ となる。4回掛ければ1。だから$i^5 = i$。


複素数って?

単純にいえば、実数と虚数を足したものの和集合。だから実数は複素数に含まれるし、虚数も複素数に含まれる。

複素数は一般に $z = x + iy$ ただし $i^2 = -1$ かつ $x$ と $y$ は実数、というだけの話。

ただ、ここで大事なのは、実数は(実数で)何倍しても虚数にはならないし、虚数は(実数で)何倍しても実数にはならないということ。両方はちょうど、平面を直交座標で表現したときの、$x$軸と$y$軸のような関係。言い換えれば、実数は直線を表現しているとすれば、複素数は平面を表現していると思うとわかりやすいかも。

複素数は英語では complex number という。複素数を構成する実数の部分は real part で、虚数の部分は imaginary part という。まあ complex というくらいなので、確かに複雑ではある。


複素数の計算の仕方

一度 $i$ を方程式の変数のように扱って計算してから、$i^2 = -1$ という法則をあてはめて式を簡単にする、というのが最もわかりやすい方法だと思う。$i$以外を全部実数で表現できたら、答が求まる。


複素数の足し算と引き算

$z_1 = x_1 + iy_1$, $z_2 = x_2 + iy_2$ とすると、$z_1 + z_2 = (x_1 + x_2) + i(y_1 + y_2)$ となる。単純。

符号反転は $-z_1 = -x_1 + (-iy_1) = -x_1 - iy_1$ となる。これも単純。

だから引き算は $z_1 - z_2 = (x_1 - x_2) + i(y_1 - y_2)$ と考えればいい。


複素数のかけ算

これはちょっと工夫が要るけど、やってみる。

$z_1 = x_1 + iy_1$, $z_2 = x_2 + iy_2$ としたとき

z_1z_2 = x_1x_2 + i(x_2y_1+x_1y_2) + i^2y_1y_2 = (x_1x_2-y_1y_2) + i(x_2y_1+x_1y_2)

となる。$i^2 = -1$を代入すると、きれいに解決する。


複素数の割り算

これはちょっとばかり難しい。単に分数として

\frac{z_1}{z_2} = \frac{x_1 + iy_1}{x_2 + iy_2}

とやってみても、結果の複素数の実数部と虚数部が決定できるわけではないからだ。

こういうときは、共役複素数(complex conjugate)というものを使う。といっても、それほど難しくはなくて、$z_1 = x_1 + iy_1$の共役複素数を$\overline{z_1}$とすると、$\overline{z_1} = x_1 - iy_1$ となる。要は、虚数部の符号を変えただけのこと。

ある複素数とその共役複素数の積を計算してみよう。

z_1\overline{z_1} = (x_1 + iy_1)(x_1 - iy_1) = x_1^2 - (iy_1)^2 = x_1^2 - i^2y_1^2 = x_1^2+y_1^2

というわけで、共役複素数同士の積は、実数に戻った。この性質を使うと、割り算が解ける。分母の共役複素数を、分母と分子に掛けてやれば、値が決まるように変形できる。やってみよう。

\frac{z_1}{z_2} = \frac{x_1 + iy_1}{x_2 + iy_2} = \frac{(x_1 + iy_1)(x_2 - iy_2)}{(x_2 + iy_2)(x_2 - iy_2)} = \frac{(x_1x_2+y_1y_2) + i(x_2y_1-x_1y_2)}{x_2^2+y_2^2}

…というわけで、割り算が定義できた。ここまでくれば、複素数の四則演算が、実数と虚数の単位$i$だけで定義できたことになる。


虚数のもう一つの側面

高校数学をちょっと越えてしまうけど、実は虚数は、三角関数と指数/対数関数を繋ぐ、大事な役割がある。証明は省略するが、以下の2つの公式は覚えていて損はない。


  • $e^{i\theta} =\cos\theta +i\sin\theta$(オイラーの公式): この公式を使うと、$z = x+iy$ を $z = re^{i\theta}$という極座標表示で表わすことができるようになる。この時、$r = \sqrt{x^2+y^2}$ かつ $\theta = s(y) \arccos(x/\sqrt{x^2+y^2})$ (ただし $ s(y) = 1 (y \gt 0), 0 (y = 0), -1 (y \lt 0)$ ($y$の符号関数))で表現される。

  • $(\cos \theta +i\sin \theta)^n=\cos n\theta +i\sin n\theta$ (ド・モアブルの公式): この公式を使うと、極座標で考えた場合、べき乗で$n$乗すれば角度$\theta$も$n$倍になることがわかる。

オイラーの公式から、有名な $e^{i\pi} + 1 = 0$ という、数学の基本的な要素5つ($0, 1, i, e, \pi$)を含んだきれいな式ができあがる。そして、虚数を指数に取る指数関数が三角関数と同義であることがわかるはずだ。

$x$軸に実数部、$y$軸に虚数部を取る2次元平面を使った複素数の表現については「複素数平面」お気楽学習ノートに詳細が記されている。


複素数の実応用

複素数はありとあらゆるところにでてくる。もちろん機械学習とも無縁ではない。

複素数は2次元の各要素が実数であるベクトルを表現したものと考えることができる。簡潔に表現できるのはそれだけで大きなメリットだ。

現実社会の現象をセンサで捉えた時は実数の値が時間の経過に伴って変化するのだけど、この時負の時間負の周波数を考えるとデータ解析上計算が容易になることが多い。いわば時間をさかのぼる計算をすることになる。このとき、複素数として信号を表現しておくことで、計算が容易になる。実際には実信号を実数部とし、90度あるいは$\pi/2$だけ位相を遅らせるヒルベルト変換(リンクは東邦大学メディアネットセンターの解説ページ)を行った信号を虚数部とした、解析信号あるいは複素信号(I-Q信号ともいう)でデータを扱う。

電気工学や電子工学で、コイルやコンデンサを扱う場合は、電圧の変化が電流の変化に比べ遅れたり進んだりするので、実数で抵抗成分を表現するだけでなく、虚数でコイルやコンデンサの成分(リアクタンス)を表現する必要がある。これらを合わせてインピーダンスと呼ぶ。

統計分布を表現する場合は、完全な表現が可能な特性関数(確率密度関数をフーリエ変換したもの)から計算することで証明が容易になる問題もある(らしい)。


まとめ

複素数はいいぞ。1





  1. 筆者には大学学部時代に、複素積分の講義の試験を再試験2回を含めた3回連続で落とし、最後にレポートでこってり絞られてようやく学部を卒業させてもらったという大変不名誉な歴史があります。それでも複素数には実用上大変有用で欠くべからざる性質があります。高校数学的アプローチからもかなりのことがわかるので、覚えていただければと思います。