Kunst Site
Blogブログ
About Site当サイトについて
Portfolioポートフォリオ
Contact問い合わせ

ロジスティック写像の挙動を確認してみる


データサイエンス時系列
更新日:2022-02-22

最近、ロジスティック写像を使う機会がありました。

ロジスティック写像のことを調べていると、思っていた以上に難しいので自分なりに理解しようと記事にしてみました。

本記事では、そのロジスティック写像についての記事になります。

概要

ロジスティック写像は 1 次元の離散時系列であり、 時系列解析の研究のベンチマークデータとして用いられています。なぜなら、ロジスティック写像はカオスを生み出す非線形関数であり、その非線形関数の中では単純なものであり扱いやすいからです。この単純さと、他のカオスとも共通する現象がいくつも現れることからカオス理論の入り口としてもよく扱われます。

ロジスティック写像は下記の差分方程式で表され、図のように山形の曲線を描きます。また、aaaの値によって山の大きさが変わります。

xt+1=axt(1−xt)x_{t+1}=a x_{t}(1-x_{t})xt+1​=axt​(1−xt​)

ロジスティック写像概要

蜘蛛の巣図法

ロジスティック写像がどういった振る舞いをするのかを表現するためには、蜘蛛の巣図法を用いる必要があります。

蜘蛛の巣図法とは、一次元離散力学系の振る舞いを図式的に表す手法のことを言います。

蜘蛛の巣図法では、下記の図のように補助線と言われるy=xy=xy=xの関数を使います。

蜘蛛の巣図1

では蜘蛛の巣図法を詳しく見ていきます。

蜘蛛の巣図法ではy=xy=xy=xの補助線を引きます。この補助線のおかげで、力学系の出力が次の入力になることを表すことができます。

下図で見てみます。

蜘蛛の巣図2
蜘蛛の巣図3
蜘蛛の巣図4
蜘蛛の巣図5
蜘蛛の巣図6

y=xy=xy=xのおかげで、力学系の出力が次の入力になることを表すことができています。

では、この蜘蛛の巣図法について 100 エポックほどの挙動を見てみましょう。

蜘蛛の巣図動画1

まるで、蜘蛛の巣のような図になっていきます。

この蜘蛛の巣図法によって、差分方程式の解の挙動が一目でわかる全体像がわかるのです。

パラメータaaaの違いによる振る舞い

概要のところでロジスティック写像はaaaが異なることで山の大きさが変わると言いました。

xt+1=axt(1−xt)x_{t+1}=ax_t(1-x_t)xt+1​=axt​(1−xt​)

この山の大きさによってロジスティック写像の振る舞いがどのように変わるのかを見ていきたいと思います。

0≤a≤10\leq a \leq 10≤a≤1のとき

a=0.5a=0.5a=0.5、初期値がx0=0.5x_0=0.5x0​=0.5のときロジスティック写像はy=xy=xy=xとの交点(不動点)である000へ収束します。

初期値が000から111の範囲でどんな値をとっても同じ現象になります。

蜘蛛の巣図動画2

最終的に収束していく点を固定点、不動点あるいは吸引的不動点、沈点などと呼びます。

また、十分な時間経過後にその力学系が漸近する集合はアトラクタと言われます。

この場合、x=0x = 0x=0がアトラクタと言われます。

アトラクタとは英語の引きつける意味の attract から生まれた名詞です。 ある力学系がそこに向かって時間発展をする集合のことであり、その力学系においてアトラクタに十分近い点から運動するとき、そのアトラクタに十分近いままであり続けます。

余談ですが、一般的に、力学系は分析対象となる系の構造が明らかでない場合や、すべての状態変数を観測することが困難な場合が多いです。 そのため、1個の状態変数からd個の状態変数を復元するターケンスの埋め込み定理というのを用いることで、アトラクタを再構成することができます。

1<a≤21 \lt a \leq 21<a≤2のとき

aaaが1<a≤21 \lt a \leq2 1<a≤2のとき、ロジスティック写像は不動点である1−1a1-\frac{1}{a}1−a1​へ収束します。

ここでの初期値はx0=0.1x_0=0.1x0​=0.1です。

蜘蛛の巣図動画3

2<a≤32 \lt a \leq 32<a≤3のとき

初期値 0、1 を除いてロジスティック写像は不動点である1−1a1-\frac{1}{a}1−a1​へ収束します。

このとき、単調増加または単調減少ではなく、不動点の周囲をグルグル周りながら収束していきます。

蜘蛛の巣図動画4

3<a≤3.449....3 \lt a \leq 3.449....3<a≤3.449....のとき

ロジスティック写像は不動点に収束するのではなく、不動点の周りをグルグル周って 2 つの値を交互に取る動きをします。

蜘蛛の巣図動画5

図のように交互に 2 つの点を取ることを、周期点や平衡点と呼びます。このとき、周期点を 2 周期点といい、そしてその振る舞いを 2 周期軌道などと呼びます。

不動点と同様に、周期点にも安定なものと不安定なものが存在します。3<;a≤3.449....3 \lt; a \leq 3.449....3<;a≤3.449....の範囲における 2 周期点は安定周期点です。

下図は、xtx_txt​とtttの関係性を表した図です。値がずっと 2 つの値を取り続けていくのがわかります。

蜘蛛の巣図5

