tsujimotterのノートブック

日曜数学者 tsujimotter の「趣味で数学」実践ノート

iのi乗はそこに至る経路で決まる

みなさん、 i^i がどんな値になるか考えたことはありますか?

「複素数のべき乗ってなんだよ」と思う方もいるかもしれません。素朴に「 i i 回かける」なんて考えたら、意味がわからないですよね。

この問題について一度考えたことがある方の中には「 e^{-\pi/2} だよ」と答える方もいるかもしれません。たしかに、 i^i としては  e^{-\pi/2} を取ることもあります。しかしながら、本当に  e^{-\pi/2} だと言い切ってしまってよいでしょうか?


一般に、一つの  x に対して  f(x) が複数の値をとるような関数のことを 多価関数 といいます。

f:id:tsujimotter:20191203090334p:plain:w300

複素数を変数に持つような関数を考えるにあたっては、このような性質を慎重に検討する必要があります。実際、 i^i を議論する際は、こうした多価関数の値として考える必要があり、単純に  e^{-\pi/2} だとは言い切れなくなってしまうのです。


最近tsujimotterは、こうした多価関数の基本的な性質について勉強していまして、そのノートを以下に公開していました。本記事では、そのノートの内容を丁寧にまとめてみたいと思います。


前日に公開した「超幾何級数に関する記事」でも、今回の結論の一つを使っています。前日の記事でわからなかった方は、今回の記事を参考にしていただけると幸いです。
tsujimotter.hatenablog.com



 x^\alpha とは

 2^3 のような式は

 2^3 = 2 \cdot 2 \cdot 2

という式で定義され、「2を3回かけたもの」として理解されます。

 i^i を考えるにあたっては、底の部分や指数の部分のどちらも複素数とするような一般の「べき乗」を考える必要がありますが、その場合は上記のような「素朴な理解」は難しくなります。


そこで次の方法を用いて複素数の複素数乗を定義することにします。

以下は  x \alpha を複素数とします。今回の記事を通して、 x と書いたら指数関数の「底」、 \alpha と書いたら指数関数の「指数」と約束することにします。 x^\alpha は一般に、次の式で定義されます:

 x^\alpha = \exp( \alpha \log x ) \tag{1}

ここで、 \exp, \; \log はそれぞれ複素数を変数にとる指数関数対数関数です。それぞれ説明していきましょう。

指数関数

指数関数  \exp(x) は、高校で習う  e^x を複素数に拡張した関数のことです。高校では  x として実数しか取らなかったと思いますが、複素数に拡張するにあたっては、素朴な「べき乗」の定義ではうまくいきません。そこで、次のべき級数(べき乗の無限個の和)をもって指数関数の定義とします:

 \displaystyle \exp(x) = 1 + x + \frac{x^2}{2} + \frac{x^3}{3!} + \cdots \left(= \sum_{n=0}^{\infty} \frac{x^n}{n!} \right) \tag{2}

 (2) のべき級数は、複素数平面全体で収束することが知られています。したがって、 \exp(x) はどんな複素数  x を入れても値を返してくれる、とても性質のよい関数になります。(さらにいうと、値が  \exp(x) = 0 になるような点  x がない、ということも知られています。)

複素数の指数関数  \exp(x) x ix を代入して得られる次の等式は有名です:

 \exp(ix) = \cos(x) + i\sin(x) \tag{3}

これはオイラーの公式と呼ばれるものです。右辺に  \sin, \cos が登場しましたが、それぞれのテイラー展開を求めて、比較することで公式が得られます。今回は本題ではないのでやりません。

オイラーの公式によって、指数関数には周期があることがわかります。 \exp(x + 2\pi i) を計算してみると、指数法則

 \exp(a+b) = \exp(a) \exp(b) \tag{4}

より

 \exp(x+2\pi i) = \exp(x) \exp(2\pi i)

となりますが、オイラーの公式(式  (3))によって  \exp(2\pi i) = 1 であることがわかります。結局

 \exp(x+2\pi i) = \exp(x) \tag{5}

となるわけです。この式の意味するところは、指数関数は変数  x 2\pi i 加えても(引いても)関数の値を変えないということです。すなわち

「指数関数は周期  2\pi i を持つ」

ということです。このことは、指数関数にとって(少なくとも今日の記事においては)の最大の重要ポイントとなります。

対数関数と多価性

あとは、複素数変数の対数関数を定義すれば、複素数のべき乗が定義できるようになります。ところが、この対数関数が一番厄介です。

対数関数  \log(x) は、指数関数  \exp(x) の逆関数として定義されます。すなわち複素数  x, y

 x = \exp(y)

となるよう定めたとき

 y = \log(x)

