虚数の虚数乗

1.虚数単位 i = √-1 の虚数単位乗、i ^ i はいくつになるか?
2.虚数単位の虚数単位乗 i ^ i ^ i ^ i ・・・ をどこまでも続けていったら、どうなるか?

先に答を言っちゃいます。
 1.e^(-π/2) という実数になります。
 2.どうやら、とある複素数に収束するらしいのです。
数式処理サイト、Wolfram|Alphaで確認してみましょう >> http://www.wolframalpha.com/

1.Wolfram|Alphaで「 ComplexExpand[I^I] 」と入力してみます。
虚数単位は大文字 I、ComplexExpand は複素数の形式で表示する、ということ)

答は e^(-π/2)、約 0.20788... という数になりました。

2.x = i^i^i^i^・・・だとすると、i^x = x となっていることでしょう。

そこで、Wolfram|Alphaで「 Solve[I^x == x, x] 」と入力してみます。
(Solve[*, x]は方程式 * を x について解け、ということ)

すると、上のような答が得られました。
Wnとあるところは、ランベルトのW関数というものです >> wikipedia:ランベルトのW関数

なぜ上のような答になるのか。
1.の解説は下のブログを見ましょう(他力本願)。
* 数学って面白い!? --「無理数乗」と「虚数乗」
>> http://blog.livedoor.jp/enjoy_math/archives/50662295.html
「一瞬で求まります」と書いてありますが、私は大いに悩んだよ。
さて、確かにこれで i^i = e^(-π/2) ということが分かったのですが、
いまひとつイメージというか、全体の形のようなものが見えてきません。
そこで、さらに Wolfram|Alphaを駆使して f(z) = i^z (z = x+iy) という複素関数のグラフを描いてみました。
Wolfram|Alpha で「 plot Re[I ^ (x + I y)] 」と入力してみます。
すると、こんなグラフが得られます。なんと3D。
Re は実数部分という意味です。つまりこれは、i^z の実数部だけを表示したものです。

虚数部を表示するには、Wolfram|Alpha で「 plot Im[I ^ (x + I y)] 」と入力してみます。
Im は虚数部分という意味です。つまりこれが、i^z の虚数部です。

f(z) = i^z の全容は、上の2枚の3Dグラフを合わせたものになります。
複素関数は、定義域が実数と虚数で2つの数字、値域が実数と虚数で2つの数字、
合わせて4つの数字なので4Dとなります。
4Dということは1枚の絵には収まらなくて、上の2枚の3Dグラフを脳内で合成することになるのですが
・・・想像が付くでしょうか。
例えば、上の3Dグラフの中から i ^ (i x) (xは実数) という部分を取り出すと、次のようになります。

つまり、3Dグラフをこの断面で切ると、指数関数になっているのです。
この指数関数のグラフ上で、x=1 のところが e^(-π/2) となっているわけです。
実はこのとき(肩に掛かっている数が純虚数のとき)、 i ^ (i x) の値は実数となります。
そのことは「 plot Im[I^(I x)] 」として虚数部のグラフを描こうとすると、値が0となることで確認できます。
あるいは、上の3Dグラフの中から i ^ (y) (yは実数) という部分だけを取り出すと、次のようになります。

この切り口から見ると、ちょうど Cos(y * π/2) といった形になっています。
全体として見ると f(z) = i^z という複素関数は、指数関数と三角関数が組み合わさったような形をしているのです。
参考: e^z という複素関数の形は、こんな風になっています。
* 複素数の指数関数 >> [id:rikunora:20090607]

続いて、問題の2.を見てみましょう。
i ^ i ^ i ^ i ^ ・・・は、どうなるか。
下から順番にやってみましょう。
i ^ i のことは分かったので、次は、i ^ i ^ i (iが3個)。

それでは、i ^ i ^ i ^ i(iが4個)は、どうなるか。

ならば、i ^ i ^ i ^ i ^ i (iが5個)は、どうだ。

試したところ、i ^ i ^ i ^ i ^ i ^ i (iが6個)までは答えてくれました。

以上を眺めてみると、なんとなく規則性が見えてきませんか。
つまり、こういうことなんです。

この規則性に基づいて、i^i^i^i... の値を計算してグラフを描いてみると、こんな風になりました。

なんと、複素平面上で渦を巻くようにして1点に収束していました。
100個目まで計算したところ、収束点はおよそ 0.438 + 0.360 i といった値でした。
たぶん、これが冒頭に示した答になっているのだと思います。
「たぶん」と付けたのは、実は冒頭の答には、ちょっと不確かなところがあるのです。
冒頭では、最初からあたかも i^i^i^i... の答が存在しているかのように式を入力していますが、
本当に i^i^i^i... の答が存在するのかどうか(収束するのかどうか)確かめていません。
ここでは実際に計算してみて、答が1点に集まりそうだということで、とりあえず良しとしちゃいます。
(だから「たぶん」なんです。。。)

ここで1つ、問題を思い付いてしまった。

 問題: z^z^z^z^... という式の値が収束する複素数 z の範囲を求めよ。

うーむ、どこから手をつけたものか。。。
とりあえずパソコンの計算力にものを言わせて、複素平面を絨毯爆撃するプログラムなら作れるけど。
# そこで作ってみたのが次の記事です >> [id:rikunora:20100504]

ちなみに実数の範囲で、√x^√x^√x^√x ... という計算は、x < e^(2/e) で収束するようです。
* 参考:WolframAlphaで√2^√2^√2・・・ >> [id:rikunora:20090531]
この√の√乗の連なり、上で紹介した「数学って面白い!?」ブログでも取り上げられていました。
>> http://blog.livedoor.jp/enjoy_math/archives/50662295.html

※おまけ: とある画像を作ってみた。いい感じ。

* とある櫻花の画像生成(ジェネレーター)>> http://to-a.ru/