はじめに
信号処理の学習を進める前に、基本的な数の概念に立ち返ります。なぜなら信号処理は、DFTに代表される通り、複素関数までを対象とする数学の応用分野だからです。
そもそもなぜ複素数が出てくる必要があるのか?
例えばDCT(離散コサイン変換)は実数関数から実数関数への変換です。直行変換を考える上で、複素数は必須ではないように感じます。また、空間上の幾何学的操作についても、複素数を用いずに実数までの線形代数で表現可能なはずです。わざわざ想像しづらい複素数を持ち出す理由はなんなのでしょうか?
その問いの答えは未だはっきりとはわかりませんが、自然数から複素数までの数の基本的な概念に立ち返ることで、ぼんやりとその意義が見えてきそうです。
数の種類
世の中にはクリフォード代数や四元数といった高度な概念の数も存在するようですが、ここはあくまで高校生までに大体ならう複素数までを対象とします。つまり、以下の数の概念についてもう一度立ち返ってみます。
- 自然数(Natural Number, Counting Number)
- 負数(Negative Number)
- 整数(Integral Number)
- 有理数(Rational Number)
- 無理数(Irrational Number)
- 虚数(Imaginary Number)
- 複素数(complex number)
- 超越数(Transcendental Number)
- 実数(Real Number)
思ったよりも多いですね。
自然数
おそらく、人間が生まれて一番はじめに扱えるようになる数です。別名、Counting Number(数え上げ数)の名の通り、数えるという概念と密接に結びついている数です。1歳後半くらいから数え上げできるようになってくるので、自然数の概念は、人間の本能的な機能として備わっているものでしょう。
自然数のはじめの数は流派がいくつかあるようですが、1から始まる定義と0から始まる定義が存在するようです。0から始まる定義は小学校では習いませんが、自然数を定義するためのペアノの公理から、0を始まりとしても不都合がないことから、0を自然数に含めてしまうようです。
自然数で重要な概念は、次の数は前の数に1を足す事で作り出す事ができるという事、また、前の数より次の数の方が大きい、と定義されている事です。要は1ずつ数え上げられるという事ですが、この操作をどこまでも繰り返して、いくらでも大きい自然数を作る事ができます。いわゆる可算無限集合です。
この、いくらでも数え上げられるという性質は、世の中の何かに番号をつけて区別する、つまり名前をつける数としても使われています。当たり前の事のようですが、本来境界線が曖昧なものの間に線を引き、抽象化して認識しているわけですから、非常に高度な概念だと言えます。
自然数の数え上げは、次の数の次の数、といった方法で一つ飛ばしでも二つ飛ばしでも数えあげる事ができます。この考え方が、自然数同士の加法の概念です。
例えば1+3という加法は、1の次の次の次の数、つまり4を表しています。また、3+1のように順序を入れ替えた場合であっても4となるため、自然数同士の加法の結果は順序によらない事がわかります。
ここで自然数が0から始まる、という定義を持ち出すと、1という自然数は0+1ですし、3という自然数は0+3なのです。よって、1+3も3+1も、0から数えて何番目の自然数か?を表す式だとみなし、0+1+3、0+3+1と0+を付け加えると、結果が同じになる事に納得できるのではないでしょうか。
また、乗法は、同じ加法を一定数繰り返す演算として定義できるので、加法と同様に乗法も、自然数同士であれば結果は自然数になります。
このように、自然数と加法、乗法については、これだけで世の中の物事が済んでいるのであれば、他の数の概念は必要ないです。
負数
自然数が現実のものの数え上げに使われるということは、増える場合だけでなく、減る場合も扱えないと、現実のものの数を表す事ができません。ものが減る、という概念も、人間は割と小さい頃から理解しているようで、特に食事の量については食べれば減るし、最後にはなくなるという事を理解しています。
例えばみかんが2つあるとして、1つ食べれば1つになり、もう1つ食べれば0になります。0の概念はだいぶ昔から存在したようで、食料の在庫管理なんかを考えれば、当然と言えば当然です。
この数が減る演算は、加法の逆操作です。減法と名付けましょう。例えば2から1を減ずる場合は2-1とします。加法と異なり、このままでは順序を入れ替える事はできません。
干し肉が3切れあったとして、一週間に5切れ消費する事がわかっているとします。一週間後の干し肉の在庫はいくつでしょうか?3-5の結果は、自然数ではどうやら表せそうにありません。
少なくとも、一週間分の干し肉として3切れでは少なすぎるということはわかりますが、幾つ足りないのでしょうか?答えは2切れですね。この足りない数は、まず3切れ消費して干し肉の在庫が0切れになり、さらにそこから2切れ減るので最終的には0-2ということですね。
この0-2のうち、0を省略することで足りない分を表した数が負数です。自然数だけだった数の概念に負数を加えて、ここまでの数全体を整数と再定義します。
また、減法を負数に置き換えることで、減法を加法に置き換える事もできます。例えば3-5であれば3+(-5)といった形で加法だけにする事ができます。これなら(-5)+3のように順序を交換しても問題ありませんね。
整数同士の加法、減法、乗法の結果は整数になります。これだけであれば、これ以上、数の概念を拡張する必要はありません。
有理数
加法に逆操作が存在するのであれば、乗法にも逆操作が存在しそうです。乗法の逆操作を除法と言って、整数を整数分割する操作です。例えば4つのみかんを2人で半分に分ける場合、除法は演算子\divを使い、4 \div 2と表します。
乗法の逆操作なので、4 \div 2 \times 2とすると、\div 2と\times2は打ち消し合い、結果は4です。
除法は乗法の逆操作なので、整数同士の乗法で構成されている整数であれば、その構成要素の整数による除法の結果は整数に戻ってきます。この構成要素の整数を約数と言います。その約数以外で整数を割った場合、結果は整数になりません。例えば7 \div 2のような計算ですね。この場合、あまりが出る、という計算にする方法も存在します。しかし、あまりを認める演算は、乗法の逆操作だけでは説明できないので、少し扱いが難しいです。
そこで、除法を整数同士の比として表してしまいます。除法という操作はつまり、比を求める操作と言い換えることができ、それは同時に、乗法も比を表しているということです。
先ほどの例で言えば、7 \div 2をその比として\frac{7}{2}と表そう、ということです。この整数同士の比の事を有理数と呼び、これで、整数同士の加法、減法、乗法、除法については、有理数まで拡張する事によって計算可能になりました。
ここまでで演算が4種類出てきましたが、この加法、減法、乗法、除法は四則演算と言われ、数に対して良く用いられる代表的な演算です。
注意しなければならないのは、すべての数の概念に対して、四則演算が定義されなければならないわけではない事と、四則演算以外の演算も存在するという事です。
無理数
有理数と四則演算を扱えるようになった人類は、それらを使って色々な問題を解こうとします。主に未来予測や現象の分析に有理数と四則演算を使います。
例えば10[km]の道のりを1[時間]で移動した時の平均時速はいくつか?平均速度は道のり\div時間で定義されるので、これは簡単ですね。この逆問題、L[km]の道のりを2[時間]で移動した場合の平均速度が40[km/時間]だった場合の道のりを求めたい場合はどうでしょうか?
これを式で表すと、\frac{L}{2} = 40となります。この式を方程式と呼びます。未知数が具体的にどう言った数であるかを求めるための式です。
このような方程式は現実の色々な場面で出てきます。例えば物体の落下現象は加速度的な運動であることがわかっていて、以下の式で表現する事があります。
h=\frac{1}{2}gt^2
hは高さ、gは重力加速度、tは経過時間です。
さて、ある高さh_0から物体を落下させた場合、地面に到達するのは何秒後でしょうか?つまり、h_0もgも定数としてあらかじめわかっており、tだけがわからないという事です。
まず両辺に2をかけて2h_0 = gt^2と変形します。次に両辺をgで割る事で\frac{2h_0}{g} = t^2と変形します。ここからが問題ですね。
t^2はt \times tの事です。二乗することで\frac{2h_0}{g}となるような有理数は存在するでしょうか?運よく\frac{2h_0}{g}=4だった場合、t = 2 (未来予測なのでtは0以上)となります。この程度であればしらみつぶしでもtにふさわしい具体的な数値を見つけられそうですし、結果は有理数になってくれます。
では、残念なことに\frac{2h_0}{g} = 2だった場合はどうでしょうか?二乗して2になる数は有理数にはありません。そもそも、二乗して素数になる有理数は、定義からして存在しません。つまり、例の方程式は有理数だけでは解を見つけられない可能性がある、ということです。
つまり、少なくとも有理数の一部である素数について、素数=x^2となるような方程式が出てきた場合、有理数解は存在しません。証明は読者への演習課題とします。これは困りました。ここまでに登場した演算や数の概念では、どうやら表すことができない計算結果です。
さて、一般にx^2=Aのような方程式を二次方程式と言います。問題になっているのは二次方程式の解が、場合によっては有理数では収まらないという事です。では解が存在しないかというとそんな事はなさそうで、Aを0,1,2,3…と大きくしていくと、A=0,1,4,9,16,25,…の時にx=0,1,2,3,4,5,…となる事がわかります。
A=0,1,4,9,16,25,…を正方形の面積と考えると、一辺の長さが0,1,2,3,4,5,…の正方形を描く事ができます。この時、面積4の正方形を取り出して、対角線で4つの三角形に分割し、そのうち二つの三角形を合わせて正方形を作ります。その正方形の面積は、元の面積の半分なので2です。正方形なので一辺の長さは二乗して2になる数のはずです。
厳密な証明ではないですが、どうやら二乗して2になる数は存在しそうです。それも、有理数の外側の概念として存在していそうなのです。
具体的な数値を求める方法はここでは先延ばしにして、二乗して2になる数が存在しそうだということがわかったため、これをx^2=2という二次方程式の解として\sqrt{2}と表すことにします。
この数が存在した場合、有理数では表せないため、これを無理数と呼びます。つまり、二次方程式の一般解を求めたいために、有理数に無理数を加えて数の概念を拡張したのです。
因みに、\sqrt{}の記号を平方根と呼びますが、平方とは二乗の事、根とは方程式を満たす値、つまり解の事です。よって、\sqrt{2}は、x^2=2を満たす解、という意味です。同様に、\sqrt{3}はx^2=3を満たす解という事ですね。
さて、ここから先が、数がどのように発展したと捉えるか、人によって解釈が異なる分岐点です。歴史的に見れば、実数の登場よりも虚数の登場の方が先ですし、そちらの方が自然な拡張のように感じられます。
虚数
二次方程式の解については、平方根という無理数の一種を導入する事で、どんな二次方程式についても一般化する事ができるようになりました。0 = ax^2+bx+cの一般解は以下の通りです。
x=\frac{-b\pm{\sqrt{b^2 – 4ac}}}{2}
この一般解によって、二次方程式は二つの解を持つ、重解(重根)を持つ、解なし、に分類されるわけですね。
解なし、とは、b^2-4acが負数になり、負数の平方根を求めなければならない場合でした。二乗して負数になる数はここまでの数の概念に存在しないため、解なし、という判断もわからなくはないです。
特に、二次関数として図示した際に、b^2-4acが負となるような二次関数はx軸と交わらないため、直観的にも0=f(x)となるxが存在しない事がわかります。(この直観というものに人類は何度も裏切られるわけですが……。)
二次方程式の一般解を手に入れた人類は、三次方程式の一般解へと手を伸ばします。しかし、三次方程式の一般解を求めることは簡単ではありませんでした。
二次方程式の一般解は古代バビロニアの頃から知られていたということなので、この二次方程式と無理数解のところまでは、紀元前までで人類が手にした数学的概念ですが、三次方程式の一般解を導出できたのは大体16世紀ということなので、一千年以上もその部分では進捗が停滞していたわけですね。
三次方程式の一般解について結論を述べれば、公式中に、二乗して負になる数が出てきてしまいます。この二乗して負になる数、つまり虚数\sqrt{-1}の存在を認めることで、三次方程式の一般解を求める公式が成立します。
ここまでの有理数、無理数、虚数等の代数方程式の解になり得る数をまとめて代数的数と呼びます。
複素数
虚数は二乗して-1になる数、つまり\sqrt{-1}の事でした。例えば方程式x^2=-4があったとして、この解は虚数の概念を使えばx=\sqrt{-4}となります。このような虚数が出てきたときに、平方根記号の中身を4 \times -1と分解すれば、4と-1を分けてけることで\sqrt{4}\sqrt{-1}とできます。このように、虚数は常に\sqrt{正の数}\sqrt{-1}と表現できます。
この\sqrt{-1}を、記述性の向上のために係数iとして置き換えることで、虚数を正の数 \times iの形式で記述できるようになります。もちろん、i^2=-1です。
ここで、i=\sqrt{-1}なので、例えば1 + 2i=1+2\sqrt{-1}となり、これ以上計算を進めることはできません。つまり、虚数を含む数は必ず、虚数ではない項と虚数項を持つ和演算の形式になります。虚数ではない項を実部(real part)、虚数項を虚部(imaginary part)と呼びます。