として対数関数を定義します。


これにて一応定義はできたのですが、問題なのは指数関数の周期です。指数関数は周期  2\pi i を持つ、つまり

 x = \exp(y) = \exp(y + 2\pi i)

なので、 \log(x) としては  y y + 2\pi i のどちらもとり得ることになります。もっというと、 n を任意の整数として  y + 2\pi i n という「無限通りの値」をとることになります。

f:id:tsujimotter:20191203194625p:plain:w400

このように、関数が1つの変数に対して複数の値をとるという性質のことを多価性といい、多価性を持つ関数のことを多価関数といいます。

なお、通常「関数」といったら値が一つのもの(1価関数)を指しますね。今回は、多価性を議論したいので、特別に多価関数についても関数という名前を使って呼びます。


さて、対数関数  \log(x) の多価性をより精密に分析していきましょう。変数  x は複素数なので、以下のように表すことができます:

 \newcommand{\arg}{\operatorname{arg}}x = |x| (\cos \arg(x) + i \sin \arg(x) )

 |x| x の絶対値(原点からの距離)で、 \arg(x) x の偏角です。図で表すとこんな感じですね。

f:id:tsujimotter:20191203194726p:plain:w260

この式をオイラーの公式を用いて

 \begin{align} x &= |x| (\cos \arg(x) + i \sin \arg(x) ) \\
&= |x|\exp(i \arg(x) ) \end{align}

と変形できます。これを  \log(x) に代入しましょう。

すると

 \begin{align} \log(x) &= \log( |x|\exp(i \arg(x) ) ) \\
&= \log(|x|) + i \arg(x) \end{align} \tag{6}

とできます。 \log(|x|) |x| が実数なので明らかに実関数です。したがって問題なく計算できます。ここで問題になるのは  i \arg(x) の項ですね。


普通、偏角  \arg(x) を考える際は、上の図のように「実軸から左回りに回転したときの角」をイメージしますね。

一方で、次のようにあえて「 x = 0 の周りを左回りに1周回転した上で」角度をとってもいいですよね。

f:id:tsujimotter:20191203091345p:plain:w300

1周どころか2周、3周、4周、……と何周してから角度を考えてもよいでしょう。


このように考えると、 \arg(x) は少しややこしい関数になってしまいます。

1周目の範囲で考えた角度を  \newcommand{\Arg}{\operatorname{Arg}}\Arg(x) と表します。すなわち、 0 \leq \Arg(x) < 2\pi です。 \Arg(x) のことを、 \arg(x)主値といいます。

このように定義した  \Arg(x) を用いると、 \arg(x)

 \begin{align} \arg(x) = & \Arg(x), \\ & \Arg(x) \pm 2\pi, \\ & \Arg(x) \pm 4\pi, \\ & \Arg(x) \pm 6\pi, \\ &  \vdots \end{align}

と表すことができます。 \arg(x) は1つの変数  x に対して複数の値が対応する関数となっていますので、本質的に多価関数だったというわけです。

f:id:tsujimotter:20191203195537p:plain:w400


「いやいや、そんなこと考えなくたって、素直に  \arg(x) = \Arg(x) と定義すれば値は1個にきまるじゃない」と思った方もいるかもしれません。 \Arg(x) は1価関数なので、これでいいじゃんと。実際、これで事足りる場面も多いです。


一方で、関数の「連続性」を考えようと思うと、この定義がうまい方法ではないとわかります。次の左図のように、複素数  x x = 0
周りで左回りに1周させたとき、 \Arg(x) の値を計算してみます。また、横軸を  x の時刻とし、縦軸を  \Arg(x) とすると次の右図のグラフが得られます:

f:id:tsujimotter:20191203100346p:plain:w420

グラフを見て明らかなように、 x は連続的に動かしているのにも関わらず、 \Arg(x) が不連続な値をとってしまいます。これでは  \Arg(x) が連続ではなくなり、その  \Arg(x) を用いた  \log に不連続性が遺伝します。さらには、 x^\alpha も不連続な関数になってしまいます。

困りました。

普遍被覆面

ここでは  \arg(x) の連続性について、もう一つ発展的な考えを導入したいと思います。

今度は、 \arg(x) はどこでも連続的な関数であるとして、 x x = 0 のまわりを左回りに1周まわって元の位置に戻ってきたときには、 \arg(x) +2\pi されると考えるのです。

f:id:tsujimotter:20191203101000p:plain:w420

これなら、 \arg(x) が不連続に値を変えることはありません。


複素数平面の「同じ点」なのに、1周して戻ってくると値が変わってしまうのは不思議な感じがするかもしれません。