3.449...<;a≤3.569....3.449... \lt; a \leq 3.569....3.449...<;a≤3.569....のとき

aaaが3.449...<;a≤3.569....3.449... \lt; a \leq 3.569....3.449...<;a≤3.569....のとき、ロジスティック写像は安定な 4 周期軌道の状態になります。

つまり、グルグルと回りながら 4 つの値を取り続けます。

このパタメータaaaの値を大きくしていくと、ロジスティック写像では 4 周期から 8 周期、8 周期から 16 周期、16 周期から 32 周期軌道の状態へと動きが変わっていきます。例えば、a=3.56a=3.56a=3.56ならば 8 周期です。

この軌道の状態がaaaの値によって変わることを周期倍分岐と言います。

※実行速度、エポック数は今までと異なる設定になっております。

蜘蛛の巣図動画6

xtx_txt​とtttの関係性を表した図を見ると、値がずっと 4 つの値を取り続けていることが確認できます。

蜘蛛の巣図動画10

3.569...<a≤4....3.569... \lt a \leq 4....3.569...<a≤4....のとき

aaaが 3.449 を超えると、ロジスティック写像ではカオスが発生します。

蜘蛛の巣図動画7

xtx_txt​とtttの関係性を表した図を見てみます。

蜘蛛の巣図12

値がデタラメ取り続けられていることがわかります。

しかし、3.569...<a≤4....3.569... < a \leq 4....3.569...<a≤4....では、常にカオス軌道を示す訳ではありません。aaaの値の領域によってはカオス軌道になったり周期軌道になったりする場合もあります。

例えば、a=3.828327a=3.828327a=3.828327のときだと下のようにカオス軌道になったり周期軌道になったりしています。

蜘蛛の巣図13

4≤a4 \leq a4≤aのとき

a が 4 を超えるとほとんどの初期値x0x_0x0​から始まる挙動はマイナス無限大へ発散してしまいます。

そのため、描画はできませんが描画してみます。

蜘蛛の巣図動画8

軸の値を見るとわかりますが、マイナス無限大方向へ発散してしまっています。

xtx_txt​とtttの関係性を表した図を見てみます。

蜘蛛の巣図動画14

軸の値を見るとわかりますが、マイナス無限大方向へ発散してしまっています。

まとめ

ここまでロジスティック写像のパラメータaaaの値による振る舞いを見てきました。

最後に横軸をaaa、縦軸をxtx_txt​として図にプロットしてみます。

蜘蛛の巣図動画15

最初 1 つの値に収束し、それが 2 つの値に収束する 2 周期軌道へなり、2 周期から 4 周期、4 周期から 8 周期、8 周期から 16 周期、16 周期から 32 周期... と周期倍分岐が発生しています。そしてカオスが発生して発散に至るのです。また、aaaが負の範囲のときの写像の分岐は、正の場合と似たような分岐になっていることがわかります。

おまけ

ここからは余談になります。

個人的に気になったことを挙げていきます。

非線形関数の証明

ロジスティック写像は非線形性関数です。この証明をしていきます。

線形写像の定義は次のようになります。

VVV,WWWをF\mathbb{F}F上のベクトル空間とするとき、f:V→Wf: V \rightarrow Wf:V→Wが線形写像であるには

f(x+y)=f(x)+f(y),x,y∈Vf(\boldsymbol{x}+\boldsymbol{y}) = f(\boldsymbol{x}) + f(\boldsymbol{y}), \quad \boldsymbol{x}, \boldsymbol{y} \in Vf(x+y)=f(x)+f(y),x,y∈V f(x)=kf(x),k∈Ff(\boldsymbol{x}) = kf(\boldsymbol{x}), \quad k \in \mathbb{F}f(x)=kf(x),k∈F

の両方が成立する必要がある。

この条件を満たすには以下の式が成り立たなくてはいけません。

f(x+y)−f(x)−f(y)=0f(x + y) -f(x) - f(y) = 0f(x+y)−f(x)−f(y)=0

ロジスティック写像はf(x)=ax(1−x)f(x)=ax(1-x)f(x)=ax(1−x)なので

a(x+y)(1−x−y)−ax(1−x)−ay(1−y)=0a(x+y)(1-x-y) - ax(1-x) - ay(1-y) = 0a(x+y)(1−x−y)−ax(1−x)−ay(1−y)=0

変形して計算していくと

x+y−x2−xy−xy−y2−x+x2−y+y2=0x+y-x^2-xy-xy-y^2-x+x^2-y+y^2=0x+y−x2−xy−xy−y2−x+x2−y+y2=0 −2xy=0-2xy = 0−2xy=0

従って、ロジスティック写像は線形写像の条件を満たさないので非線形関数である。

終わりに

ロジスティック写像の実装ですが、思った以上に組むことが難しかったです。aaaの値をコンマ単位で変えるだけで挙動が大きく変わるため非常に繊細なものだと思いました。

ここまで読んでくださりありがとうございます。

修正リクエストをお待ちしてます。

Profile

kunst

データサイエンティスト兼フロントエンジニアのkunstです!
最近は山登りにハマっています。

目次

kunst Site

Welcome to kunst Site. Stay updated with the latest posts.

Privacy PolicyAbout Blog|BlogAbout SitePortfolioContact

Copyright © 2024 kunst Site