エノン写像
Google で「エノン写像」というキーワード検索をした時に10番目にこのブログが表示されていてビックリしました.にも関わらずエノン写像について何も載せていないのはいかがなものかと思い,少しだけエノン写像について書いてみることにしました.
エノン写像は,天文学者エノンさんが提案した数理モデルで,
x(t+1) = 1 - a * x(t) * x(t) + y(t)
y(t+1) = b * x(t)
で与えられる二次元写像です.低次(二次)の非線形性を有し,構造が簡単であることから,数値実験などによく用いられるそうです.(※詳細に関しては 他の参考書や Hénon map などを参照されて下さい.)
ちなみに2つのパラメータ, a, b をそれぞれ a = 1.4,b = 0.3 とした場合,エノン写像のアトラクタは ストレンジアトラクタ となります(下図).


エノン写像のダイナミクスを生成するプログラムをC言語で書くとこんな感じになります.
ソース
#include <stdio.h>/* x(t+1)=1-A*x(t)*x(t)+y(t) */
/* y(t+1)=b*x(t) */#define A 1.4
#define B 0.3
#define T 1000
#define X0 0.1 /* x(0) */
#define Y0 0.1 /* y(0) = B*x(-1) */int main(){
double x0,y0,x1,y1;
int t;
x1 = 1 - A*X0*X0 + Y0;
y1 = B*X0;
printf(”x(t) ¥ty(t) ¥tx(t+1) ¥ty(t+1) ¥n”);
for(t=0;t<T;t++){
x0 = x1;
y0 = y1;
x1 = 1 - A*x0*x0 + y0;
y1 = B*x0;
printf(”%lf¥t%lf¥t%lf¥t%lf¥n”,x0,y0,x1,y1);
}
return 0;
}
実行結果例
% ./a.out
x(t) y(t) x(t+1) y(t+1) 1.086000 0.030000 -0.621154 0.325800 -0.621154 0.325800 0.785634 -0.186346 0.785634 -0.186346 -0.050456 0.235690 -0.050456 0.235690 1.232126 -0.015137 1.232126 -0.015137 -1.140525 0.369638 -1.140525 0.369638 -0.451480 -0.342158 -0.451480 -0.342158 0.372475 -0.135444 0.372475 -0.135444 0.670324 0.111742 0.670324 0.111742 0.482675 0.201097 0.482675 0.201097 0.874932 0.144802
参考図書
カオス時系列解析の基礎と応用(著者:合原一幸 / 池口徹,出版社:産業図書)
Tags: エノン写像, カオス, ストレンジアトラクタ, 学術関連
