Zenn
🤖

虚数の虚数乗の話

2021/08/27に公開

はじめに

虚数単位iiとは、自乗して-1になる数、つまりi2=1i^2=-1となる数として定義されます。虚数がからむ式として有名なのはオイラーの式

eiπ=1 e^{i \pi} = -1

でしょう。ネイピア数ee、円周率π\pi、虚数単位iiという「よくわからないもの」3つを組み合わせると-1になるという、とても不思議な式です。

さて、ネイピア数と円周率は実数です。したがって、eiπe^{i \pi}は、実数の虚数乗になっています。i2=1i^2=-1は、虚数の実数乗でした。残る組み合わせ、「虚数の虚数乗」、つまりiii^iはどんな数になるでしょうか?実はiii^iは実数になります。値は不定ですが、主値を取るとeπ/20.20787957e^{-\pi/2} \sim 0.20787957と、やはりネイピア数や円周率が出てきます。

なぜこうなるか?という証明はわりとネットに落ちているのですが、そこにたどり着く過程が面白いと思ったので、ちょっと記事にまとめてみます。以下、数学的にはわりといい加減なことを書くので、ガチ勢は曲がれ右ね。

指数法則

2を2回かけたものを222^2と表記することにします。2を3回かけたら232^3です。

23=2×2×2 2^3 = 2 \times 2 \times 2

さて、すぐにわかることは、222^2232^3をかけると252^5になることです。

22×23=2×222×2×2×223=25 \begin{aligned} 2^2 \times 2^3 &= \underbrace{2 \times 2}_{2^2} \times \underbrace{2 \times 2 \times 2}_{2^3} &= 2^5 \end{aligned}

以上から、自然数a,ba,bに対して、2a×2b=2a+b2^a \times 2^b = 2^{a+b}が成り立つことがわかります。

次に、232^3に、さらにもう一度232^3をかけてみましょう。

23×23=26 2^3 \times 2^3 = 2^6

です。また、同じものをかけているので指数の形でもかけます。

23×23=(23)2 2^3 \times 2^3 = (2^3)^2

つまり、

(23)2=26 (2^3)^2 = 2^6

です。以上から、自然数a,ba,bに対して(2a)b=2ab(2^a)^b = 2^{ab}が成り立つことがわかります。このような法則を指数法則と呼びます。

有理数への拡張

ここまでの議論では、2a2^aaaは自然数でした。これを0や負の数、有理数、そして無理数へと拡張していくのがこの記事の目的です。

割り算を考えましょう。232^3222^2で割ると22になります。

2322=2×2×22×2=2 \begin{aligned} \frac{2^3}{2^2} &= \frac{2 \times 2 \times 2}{2 \times 2}\\ &= 2 \end{aligned}

ここから、a>ba>bである自然数a,ba,bに対して、2a/2b=2ab2^a/2^b = 2^{a-b}が成立すると言えそうです。

さて、ここでa=ba=bの場合を考えます。すると、分子と分母が一致しますから、値は1です。したがって、

2a2a=2aa=20=1 \frac{2^a}{2^a} = 2^{a-a} = 2^0 = 1

以上から、任意の数の「0乗」は1である、と定義できそうです。指数のとり得る値として自然数から00を含む数へ踏み出せました。

ではa<ba<bの場合はどうでしょうか?例えばa=2a=2b=3b=3の場合、

2223=12 \frac{2^2}{2^3} = \frac{1}{2}

となります。ここで先程の法則2a/2b=2ab2^a/2^b = 2^{a-b}a<ba<bの場合にも成り立つと考えると、

21=12 2^{-1} = \frac{1}{2}

となります。以上から、1/2a1/2^a2a2^{-a}と表記できそうです。指数が「負の整数」まで拡張されました。

先程、(2a)b=2ab(2^a)^b = 2^{ab}が成り立つことを見ました。いま、自乗したら22になるような数を考え、それを無理やり2a2^aと書いてみましょう。

(2a)2=22a=2=21 (2^a)^2 = 2^{2a} = 2 = 2^1

ここから2a=12a=1、つまりa=1/2a=1/2であることがわかります。自乗して2になる数なので、これは2の平方根です。以上から

