Hatena::ブログ(Diary)

小人さんの妄想 このページをアンテナに追加 RSSフィード Twitter

2010-05-04

虚数の虚数乗(2)

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

f:id:rikunora:20100504103922p:image

* これは前回の続きです >> id:rikunora:20100429

虚数虚数乗の虚数乗の虚数乗・・・という計算をどこまでも繰り返していったら、

一定値に収束する数と、そうでない数があります。

前回見たように、i^i^i^i^... という式はとある複素数に収束していました。

一方、10^10^10^10^... といった式は、どう見ても発散します。

ならば、どんな複素数が収束して、どんな複素数が発散するのか?

結果はちょっと想像が付きませんが、パソコンで繰り返し計算して様子を探ることはできます。

今回はそれを試してみました。


ところで、複素数の計算を繰り返し行って収束を見る、ということで有名なフラクタル図形があります。

マンデルブロー集合です >> wikipedia:マンデルブロ集合

今やろうとしていることは、このマンデルブロー集合の描き方にそっくりです。

そこで、既にあるマンデルブロー集合の描画プログラムを元に改造して、今回のプログラムを作ることにしました。

探したところ、こんなプログラムがありました。

* CodeZine -- マンデルブロー集合による新しいフラクタル図形を探索する

>> http://codezine.jp/article/detail/256

このプログラムの数式の部分を差し替えて、今回のプログラムとしました。

肝心の数式部分は、Wolfram|Alphaのお世話になりましょう。>> http://www.wolframalpha.com/

f:id:rikunora:20100504104011g:image

この式に従って、複素数複素数乗を、実数部と虚数部に分けて繰り返し計算します。

問題なのは、繰り返し計算が発散したのか、収束したのかの見分け方です。

ここでは、繰り返し計算の1つ前の値と今回の値がほとんど違わなくなったら収束したと見なすことにしました。

つまり Abs( Z[n-1] - Z[n] ) < ε ということです。

こうしてできたのが、下の URLにあるアプレットです。

* 虚数虚数Applet (要Java、環境によっては非常に重たいので注意!)

>> http://brownian.motion.ne.jp/memo/PowPow.html

さっそく結果を見てみましょう。

f:id:rikunora:20100504104035g:image

(中心(0,0)、範囲2.5)

おおっ、何とも複雑な図形ではありませんか!

黒い部分は上限回数まで収束しなかったところ、

それ以外の部分は収束の速度(繰り返し計算の回数)によって色分けしてあります。

f:id:rikunora:20100504104055g:image

(中心(0,0)、範囲5.0)

もう少し広い範囲はこうなっていました。

f:id:rikunora:20100504104113g:image

(中心(0,0)、範囲20.0)

もっと広い範囲はこんな感じ。鳥の羽のように広がっています。

f:id:rikunora:20100504104131g:image

(中心(0.8,0)、範囲2.5、閾値0.00001)

収束判定の閾値をうんと小さくしてみました。

青い円は(1,0)を中心に広がっているのですが、閾値を小さくすると半径も小さくなってゆきます。

この青円は、閾値を極限まで0に近づけると、1点(1,0) になるのだと思います。

f:id:rikunora:20100504104147g:image

(中心(0.8,0)、範囲2.5、閾値0.01、繰り返し上限256、カラー階調128)

繰り返し上限回数と、カラー階調を変えてみました。

繰り返し上限回数を上げると、色の付いている範囲が広がります。

本当はどこまでが収束する範囲なのでしょうか? 微妙です。

f:id:rikunora:20100504104205g:image

(中心(0.8,0)、範囲5.0、閾値0.01、繰り返し上限256、カラー階調128)

範囲を広げたところです。

f:id:rikunora:20100504104222g:image

(中心(0.8,0)、範囲5.0、閾値0.00001、繰り返し上限1024、カラー階調128)

閾値を小さくして、繰り返し回数を上げてみました。

最終的には原点を中心とする円と、(1,0)から上下に広がる羽のような部分に収束するのでしょうか。

・・・謎です。

というわけで、z^z^z^z^... の収束範囲は、恐ろしく複雑な図形だったのです。

恐ろしげな式の形通りのイメージだという気がします。


# しかし、GW中何をやっているのだろふ。。。

# いや、これはこれで、たいへん充実した過ごし方なのだ。


俄僅俄僅 2010/05/04 19:56 そういえば昔カオスがはやったころ、BASICでマンデロブロート集合を描いた覚えが……すっかり忘れてました。(ちなみにCPUは80286でとても遅かったです。)z^z^z^…もそりゃカオスになりますよね。納得です。

アトムアトム 2010/05/05 19:56 すごい図ですね。前回の記事をみて収束条件をしらべられなかと多少悩んだんですが、いいアイディアもなく、直ぐに諦めてしまいました。諦めてよかった(笑)

KETARUKETARU 2010/05/05 23:00 謎の宇宙図?
これは綺麗です。お見事でした。

itaita 2010/05/06 20:30 周期的収束も判定に入れて絵を描いてみました。
http://d.hatena.ne.jp/ita/20100505/p1

rikunorarikunora 2010/05/06 22:15 俄僅さま、
私が最初にカオス図形を描いたのもBASICでした。
当時は1枚の絵を描くのに、下手したら何時間もかかっていました。
今や数十秒で描けるのですから、PCの進歩はすごいものです。
アトムさま、
私も頭で考えるのは、さっさとあきらめた(笑)
itaさま、
こ、これは、、、うぉおおお、素晴らしい!感激しました!
「周期的収束」は気付かなかった。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/rikunora/20100504/p1