Quick start guide for Henon map


Henon写像

例として,エノン写像,すなわち,


eq_img01.gif


にみられる5周期点の saddle-node 分岐を (a,b)-パラメータ平面上で求めてみましょう.

次の3つのプログラムを作成し,順番に用いることによって計算を行います.

  1. PP
  2. FIX
  3. BF

環境設定

  • まずインストールを参考に BUNKI をインストールし,環境設定を行って下さい.
  • 補足.1
    • Symbolic Math Toolbox (MATLAB 追加パッケージ)を利用出来ない方は,デモ用として以下のサンプルを用意してあります.このモデルの分岐解析に必要な解析ツール,それら設定ファイルなどが 入った Project ディレクトリをひとまとめにしたファイルです.適当な場所に展開して下さい.
    • 注意:BUNKI コマンドで展開したディレクトリを読込むと SE が起動します.ここで system create を行うと,Symbolic Math Toolbox が無い場合はエラーを返されます.Symbolic Math Toolbox が無い場合は,プログラムの作成 の項は飛ばして,PP に進んでください.
  • 補足.2
    • プログラム BUNKI を展開したディレクトリ内にサンプル集を集めた sample ディレクトリーがあります.
      /BUNKI/Sample/Henon
      このディレクトリ下に置かれた種々のファイルは,以下の説明で使用される設定ファイルです.ファイルを読み込むことで,各フィールドに書き込む手間が省けます.用意された設定ファイルは以下の通り:
      • fileHenon.sed : モデル方程式が記述されたファイル:SE 用の設定ファイル
      • file5Pd_point.ppd : 安定5周期点の例:PP 用の設定ファイル
      • filechaos.ppd : カオスの例:PP 用の設定ファイル
      • file5Pd_point.fixd : Saddle-node 分岐を検出:FIX 用の設定ファイル
      • file5Pd_point_SN.bfd : 5周期点の Saddle-node 分岐点用設定ファイル:BF 用の設定ファイル
      • file5Pd_point_PD.bfd : 5周期点の周期倍分岐点用設定ファイル:BF 用の設定ファイル

プログラムの作成

これからの作業はサブ・ディレクトリで行うことにしましょう. ディレクトリの名前はなんでもよいです.まず MATLAB command window 内で以下を実行します.

>> BUNKI

実行後,Select BUNKI Project Directory という window が開きます.

project.png

ここで解析を行う Project を選択します.ここで解析を行う Project を作成または選択します. この段階では,まだ何も Project を生成していないので, Name 欄に識別用の Project 名を命名して OK ボタンを押します.ここでは,Henon 写像の解析なので, Project 名を Henon として話を進めます*1

project2.png

新規に Project を生成する場合,ディレクトリ(or フォルダ)を生成しても良いかを尋ねられます. Yes を選択して下さい. SE(system editor) が起動します.

startSE.png

さて,いよいよ解析プログラムの作成です*2

  • システムの記述
    • まず解析する方程式がどういった種類の系であるかを選択します.Henon 写像は,2変数, 離散系方程式 ですので,Dimension は , type は Discrete をチェックします.

      startSE2.png

    • Equations 欄に Henon 写像の式を記述します.その際,以下のルールに従って記述して下さい.
      • 状態変数:各状態変数は x[i], i = 1,2,...,n として下さい.すなわち,x -> x[1]y -> x[2] と読み替えて式を記述します.
      • パラメータ: パラメータであることを識別するために, $ 記号でパラメータを挟む形で記述して下さい.例えば,$para$,$Vm$,$alpha$,etc,.$ の記号で挟まれたものはパラメータとして認識されます.そのパラメータ名の命名は自由です.

        startSE3.png

  • 文法チェック&プログラム生成
    • 以下が入力終了後の様子です.方程式の記述に矛盾が無いかをチェックするために, check ボタンを押して下さい.文法チェックが行われます.

      startSE4.png

    • 文法チェックを行った後,エラーが無ければ,いよいよプログラムを生成します.どのプログラムを生成するかを右下の check ボタンで制御します.分岐曲線を求める為には,PPFIXBF 全てにチェックを入れて下さい.Create ボタンを押して下さい.プログラム生成を開始します.

      startSE5.png

      (a): システム生成開始時に status bar が表示される.

      startSE6.png

      (b): システム生成完了後,log window に正常生成のメッセージが出力される.