2=21/2 \sqrt{2} = 2^{1/2}

と定義できそうです。mm乗根を考えれば

2m=21/m \sqrt[m]{2} = 2^{1/m}

です。さらにそれをnn乗してやれば

(2m)n=2n/m (\sqrt[m]{2})^n = 2^{n/m}

です。以上から、指数のとり得る値として有理数全体まで広げることができました。

指数関数の定義

いま、y=2xy = 2^xという関数を考えましょう。最初はxxは自然数でした。それが整数に拡張され、さらに有理数全体まで拡張が完了しました。これをグラフにプロットすれば、非常になめらかに見える関数が書けます。しかし、有理数全体は「すかすか」なので、これをなめらかにつないで「実数全体」に拡張したくなります。

exponential

実数を考えるということは、極限を考えること、つまり微分について考えることを意味します。つまり、y=2xy = 2^xという関数に対して、xxに関する微分が定義できれば、xxとして実数全体に適用範囲を広げたことになります。

まず、y=2xy = 2^xy=3xy = 3^xといったxx乗の関数をf(x)f(x)と書きましょう。2x2^x2y2^yをかけると2x+y2^{x+y}になるのでした。また、任意の数の0乗は1ですから、f(0)=1f(0)=1です。

この指数法則をちゃんと書くと

f(x)f(y)=f(x+y)f(0)=1 \begin{aligned} f(x)f(y) &= f(x+y)\\ f(0) &= 1 \end{aligned}

です。これを全ての実数x,yx,yで満たすような関数を構成するのが目的です。

さて、この二つの条件を満たす関数は無数にありますが、ここで条件を二つ付け加えます。まず、f(x)f(x)が任意のxxに関して無限回微分可能であるとします。これは、たとえばy=2xy=2^xにおいて、xxが有理数全体で定義されていたものを、なめらかにつないだ関数を考える、ということです。ここまでではy=f(x)y=f(x)として2x2^x3x3^xも条件を満たしますが、もう一つ、x=0x=0における微係数が11、つまり

f(0)=1 f'(0) = 1

となることを要請しましょう。この条件により、関数f(x)f(x)が一意に決まります。条件をもう一度まとめると、

f(x)f(y)=f(x+y)f(0)=1f(0)=1 \begin{aligned} f(x)f(y) &= f(x+y)\\ f(0) &= 1\\ f'(0) &= 1 \end{aligned}

を満たす連続な(無限回微分可能な)関数f(x)f(x)を考えます。すると、微分の定義からf(x)=f(x)f'(x) = f(x)、つまり微分しても自分自身に戻ることが証明できます。

ddxf(x)=limh0f(x+h)f(x)h=limh0f(x)f(h)f(x)h=f(x)limh0f(h)1h=f(x)limh0f(h)f(0)h=f(x)f(0)=f(x) \begin{aligned} \frac{d}{dx}f(x) &= \lim_{h\rightarrow 0} \frac{f(x+h) - f(x)}{h} \\ &= \lim_{h\rightarrow 0} \frac{f(x)f(h) - f(x)}{h} \\ &= f(x) \lim_{h\rightarrow 0} \frac{f(h) - 1}{h} \\ &= f(x) \lim_{h\rightarrow 0} \frac{f(h) - f(0)}{h} \\ &= f(x) f'(0)\\ &= f(x)\\ \end{aligned}

途中で指数法則f(x+h)=f(x)f(h)f(x+h) = f(x)f(h)や、f(0)=1f'(0)=1を使いました。ここから

f(0)=f(0)=f(0)==fn(0)=1 f(0) = f'(0) = f''(0) = \cdots =f^n(0) = 1

がわかります。さて、無限回微分可能であることを要請したので、x=0x=0まわりでテイラー展開できます。

f(x)=n=0fn(0)n!xn f(x) = \sum_{n=0}^{\infty} \frac{f^n(0)}{n!} x^n

いま、全てのnnについてfn(0)=1f^n(0)=1なので、

f(x)=n=0xnn! f(x) = \sum_{n=0}^{\infty} \frac{x^n}{n!}

です。このテイラー展開で表現される関数を指数関数と呼び、exp(x)\exp(x)で表します。この関数にx=1x=1を代入した値をeeと書きましょう。