ここで大きな発想の転換が必要になります。これまでは  \arg(x) の定義域として、複素数平面という一枚のシートを考えていました。今度は「 x = 0 のまわりを左回りに何周したか」という情報と複素数平面をセットで考えるような、新しい定義域を考察したいと思います。

 x = 0 のまわりを左回りに1周すると、複素数平面の階層が一段上がる」というイメージで考えるといいかもしれません。まるで螺旋階段のようなものを登っていると想像するといいでしょうか(次の図のようなイメージ)。

f:id:tsujimotter:20070802214735j:plain:w240

これまでは関数の定義域として、複素数平面  \mathbb{C} から1点  x = 0 を抜いた  \mathbb{C}\setminus \{0\} を考えていましたが、ここからは情報が付与された「拡張された面」を考えるということですね。このような面のことを、 \mathbb{C}\setminus \{0\}普遍被覆面といい、 \widetilde{\mathbb{C}\setminus \{0\}} という記号で表します。

普遍被覆面  \widetilde{\mathbb{C}\setminus \{0\}} 上の点  x を考えて、 \arg(x) をその点で定まる関数と考えれば、関数の値は1つに定まります。すなわち、1価関数になります。


 \log の定義に使う  \arg 関数としては、上のものを採用することにします。すなわち、 \log も普遍被覆面  \widetilde{\mathbb{C}\setminus \{0\}} 上の関数として考えるのです。 x^\alpha も同様です。

 x^{\alpha} は1周すると  \exp(2\pi i \alpha) 倍される

 x = 0 の点は、1周すると関数の値が変わってしまうという特異な点なのでした。このような点を 分岐点 といいます。分岐点をぐるっと1周させて戻ってくると関数の値が変わる現象のことを モノドロミー というそうです。

ここでは  x^\alpha のモノドロミーを具体的に計算してみましょう。


複素数平面上に次のような点  x_0 を考えます。この  x_0 の偏角を  \arg(x_0) = \Arg(x_0) としておきましょう。

f:id:tsujimotter:20191203101231p:plain:w300

 \arg(x) は実際には無限に回転する螺旋階段(普遍被覆面)上の関数なわけですが、「現在どの高さにいるのか」という情報を指定をしないと関数の値が定まりません。このように、定義域の面上の点に加えて、普遍被覆面のどの点にいるかを指定することを 分枝をとる といいます。上では  \arg(x_0) について、値が  0 \leq \arg(x_0) < 2\pi の範囲に収まるよう分枝をとったと考えます。


さて、 x_0 を次の図のように  x = 0 のまわりを左回りに1周させましょう。1周して戻ってきた点は座標としては同じ  x_0 ですが、普遍被覆面としては1階層上がっているので異なる点だと考えます。この点を  x_0' とおきます。

f:id:tsujimotter:20191203101426p:plain:w220