PP

ここでは,パラメータと状態の初期値を読み込んで位相面図を描き,安定な周期点をつかまえます.

まず SE から PP(phase portrait) プログラムを起動しましょう. Program -> PP を選択します.

pp.png

描画 window とコントロールパネルが起動します.初回起動時には,描画 window は, (x[1],x[2])平面となっています*3.ここでは,描画 window の変更は必要ないでしょう.

pp2.png

次にコントロールパネルです.まず初期状態点を入力します*4.対応する状態(x[1],x[2])にそれぞれスタートさせたい初期点を記述します.ここでは原点(0,0)からスタートさせてみましょう!

描画の前にパラメータ値を記述することを忘れないで下さい.初回起動時には全てのパラメータに1 が入力されます.それでは,各パラメータを以下のように設定します.

parametervalue
a1.435
b0.2


それでは,Startボタンを押してシミュレーションを開始しましょう.原点からスタートした解は,ある周期点へと収束していく様子が描かれたでしょうか?

pp3.png

過渡応答が含まれる為,このままだと非常に判りづらいです.そこで,Clear ボタンを押します.こうすることで,過渡応答分の点列を消去することが出来ます.

pp4.png

過渡応答の点列が消去されたことで,安定な5周期点へと収束していることがわかります.そこで,周期点の周期を5周期に設定してみましょう.メインパネル内の Plot 欄にある Period を 1 から 5 に変更します.この変更により,Henon 写像が5回の写像を繰り返す毎に赤点が打たれるようになります.それ以外の点は,緑点で表示されます*5

pp5.png

パラメータはリアルタイムに変化することができます.取り敢えずパラメータ a を変えてみましょう.パラメータ a を減少することで安定な5周期点が,カオス状態へと遷移する様子を観察できます.

pp6.png

次に,a を初期設定値 1.435 に戻してシミュレーションを再開します.この時,Plot 欄にある states flow にチェックを入れます.こうすることで,現在の状態変数値リストをリストボックス内でチェックできます.リストボックス内には,写像毎の状態変数値が出力されます.この例では,Henon 写像は安定な5周期点へ収束していきますので,リストボックス内には,5回毎に同じ数値が現れることを確認できます.

pp7.png

それでは,この5周期点の分岐を調べてみましょう.パラメータを変化させた時の周期点に対する固有値(特性乗数)を評価します.この目的には FIX ツールが利用できます.FIX を動かす為の初期値を PP から与えます.ここで重要な事は,定常状態に至った時点での状態変数値,パラメータ値を FIX に与えなければならないということです.

定常状態へ至ったかどうかは,上述した states flow スイッチを入れて,状態変数値に変化がなくなったことを確認するか,Staus ボタンを数度クリックしてみて,リストボックスに表示される情報に変化が無いことを確認する必要があります.

変化がなくなった事を確認した後,メニュ−バーの Tools から, Export current status を選択します.この操作により,定常状態に至った時点での状態変数値,パラメータ値,その他の設定値が保持され,次のプログラムに引き継ぐことが可能になります(FIX の項目を参照).

pp8.png

(a): export 選択.

pp9.png

(b): 設定値の export 完了.

FIX

ここでは,パラメータを変化させて周期点を追跡し,そのときの特性乗数を表示させることが目的です.

FIX 動作の設定値はユーザ側でそれぞれ調整する必要があります.ここでは簡単のために,そのまま動作させてみましょう.FIX プログラムは,PP プログラムで保持された値(Export Current status)をデータを読み込んでニュートン法への初期値として実行するのが通常の方法です*6

まず PP コントロールパネルからFIX プログラムを起動しましょう.Program -> FIX を選択します.

fix.png

初回起動時には,各フィールドにはデフォルト値が入力された状態で起動します.

fix2.png