exp(1)e \exp(1) \equiv e

このeeをネイピア数と呼びます。すると、

exp(x)=ex \exp(x) = e^x

と表すことができます。exp(x)\exp(x)は実数全体で定義したので、実数xxに対してxx乗する操作を定義できました。指数関数はもともとの定義から、指数法則を満たします。さらに実数全体に拡張したので、微分できるようになりました。x=0x=0における微分係数が11であるべし、という条件から、微分しても自分自身に戻ります。

ddxex=ex \frac{d}{dx} e^x = e^x

対数関数の定義

さて、ネイピア数eeを導入し、実数全体に対してexe^xを定義できました。次に2x2^xとか3x3^xなど、任意の数のxx乗を定義したくなります。そのために、対数関数を定義しましょう。

対数関数log(x)\log(x)を指数関数の逆関数として定義します。つまり、

x=exp(y) x = \exp(y)

である時、これをyyについて解いて

y=log(x) y = \log(x)

とします。これが対数関数です。x=exp(y)x = \exp(y)を両辺自乗してやりましょう。

x2=exp(2y) x^2 = \exp(2y)

逆に解けば、

2y=log(x2) 2 y = \log(x^2)

もともとy=log(x)y = \log(x)でしたから、

log(x2)=2log(x) \log(x^2) = 2 \log(x)

です。一般に、

log(xa)=alog(x) \log(x^a) = a \log(x)

が成り立つことがわかります。また、exp(1)=e\exp(1) = eというのがネイピア数の定義でしたから、

e=exp(1) e = \exp(1)

より、

log(e)=1 \log(e) = 1

です。このように決めた対数関数を「自然対数」と呼びます[1]

対数関数を導入すると、2x2^xexe^xの形で書き直すことができます。2x2^xの対数を取ると、

log(2x)=xlog(2) \log(2^x) = x \log(2)

さて、log(e)=1\log(e) = 1でしたから、

log(2x)=xlog(2)log(e) \log(2^x) = x \log(2) \log(e)

xlog(2)x\log(2)を改めてaaと表記すると

log(2x)=alog(e)=log(ea) \begin{aligned} \log(2^x) &= a \log(e) \\ &= \log(e^a) \end{aligned}

以上から、

2x=exlog2 2^x = e^{x \log 2}

であることがわかりました。これを底の変換と呼びます。これで任意の実数a,xa,xについて、axa^xが定義できました。

複素数への拡張

ここまでで、任意の実数a,xa,xについて、axa^xが定義できました。次に、xxを複素数に拡張したくなります。そのためには指数関数exp(x)\exp(x)の引数に複素数を突っ込めるようにしなければなりません。指数関数exp(x)\exp(x)

exp(x)exp(y)=exp(x+y)exp(0)=1ddxexp(x)x=0=1 \begin{aligned} \exp(x)\exp(y) &= \exp(x+y)\\ \exp(0) &= 1\\ \left. \frac{d}{dx}\exp(x)\right|_{x=0} &= 1 \end{aligned}

を満たす無限回微分可能な関数として定義しましたが、このままでは虚数や複素数を突っ込んだらどうなるかがわかりません。そこで、テイラー展開を考えます。指数関数のテイラー展開は以下のようになるのでした。

exp(x)=n=0xnn! \exp(x) = \sum_{n=0}^{\infty} \frac{x^n}{n!}

これを、指数関数の「定義」として採用します。すると、xxに複素数を突っ込むことができるようになります[2]

特にexp(ix)\exp(ix)を考えると、

exp(ix)=n=0(ix)nn! \exp(ix) = \sum_{n=0}^{\infty} \frac{(ix)^n}{n!}

とあります。ixixの偶数乗は実数となり、奇数乗は純虚数となることから、実部と虚部に分けて整理すると、オイラーの公式

exp(ix)=cos(x)+isin(x) \exp(ix) = \cos(x) + i \sin(x)

を得ることができます。

例えば、x=πx=\piを入れると、

exp(iπ)=cos(π)+isin(π)=1 \exp(i\pi) = \cos(\pi) + i \sin(\pi) = -1