これから考えたいのは、 x_0' におけるそれぞれの関数の値  \arg(x_0'), \; \log(x_0'), \; x_0'^\alpha です。


まず、 \arg(x_0') についてですが、単に1周させただけなので

 \arg(x_0') = \arg(x_0) + 2\pi \tag{7}

であることはよいでしょう。


次に  \log(x_0') を計算します。 \log の定義式  (6) と式  (7) より

 \begin{align} \log(x_0')  &= \log(|x_0'|) + i\arg(x_0') \\
 &= \log(|x_0|) + i\arg(x_0) + 2\pi i  \\
 &= \log(x_0) + 2\pi i  \end{align} \tag{8}

が得られます。つまり  \log という関数は、 x = 0 のまわりを左回りに1周させると  +2\pi i されるということですね。


最後に  x_0'^\alpha を考えます。定義式  (1) より

 \begin{align} x_0'^\alpha  &= \exp(\alpha \log(x_0') ) \\
 &= \exp(\alpha (\log(x_0) + 2\pi i) ) \\
 &= \exp(\alpha \log(x_0) ) \cdot \exp(2\pi i\alpha) \\
 &= x_0^\alpha \cdot \exp(2\pi i\alpha)  \end{align} \tag{9}

よって、結論を取り出すと

 x_0'^\alpha = x_0^\alpha \cdot \exp(2\pi i\alpha) \tag{10}

ということがわかりました。これはすなわち「 x^{\alpha} x = 0 のまわりを左回りに1周させると  \exp(2\pi i \alpha) 倍される」ということですね。


 i^i を計算する

 x^\alpha の挙動が掴めてきましたので、いよいよ  i^i に挑みたいと思います。 x^\alpha において、 x = i, \; \alpha = i と代入したものと思えますね。 x の方の  i は普遍被覆面  \widetilde{\mathbb{C}\setminus \{0\} } 上の点だと思えます。

そこで、 \arg(i) の分枝を決めたいのですが、 0 \leq \arg(i) < 2\pi となるようにとるとしましょう。すると  \arg(i) = \pi/2 となりますね。

f:id:tsujimotter:20191203102114p:plain:w260

このときの  i^i の値は、定義式  (1) より

 \begin{align} i^i &= \exp(i \log(i) ) \\
 &= \exp(i \log(|i|) + i\cdot i \arg(i) ) \\
 &= \exp(i \log(1) - \pi/2 ) \\
 &= \exp(- \pi/2 ) \end{align}

と計算できます。結局

 i^i = e^{- \pi / 2}

ということですね。

この値は実数であり、計算すると

 e^{- \pi / 2} = 0.20787957635\ldots

となります。 i i 乗が実数値になるというのは面白いですね。



上記では、 \arg(i) の分枝を  0\leq \arg(i) < 2\pi の範囲で定めました。これは  \arg(1) = 0 となるよう  \arg の分枝をとり、 x = 1 から図のような経路を辿って  x = i に到達したと言い換えることもできます。

f:id:tsujimotter:20191203102146p:plain:w260


次は、 \arg(1) の分枝を同様にとって、 x = 1 から  x = 0 のまわりを左回りで1周してから、図のように  x = i に到達するような経路を考えましょう。このような  i を上と区別するために  i' と書いて、同様に  i'^i を考えます。

f:id:tsujimotter:20191203102441p:plain:w260

まず、 \arg(i') ですが、 x = 0 のまわりを左回りで1周していますので、 \arg(i) + 2\pi となります。 \arg(i) = \pi/2 より

 \displaystyle \arg(i') = \frac{\pi}{2} + 2\pi = \frac{5\pi}{2}

です。

このときの  i'^i の値は、定義式  (1) より

 \begin{align} i'^i &= \exp(i \log(i') ) \\
 &= \exp(i \log(|i'|) + i\cdot i \arg(i') ) \\
 &= \exp(i \log(1) - 5\pi/2 ) \\
 &= \exp(- 5\pi/2 ) \end{align}

と計算できます。結局

 i'^i = e^{- 5\pi / 2}

であるということですね。

先ほど計算した  i^i と値が異なっていることに注意しましょう!


前節で述べたように、 x^\alpha x = 0 の周りを左回りに1周するたびに  \exp(2\pi i  \alpha) 倍されるため、

 \exp(2\pi i \cdot i) = \exp(-2\pi)

より、1周するごとに  e^{-2\pi} 倍されていると考えてもいいでしょう。

まとめ

以上の議論により、 i^i は経路によって異なる値をとりえて

 i^i = \ldots, \; e^{-9\pi/2}, \; e^{-5\pi/2}, \; e^{-\pi/2}, \; e^{3\pi/2}, \; e^{7\pi/2}, \; \ldots

となります。これがタイトルで述べた

 i i 乗はそこに至る経路で決まる

の意味するところです。

 i^i のとりうる値はどれもすべて正の実数ですが、そこに至る経路によって複数の値をとりえて、しかもいくらでも大きな値、いくらでも0に近い値をとりうるということですね。面白いです。


今回の記事の途中で得られた次の事実:

一般に  x, \; \alpha を複素数としたとき、変数  x x = 0 の周りで左回りに一周すると  x^\alpha \exp(2\pi i \alpha) 倍される

はしばしば使われます。よかったらこれを期に覚えてもらえると嬉しいです。


それでは今日はこの辺で。

おまけ

 x = 0 のまわりを左回りに1周すると関数の値が変化する」という現象を理解するために、可視化プログラムを作ってみました。

 \log 関数の可視化をしたものですが、1周するたびに  +2\pi i される様子が理解できるかと思います。ぜひ遊んでみてください。

http://tsujimotter.info/works/quintic/monodromy_log.html

参考文献

以下の本は、超幾何関数の勉強をしている中で出会った本ですが、第0章に ものすごく丁寧に 多価関数についての導入がされています。tsujimotterはこの本のおかげで多価関数やモノドロミーについて理解できました。

超幾何関数 (すうがくの風景)

超幾何関数 (すうがくの風景)

  • 作者:原岡 喜重
  • 出版社/メーカー: 朝倉書店
  • 発売日: 2002/10/01
  • メディア: 単行本

普遍被覆面については「ガロアの夢」という本でより詳しく解説されています。「人はしっぽをもっている」から始まる章は必見です。

ガロアの夢―群論と微分方程式

ガロアの夢―群論と微分方程式

  • 作者:久賀 道郎
  • 出版社/メーカー: 日本評論社
  • 発売日: 1968/07/01
  • メディア: 単行本