PPで求められた周期点に関する情報を初期設定値としてインポートします.メインパネル Tools -> Import initial point を選択します.

fix3.png

選択後,PP を利用して得たパラメータ値,周期点の座標値などが各項目に反映されます.

fix4.png

PP でパラメータ a を小さくすることで、系の振る舞いに変化が起こることが判ったので,変化させるパラメータを a とし、その減少ステップサイズを設定します.

fix5.png

Start ボタンを押して計算を開始します.計算開始と同時に,別ウィンドウが開きます.これは,Gauss 平面上のどの位置に固有値が位置しているかを示す図です.周期点の saddle-node 分岐の発生条件は,固有値のひとつが "1" になるときです.パラメータの変化とともに,ウィンドウ上の固有値の一つが "1" へと近づいていく様子を観察できます.

fix6.png

パラメータを連続的に変化させていき,分岐点が検出されるとプログラムは停止します*7.上の例では,固有値の一つが 1 に近付き,Newton 法が収束しなくなったため saddle-node 分岐の発生を検出した様子を示しています.

停止した時のパラメータ値,状態変数値は分岐曲線を追跡するプログラム BF の初期点として利用できます.停止した際のパラメータ値などを BF 用に Export します.ここで Export BF point を選択すると,状態・パラメータ値,その他必要な設定値が保持されます.この保持された値を次のプログラムに引き継ぎます(BF の項目を参照).

fix7.png

(a): Export 選択.

fix8.png

(b): リストボックス内に Export した情報が表示される.

BF

ここでは,パラメータを変化させて分岐曲線を求めます.

BF 動作の設定値はユーザ側でそれぞれ調整する必要があります.ここでは簡単のために,そのまま動作させてみましょう.BF プログラムは,FIX プログラムで検出された分岐点での状態変数やパラメータ値を Newton 法の初期値として読み込んで実行するのが通常の方法です*8

まず FIX メインパネルから BF プログラムを起動しましょう. Program -> BF を選択します.

bf.png

初回起動時には,各フィールドにはデフォルト値が入力された状態で起動します.

bf2.png

FIX で求められた分岐点に関する情報を初期設定値としてインポートします.メインパネル Tools -> Import BF point を選択します.

bf3.png

選択後,分岐の種類, 周期点の周期情報などの付属情報が各項目に入力されます.(a,b) 平面上の分岐曲線を追跡することを考え, X パラメータとして a を, Y パラメータとして b にチェックを入れます.また step size,end などを設定します.計算結果をデータファイルとして残す場合は, Output に出力ファイル名を書いておきます.

bf4.png

ここまで設定が終われば,後は Start ボタンを押して分岐曲線の追跡を開始します.そのとき別ウィンドウとして,Eigenvalues window と Bifurcation diagram window が起動します.Eigenvalues window は,分岐曲線を計算している際,Neimark-Sacker 分岐に対応する固有値だけではなく,それ以外の固有値の配置変化を視覚化する目的で表示されます.例えば,余次元2の分岐点が発生したことなどを視覚的に理解するために使用します.Bifurcation diagram window は,saddle-node 分岐曲線を追跡していく様子をリアルタイムに確認するための window です.

bf5.png

(a):固有値配置図とリストボックスの様子.

bf6.png

(b):(a,b) 平面の分岐図.リアルタイムに計算結果を見ることができる.




