2次関数y=x2+cのグラフは知っていますね。これと良く似た写像x(n+1)=x(n)2+cの振る舞いを調べてみましょう。非常に複雑な振る舞いをするのが分かるでしょうか。以下では、他の写像、関数系についても調べます。写像のパラメータを複素数に拡張すると写像が発散するかどうかが美しいグラフになります。
2次写像:
x(n+1)=x(n)2+c
を考えます。x(0) = 0.1としています。x(1),x(2),x(3),...と進めていくにつれてxの値はどのように変化するでしょう。
・ cの値を変えてみましょう。グラフはどのように変わりますか?
-2から-1までcの値を自動的に変えながらグラフを描きます。cを変化させる毎に写像を49回繰り返して最後の値をプロットしています。
・ 得られた分岐図と上の軌道の関係は分かりますか?
上のグラフでcの値が-1.3以下の部分で描く点を5倍にしています。時間が掛かります。
横軸x(n),縦軸x(n+1)として2次写像:
x(n+1)=x(n)2+c
を描きます。見慣れたグラフと似ていますね。
・ cの値を変えてみましょう。点と点の間が広い部分はどうしてできるのでしょう?
・ xの初期値x(0)を変えてみましょう。
ロジスティック写像:
x(n+1)=a x(n)(1-x(n))
を考えます。x(0) = 0.1としています。x(1),x(2),x(3),...と進めていくにつれてxの値はどのように変化するでしょう。
・ cの値を変えてみましょう。グラフはどのように変わりますか?
-2.9から4までaの値を自動的に変えながらグラフを描きます。aを変化させる毎に写像を199回繰り返して最後の値をプロットしています。
・ 得られた分岐図と上の軌道の関係は分かりますか?
上のグラフでaの値が3.5以下の部分で描く点を10倍にしています。時間が掛かります。
横軸x(n),縦軸x(n+1)としてロジスティック写像:
x(n+1)=ax(n)(1-x(n))
を描きます。
・ cの値を変えてみましょう。点と点の間が広い部分はどうしてできるのでしょう?
・ xの初期値x(0)を変えてみましょう。
次は、2変数の写像です。エノン写像:
x(n+1)=1-a x(n)2+y(n)
y(n+1)=b x(n)
を考えます。x(0) = 0.2, y(0) = 0.1 としています。
・ a, bの値を変えてみましょう。グラフはどのように変わりますか?
bの値を固定して、aの値を0から1.5まで自動的に変えながらグラフを描きます。aを変化させる毎に写像を49回繰り返して最後の値をプロットしています。
・ 得られた分岐図と上の軌道の関係は分かりますか?
次は、離散的に値が変化する写像ではなく、微分方程式の振る舞いを調べることにしましょう。ローレンツは気象現象を単純化した模型として微分方程式:
dX/dt = -s X + s Y
dY/dt = -X Z + b X -Y
dZ/dt = X Y - r Z
を考えました。s, b, r は模型のパラメーターです。
・ グラフをクリックしてx,y,zの初期値を選択します。
・ 3次元プロット、x-y平面、x-z平面、y-z平面のグラフを切り替え表示できます。
・ bに応じて、X, Y, Zは一点に収束するか、発散するか、ストレンジアトラクターと呼ばれる軌道を描くかします。
他にも微分方程式の振る舞いを調べましょう。レスラー方程式:
dX/dt = -Y-Z
dY/dt = X+a Y
dZ/dt = b-c Z+X Z
を考えます。a, b, c は模型のパラメーターです。
・ グラフをクリックしてx,y,zの初期値を選択します。
・ 3次元プロット、x-y平面、x-z平面、y-z平面のグラフを切り替え表示できます。
・ a, b, cの値に応じて、X, Y, Zの値がどのような軌道を描くか調べましょう。
5.1 2次写像、5.3 ロジスティック写像を複素数パラメーターに拡張します。以下では変数及びパラメータz,c,aは複素数です。z*(n)はz(n)の共役複素数です。
・ 写像のパラメータを決めたらグラフ上をクリックして写像の初期値z(0)を決定します。
・ |z|が十分大きくなったら「逃走」したと判断して計算を終了します。
・ 「逃走」しない軌道を探しましょう。
6.8 複素数の写像で「逃走」しない軌道は見つかりましたか?パラメータc,aに応じて写像の初期値z(0)として何をとれば「逃走」しないのか表示してみましょう。z(0)平面上の軌道が「逃走」しない領域を充填ジュリア集合といいます。充填ジュリア集合の境界がジュリア集合です。
・ 近似的な充填ジュリア集合として写像を120回繰り返して軌道が「逃走」しない点を黒く塗ります。
・ |z|が何回目の写像で逃走条件を満たすかによって色分けしています。
・ グラフ上をクリックして写像のパラメータを決めたら、「開始」ボタンを押してジュリア集合を描画します。
・ パラメータを正確に決めるには右上で適当な数字(x)を選んでグラフを拡大します。
・ 充填ジュリア集合中の点をクリック後、「解の軌道」を選択し「開始」ボタンを押すと解の軌道を描きます。
・ おもしろい形のジュリア集合を探しましょう。
z(n+1)=z(n)d+c, 逃走条件 |z|d-1 > max(|c|d-1,2)
z(n+1)=z*(n)d+c, 逃走条件 |z|d-1 > max(|c|d-1,2)
z(n+1)=az(n)(1-z(n)), 逃走条件 |z| > 1+1/|a|
z(n+1)=az*(n)(1-z*(n)), 逃走条件 |z| > 1+1/|a|
6.9 ジュリア集合では写像のパラメータに応じていろいろな形の領域が見えたことと思います。パラメータ毎の特徴的な充填ジュリア集合を分類するのに役立つのが分岐集合です。分岐集合はある初期値z(0)から出発して、複素c,a平面上で写像が発散しない領域です。6.9で用いた写像について分岐集合を描いてみましょう。
・ 近似的な分岐集合として写像を120回繰り返して軌道が「逃走」しない点を黒く塗ります。
・ |z|が何回目の写像で逃走条件を満たすかによって色分けしています。
・ グラフ上をクリックして表示位置と大きさを決めたら、「開始」ボタンを押して分岐集合を描画します。
・ 分岐集合中の点をクリック後、「ジュリア集合」を選択し「開始」ボタンを押すと充填ジュリア集合を描きます。
・ 6.9と同様にして解の軌道も描画できます。
・ 分岐集合中の領域毎にどの様なジュリア集合がありますか?
z(n+1)=z(n)d+c, z(0) = 0, d=2 の場合がマンデルブロ集合