となります。対数関数は指数関数の逆関数ですから、log(1)\log(-1)とは、「指数関数exp(x)\exp(x)の値が-1である時、xの値は何ですか?」という問いになり、この場合はiπi\piでしたから

log(1)=iπ \log(-1) = i \pi

となります。しかし、三角関数は周期関数であり、引数に整数nnに対して2nπ2n\piを足しても同じ値になります。つまり、

exp(i(π+2nπ))=cos(π+2nπ)+isin(π+2nπ)=1 \exp(i(\pi+2n\pi)) = \cos(\pi+2n\pi) + i \sin(\pi+2n\pi) = -1

ですから、

log(1)=i(2n+1)π \log(-1) = i (2n + 1)\pi

となります。つまり、指数関数は虚軸方向には周期関数であることを反映して、対数関数が多価関数になります。これだと不便なので、代表的な値を「主値」と定め、一つの値で代表させることにします。ここでは先程の式のn=0n=0の場合を主値として、

log(1)=iπ \log(-1) = i\pi

を採用しましょう。

虚数の虚数乗

さて、長い道のりでしたが、ようやく虚数の虚数乗を定義する準備ができました。我々が知りたいのはiii^iです。底の変換公式から、

ii=exp(ilog(i)) i^i = \exp\left(i \log(i)\right)

となります。log(i)\log(i)とは、exp(x)=i\exp(x) = iとなるようなxxのことですから、オイラーの公式

exp(ix)=cos(x)+isin(x) \exp(ix) = \cos(x) + i \sin(x)

から、cos(x)=0\cos(x) = 0sin(x)=1\sin(x) = 1となるようなxxです。これはnnを整数として

x=i(π2+2nπ) x = i\left(\frac{\pi}{2} + 2n\pi\right)

です。

log(i)=i(π2+2nπ) \log(i) = i\left(\frac{\pi}{2} + 2n\pi\right)

です。両辺にiiをかけると、

ilog(i)=(π2+2nπ) i\log(i) = -\left(\frac{\pi}{2} + 2n\pi\right)

これを指数関数に突っ込むと、

ii=exp((π2+2nπ)) i^i = \exp\left(-\left(\frac{\pi}{2} + 2n\pi\right) \right)

主値(n=0n=0)を取ると、

ii=exp(π2)0.20787957 i^i = \exp\left(-\frac{\pi}{2}\right)\sim 0.20787957

これが欲しかった値でした。

まとめ

虚数の虚数乗iii^iを計算するために、わりと長い旅が必要でした。もともと指数とは「2をnn回かけたものを2n2^nと書く」のように、nnは1,2と数えられる数、すなわち自然数でした。それを、指数法則から00や負の数まで拡張しました。「1,2,3,...」と数えられる自然数に対して、なにもない「0」や、負の数の概念は不思議です。例えば「-3本の鉛筆」を手にとって見せることはできません。例えば「誰かに鉛筆を3本借りている状態」を、「-3本の鉛筆を持っている状態」と「定義」することになります。さらに、有理数に拡張すると「1/2本の鉛筆」みたいな概念があらわれます。そこまではまだイメージできるとしても、「2\sqrt{2}本の鉛筆」だといろいろ怪しくなってきて、「ii本の鉛筆」になるともう想像することはできないでしょう。

数学はこのように、「何かが満たす関係式を導出し、逆にその関係式を定義だと思って適用範囲を広げる」ということをよくやります。このiiii乗は、典型的な「どんどん適用範囲を広げましょう」というパターンだと思ったので、簡単に紹介してみました。

ここでの議論はかなりいい加減で、本当は何かを級数で定義したら、それは収束するのか、収束するならどの範囲で収束するのか、微分とは何か、連続とは何か、といったことを真面目に議論しなければいけません。そのあたりは大学の初等関数論でしっかり学んでください。

合わせて読みたい

脚注
  1. 自然対数をln\ln、常用対数log\logと書く流儀もありますが、ここでは自然対数しか出てこないためlog\logを自然対数とします。 ↩︎

  2. テイラー展開を関数の定義として採用することで、xxとして行列や微分演算子なども突っ込めるようになります。 ↩︎

GitHubで編集を提案

Discussion

ログインするとコメントできます