*1 Project 名は自由に命名出来ます.ユーザーが識別しやすい名前にすれば良いです
*2 サンプルディレクトリの下に fileHenon.sed という SE 用の設定ファイルがあります.このファイルを読み込む事で,あとはプロクラムの生成をするだけの状態にすることが可能です.すなわち,これから行う諸々の設定を省略することができます.ファイルの読み込み方法は,SE設定ファイルを読み込むには?を参照して下さい.
*3 この設定は,コントロールパネル Setting から変更することが出来ます
*4 サンプルディレクトリの下に file5Pd_point.ppd という PP 用の設定ファイルがあります.このファイルは以下の説明にある5周期点をみるためのパラメータ設定や初期条件が保存された PP 設定ファイルです.あとは読み込んだ後にスタートボタンを押すだけでシミュレーションが可能です.ファイルの読み込み方法は,PPの設定ファイルを読込むには?を参照して下さい.なお,filechaos.ppd が併せて置いてあります.これは,カオス解が観測できる初期設定ファイルです.興味のある設定ファイルを PP で読込んでシミュレーションを楽しんで下さい.
*5 この点の表示は setting 内,Map から変更することが可能です.
*6 一方,パラメータ,状態変数値が記述さたファイルを読み込んで実行する方法もあります.サンプルディレクトリの下に file5Pd_point.fixd という FIX 用の設定ファイルがあります.このファイルは以下で説明される,周期点のパラメータ設定や初期条件が保存された FIX 用の設定ファイルです.読み込んだ後にスタートボタンを押すだけで数値計算を開始することが可能です.ファイルの読み込み方法は,FIX の設定ファイルを読込むには?を参照して下さい.
*7 この動作の詳細は Setting から option パネルを動作させてコントロールすることが可能です.詳細はマニュアルまたは,個別対策マニュアルを参考にして下さい.
*8 一方,パラメータ,状態変数値が予め記述さたファイルを読み込んで実行する方法もあります.サンプルディレクトリの下に file5Pd_point_SN.bfd という BF 用の設定ファイルがあります.このファイルは以下で説明される5周期点の Saddle-node 分岐曲線を追跡するためのパラメータ設定や初期条件が保存された BF 設定ファイルです.読み込んだ後にスタートボタンを押すだけで分岐曲線の追跡が可能です.併せて,filePd_point_PD.bfd という周期倍分岐曲線追跡用の設定ファイルもおいてあります.ファイルの読み込み方法は,BFの設定ファイルを読込むには?を参照して下さい.

Attach file: fileeq_img02.gif 235 download [Information] fileeq_img01.gif 360 download [Information] fileHenon-sample.zip 337 download [Information] file5Pd_point_PD.bfd 416 download [Information] file5Pd_point.fixd 440 download [Information] filechaos.ppd 440 download [Information] file5Pd_point.ppd 458 download [Information] file7-launch_fix.png 204 download [Information] filepp2.png 374 download [Information] filebf.png 395 download [Information] file10-end_of_calculating_fixed_point.png 205 download [Information] filebf4.png 431 download [Information] filefix5.png 381 download [Information] filepp6.png 462 download [Information] file3-launch_pp.png 201 download [Information] filebf5.png 444 download [Information] file1-write_system.png 209 download [Information] file14-calculating_bif_curve.png 198 download [Information] filestartSE2.png 372 download [Information] filestartSE6.png 385 download [Information] filefix8.png 416 download [Information] file5Pd_point_SN.bfd 436 download [Information] filestartSE3.png 380 download [Information] filefix4.png 426 download [Information] file11-export_BF_point.png 195 download [Information] file13-import_BF_point.png 199 download [Information] filepp7.png 381 download [Information] filepp3.png 434 download [Information] fileproject.png 448 download [Information] filepp.png 432 download [Information] filestartSE5.png 367 download [Information] filebf3.png 369 download [Information] filefix6.png 508 download [Information] filefix2.png 438 download [Information] file4-when_5periodic.png 243 download [Information] file5-when_chaotic.png 203 download [Information] file6-export_status.png 212 download [Information] file8-import_initial_point.png 198 download [Information] fileproject2.png 393 download [Information] fileHenon.sed 402 download [Information] file12-launch_bf.png 208 download [Information] filepp9.png 368 download [Information] filepp5.png 439 download [Information] filefix3.png 388 download [Information] filefix.png 377 download [Information] filepp4.png 368 download [Information] filepp8.png 383 download [Information] file2-create_system_file.png 203 download [Information] filefix7.png 367 download [Information] file9-set_varying_parameter.png 195 download [Information] filestartSE.png 443 download [Information] filebf6.png 380 download [Information] filestartSE4.png 446 download [Information] filebf2.png 442 download [Information]

Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2009-07-23 (Thu) 20:18:53 (3309d)