最近、ロジスティック写像を使う機会がありました。
ロジスティック写像のことを調べていると、思っていた以上に難しいので自分なりに理解しようと記事にしてみました。
本記事では、そのロジスティック写像についての記事になります。
概要
ロジスティック写像は 1 次元の離散時系列であり、 時系列解析の研究のベンチマークデータとして用いられています。なぜなら、ロジスティック写像はカオスを生み出す非線形関数であり、その非線形関数の中では単純なものであり扱いやすいからです。この単純さと、他のカオスとも共通する現象がいくつも現れることからカオス理論の入り口としてもよく扱われます。
ロジスティック写像は下記の差分方程式で表され、図のように山形の曲線を描きます。また、aの値によって山の大きさが変わります。
xt+1=axt(1−xt)
蜘蛛の巣図法
ロジスティック写像がどういった振る舞いをするのかを表現するためには、蜘蛛の巣図法を用いる必要があります。
蜘蛛の巣図法とは、一次元離散力学系の振る舞いを図式的に表す手法のことを言います。
蜘蛛の巣図法では、下記の図のように補助線と言われるy=xの関数を使います。
では蜘蛛の巣図法を詳しく見ていきます。
蜘蛛の巣図法ではy=xの補助線を引きます。この補助線のおかげで、力学系の出力が次の入力になることを表すことができます。
下図で見てみます。
y=xのおかげで、力学系の出力が次の入力になることを表すことができています。
では、この蜘蛛の巣図法について 100 エポックほどの挙動を見てみましょう。
まるで、蜘蛛の巣のような図になっていきます。
この蜘蛛の巣図法によって、差分方程式の解の挙動が一目でわかる全体像がわかるのです。
パラメータaの違いによる振る舞い
概要のところでロジスティック写像はaが異なることで山の大きさが変わると言いました。
xt+1=axt(1−xt)この山の大きさによってロジスティック写像の振る舞いがどのように変わるのかを見ていきたいと思います。
0≤a≤1のとき
a=0.5、初期値がx0=0.5のときロジスティック写像はy=xとの交点(不動点)である0へ収束します。
初期値が0から1の範囲でどんな値をとっても同じ現象になります。
最終的に収束していく点を固定点、不動点あるいは吸引的不動点、沈点などと呼びます。
また、十分な時間経過後にその力学系が漸近する集合はアトラクタと言われます。
この場合、x=0がアトラクタと言われます。
アトラクタとは英語の引きつける意味の attract から生まれた名詞です。 ある力学系がそこに向かって時間発展をする集合のことであり、その力学系においてアトラクタに十分近い点から運動するとき、そのアトラクタに十分近いままであり続けます。
余談ですが、一般的に、力学系は分析対象となる系の構造が明らかでない場合や、すべての状態変数を観測することが困難な場合が多いです。 そのため、1個の状態変数からd個の状態変数を復元するターケンスの埋め込み定理というのを用いることで、アトラクタを再構成することができます。
1<a≤2のとき
aが1<a≤2のとき、ロジスティック写像は不動点である1−a1へ収束します。
ここでの初期値はx0=0.1です。
2<a≤3のとき
初期値 0、1 を除いてロジスティック写像は不動点である1−a1へ収束します。
このとき、単調増加または単調減少ではなく、不動点の周囲をグルグル周りながら収束していきます。
3<a≤3.449....のとき
ロジスティック写像は不動点に収束するのではなく、不動点の周りをグルグル周って 2 つの値を交互に取る動きをします。
図のように交互に 2 つの点を取ることを、周期点や平衡点と呼びます。このとき、周期点を 2 周期点といい、そしてその振る舞いを 2 周期軌道などと呼びます。
不動点と同様に、周期点にも安定なものと不安定なものが存在します。3<;a≤3.449....の範囲における 2 周期点は安定周期点です。
下図は、xtとtの関係性を表した図です。値がずっと 2 つの値を取り続けていくのがわかります。
3.449...<;a≤3.569....のとき
aが3.449...<;a≤3.569....のとき、ロジスティック写像は安定な 4 周期軌道の状態になります。
つまり、グルグルと回りながら 4 つの値を取り続けます。
このパタメータaの値を大きくしていくと、ロジスティック写像では 4 周期から 8 周期、8 周期から 16 周期、16 周期から 32 周期軌道の状態へと動きが変わっていきます。例えば、a=3.56ならば 8 周期です。
この軌道の状態がaの値によって変わることを周期倍分岐と言います。
※実行速度、エポック数は今までと異なる設定になっております。
xtとtの関係性を表した図を見ると、値がずっと 4 つの値を取り続けていることが確認できます。
3.569...<a≤4....のとき
aが 3.449 を超えると、ロジスティック写像ではカオスが発生します。
xtとtの関係性を表した図を見てみます。
値がデタラメ取り続けられていることがわかります。
しかし、3.569...<a≤4....では、常にカオス軌道を示す訳ではありません。aの値の領域によってはカオス軌道になったり周期軌道になったりする場合もあります。
例えば、a=3.828327のときだと下のようにカオス軌道になったり周期軌道になったりしています。
4≤aのとき
a が 4 を超えるとほとんどの初期値x0から始まる挙動はマイナス無限大へ発散してしまいます。
そのため、描画はできませんが描画してみます。
軸の値を見るとわかりますが、マイナス無限大方向へ発散してしまっています。
xtとtの関係性を表した図を見てみます。
軸の値を見るとわかりますが、マイナス無限大方向へ発散してしまっています。
まとめ
ここまでロジスティック写像のパラメータaの値による振る舞いを見てきました。
最後に横軸をa、縦軸をxtとして図にプロットしてみます。
最初 1 つの値に収束し、それが 2 つの値に収束する 2 周期軌道へなり、2 周期から 4 周期、4 周期から 8 周期、8 周期から 16 周期、16 周期から 32 周期... と周期倍分岐が発生しています。そしてカオスが発生して発散に至るのです。また、aが負の範囲のときの写像の分岐は、正の場合と似たような分岐になっていることがわかります。
おまけ
ここからは余談になります。
個人的に気になったことを挙げていきます。
非線形関数の証明
ロジスティック写像は非線形性関数です。この証明をしていきます。
線形写像の定義は次のようになります。
V,WをF上のベクトル空間とするとき、f:V→Wが線形写像であるには
f(x+y)=f(x)+f(y),x,y∈V f(x)=kf(x),k∈Fの両方が成立する必要がある。
この条件を満たすには以下の式が成り立たなくてはいけません。
f(x+y)−f(x)−f(y)=0ロジスティック写像はf(x)=ax(1−x)なので
a(x+y)(1−x−y)−ax(1−x)−ay(1−y)=0変形して計算していくと
x+y−x2−xy−xy−y2−x+x2−y+y2=0 −2xy=0従って、ロジスティック写像は線形写像の条件を満たさないので非線形関数である。
終わりに
ロジスティック写像の実装ですが、思った以上に組むことが難しかったです。aの値をコンマ単位で変えるだけで挙動が大きく変わるため非常に繊細なものだと思いました。
ここまで読んでくださりありがとうございます。
修正リクエストをお待ちしてます。