【カオスアート】二重振り子のカオスアートを制御する♪

二重振り子のような簡単な系がなぜカオスのような振舞になるのかは非常に興味深い。
参考の①に非常に興味深い説明があるので参照してほしいが、ここではカオスアートを制御することにより、その振舞を見ていこうと思う。

前回、微分方程式に過誤はあったが、カオスアートがある程度制御できることが分かった。
また、二重振り子には少なくとも以下の微分方程式が導出されている。
①単振り子連結
②棒連結
③単振り子連結でも見た目異なる微分方程式が導出されている
これらの系でどういうカオス領域あるいはその結果としてのカオスアートが生成されるのかを調査しようと思う。
###やったこと
（１）微分方程式を無次元量で表す
（２）３つの運動方程式から得られるカオスアート
（３）２つの単振り子連結二重振り子の同値性検証
（４）ちょっと驚いたカオスアート
###（１）微分方程式を無次元量で表す
そもそも単振り子の運動方程式は

```math
ml\frac{d^2\theta}{dt^2}=-mg\sin\theta
```

```math
\frac{d^2\theta}{dt^2}=-\frac{g}{l}\sin\theta
```
上式は触れ角Θ、角速度ω（=dΘ/dt）、そして周期Tで特徴づけられる力学系である。
すなわち微小角における単振り子の周期Tは

```math
T=2\pi\sqrt{\frac{l}{g}}
```
固有振動数ωは

```math
\omega=\frac{2\pi}{T}
      =\sqrt{\frac{g}{l}}
```
この固有振動数を用いて、以下のように表現できる。

```math
\theta=C_1\sin\omega t+C_2\cos\omega t
```
参考のように、この周期と固有振動数は角度が大きい領域でも系を特徴づける量であることが分かる。

【参考】
・[振り子](https://ja.wikipedia.org/wiki/%E6%8C%AF%E3%82%8A%E5%AD%90)

単振り子と同様に、各系の微分方程式を無次元量で表わした。こうすることにより系の振舞を連結する系の固有な振動をイメージしつつ、その絡み合いとしてのカオス領域をイメージしやすくなる。
ということで、以下の関数を利用した。

単振り子連結二重振り子

```math
\theta_1'' = \frac{-\omega^2(\sin\theta_1 - M\sin\theta_2\cos\theta_{12}) -M\sin \theta_{12}(\theta_2'^2L+\theta_1'^2\cos\theta_{12})}{(1-M\cos^2\theta_{12})}
```

```math
\theta_2'' = \frac{{-\omega^2(\sin\theta_2-\cos\theta_{12}\sin\theta_1)+(\theta_1'^2+ML\theta'^2_2\cos\theta_{12})\sin\theta_{12}}}{L(1-M{\cos^2\theta_{12})}}
```

```py
def doublePendulum(y, t, L, omegaJ,M):
    theta1, omega1,theta2, omega2 = y
    theta12=theta1 -theta2
    #M=m2/(m1+m2)
    #L=L2/L1
    #omegaJ=g/L1    
    dydt = [omega1,
            (omegaJ*L*(-np.sin(theta1)+M*np.cos(theta12)*np.sin(theta2))-M*L*(omega1*omega1*np.cos(theta12)+L*omega2*omega2)*np.sin(theta12))/(L-M*L*np.cos(theta12)*np.cos(theta12)),
            omega2,
            (omegaJ*(-np.sin(theta2)+np.cos(theta12)*np.sin(theta1))+(M*L*omega2*omega2*np.cos(theta12)+omega1*omega1)*np.sin(theta12))/(L-M*L*np.cos(theta12)*np.cos(theta12))]
    return dydt
```
棒連結二重振り子

```math
\theta_1'' = \frac{-\omega^2L(M_1\sin\theta_1 - M\sin\theta_2\cos\theta_{12}) -M\sin \theta_{12}(\theta_2'^2L+2\theta_1'^2\cos\theta_{12})}{(1-2M\cos^2\theta_{12})}
```

```math
\theta_2'' = \frac{{(2\theta_1'^2+2ML\theta'^2_2\cos\theta_{12})\sin\theta_{12}-\omega^2(\sin\theta_2-2M_1\cos\theta_{12}\sin\theta_1)}}{L(1-2M{\cos^2\theta_{12})}}
```

```py
def doublePendulum2(y, t, L, omegaJ,M,M1):
    theta1, omega1,theta2, omega2 = y
    #M=2*m2/(m1+4*m2)
    #M1=(m1+2*m2)/(m1+4*m2)
    #L=L2/L1
    #omegaJ=g/L1  
    theta12=theta1 -theta2
    dydt = [omega1,
            (omegaJ*L*(-M1*np.sin(theta1)+M*np.cos(theta12)*np.sin(theta2))-M*(2*omega1*omega1*np.cos(theta12)+L*omega2*omega2)*np.sin(theta12))/(1-2*M*np.cos(theta12)*np.cos(theta12)),
            omega2,
            (omegaJ*(-np.sin(theta2)+2*M1*np.cos(theta12)*np.sin(theta1))+(2*M*L*omega2*omega2*np.cos(theta12)+2*omega1*omega1)*np.sin(theta12))/(L-2*M*L*np.cos(theta12)*np.cos(theta12))]
    return dydt    
```
参考③の二重振り子の運動方程式

```math
\theta_1'' = \frac{-\omega^2(\sin\theta_1 + M\sin(\theta_1-2\theta_2)) -2M\sin \theta_{12}(\theta_2'^2L+\theta_1'^2\cos\theta_{12})}{(1-M\cos2\theta_{12})}
```

```math
\theta_2'' = \frac{2\sin\theta_{12}(M_1\theta_1'^2+\omega^2M_1\cos\theta_1+\theta_2'^2LM_1\cos\theta_{12})}{L(1-M{\cos2\theta_{12})}}
```

```py
def dualPendulum(y, t, L, omegaJ,M,M1):
    theta1, omega1,theta2, omega2 = y
    #M=m2/(2*m1+m2)
    #M1=(m1+m2)/(2*m1+m2)
    #omegaJ=g/L1
    #L=L2/L1
    dydt = [omega1, 
            (-omegaJ*(np.sin(theta1)+M*np.sin(theta1-2*theta2))-2*np.sin(theta1-theta2)*M*(omega2*omega2*L+omega1*omega1*np.cos(theta1-theta2)))/(1*(1-M*np.cos(2*(theta1-theta2)))), 
            omega2, 
            (2*np.sin(theta1-theta2)*(omega1*omega1*M1+omegaJ*M1*np.cos(theta1)+omega2*omega2*L*M1*np.cos(theta1-theta2)))/(L*(1 - M*np.cos(2*(theta1-theta2))))]
    return dydt
```
###（２）３つの運動方程式から得られるカオスアート
####単振り子連結二重振り子
ｘｐ１
![pen_xp1_digest.jpg](https://qiita-image-store.s3.amazonaws.com/0/233744/a901fc23-1ff5-e83b-5b00-3d605b46537c.jpeg)
ｘｐ２
![pen_xp2_digest.jpg](https://qiita-image-store.s3.amazonaws.com/0/233744/845dd626-1be5-4c4c-5ad2-7fa2ede5d3e4.jpeg)
####棒連結二重振り子
ｘｐ１
![pen2_xp1_digest.jpg](https://qiita-image-store.s3.amazonaws.com/0/233744/f1ef006a-8133-51f4-98d6-ef831eadf05b.jpeg)
ｘｐ２
![pen2_xp2_digest.jpg](https://qiita-image-store.s3.amazonaws.com/0/233744/cea21906-a61a-4834-85fb-9738b2fcf028.jpeg)
####参考③の二重振り子の運動方程式
ｘｐ１
![dual_xp1_digest.jpg](https://qiita-image-store.s3.amazonaws.com/0/233744/e46f64b3-3885-fdf4-3546-1c606c29e4fe.jpeg)
ｘｐ２
![dual_xp2_digest.jpg](https://qiita-image-store.s3.amazonaws.com/0/233744/7893f6d7-4a0e-f4a2-c285-159254df89f5.jpeg)
###（３）２つの単振り子連結二重振り子の同値性検証
そもそも運動方程式の右辺の振舞を関数的に求めてもできるが、ここはカオスアートの同値性から検証してみた。
以下、同じパラメータに対してのカオスアートを比べてみる。
![pen_flower.gif](https://qiita-image-store.s3.amazonaws.com/0/233744/fa8288b0-e159-21d6-7fa8-8293d7c15a18.gif)
![dual_flower.gif](https://qiita-image-store.s3.amazonaws.com/0/233744/dcbb8914-0897-6245-9285-c52862e28dd5.gif)
![flower.jpg](https://qiita-image-store.s3.amazonaws.com/0/233744/b155b0ce-5c03-4cb9-4c1f-80410ac29bf1.jpeg)

上記の初期角度はだいたい10^-4～10^-5程度の領域で比較しており、ほぼ一致した振舞になっている。
他のカオスアートも角度が小さい領域はほぼ同じ振舞をする。
一方、上記のダイジェスト見てもわかると思うが、いくつか特徴的な絵が出ていない場合がある。以下のように、特に初期角度が大きい場合に差が異なるカオスアートが出現した。ということで、この微分方程式はほぼ単振り子連結二重振り子の運動方程式だといえるが、何か近似等をやっているようだ。
xp1dual_L11L21m1100m21y010.15601991952892066
![plot_xp1dual_L11L21m1100m21y010.15601991952892066.png](https:/ka/qiita-image-store.s3.amazonaws.com/0/233744/2bf24ec1-dbde-e422-44c1-4e88d8316857.png)
xp1pen_L11L21m1100m21y010.15601991952892066
![plot_xp1pen_L11L21m1100m21y010.15601991952892066n.png](https://qiita-image-store.s3.amazonaws.com/0/233744/e4c6f19d-7187-9e76-1da3-56c315f23158.png)

xp1dual_L11L21m1100m21y010.19056316004055146
![plot_xp1dual_L11L21m1100m21y010.19056316004055146.png](https://qiita-image-store.s3.amazonaws.com/0/233744/14ecde7b-f23c-9cee-fda7-667b46ff8c0a.png)
xp1pen_L11L21m1100m21y010.19056316004055146
![plot_xp1pen_L11L21m1100m21y010.19056316004055146n.png](https://qiita-image-store.s3.amazonaws.com/0/233744/9c1271a4-3388-b480-e1e5-740c997950ce.png)

xp1dual_L11L21m1100m21y010.23275436927724738
![plot_xp1dual_L11L21m1100m21y010.23275436927724738.png](https://qiita-image-store.s3.amazonaws.com/0/233744/53758108-7276-1881-00fe-f69afc793da8.png)
xp1pen_L11L21m1100m21y010.23275436927724738
![plot_xp1pen_L11L21m1100m21y010.23275436927724738n.png](https://qiita-image-store.s3.amazonaws.com/0/233744/d911ae9f-e0b7-beff-e535-74b66c6d64a3.png)
###（４）ちょっと驚いたカオスアート
これ何なんだろうというカオスアートがたくさん出てくるが、こういうの出るんですね。
これって、[DLA（Diffusion-limited aggregation）で有名な樹枝状成長](https://ja.wikipedia.org/wiki/%E6%8B%A1%E6%95%A3%E5%BE%8B%E9%80%9F%E5%87%9D%E9%9B%86)に類似しています。
![plot_xp1Pen2_L11L21m1100m21y011.925438770268361e-07n.png](https://qiita-image-store.s3.amazonaws.com/0/233744/2415a6c2-9069-e260-3f8d-57e1e2584ad1.png)
![plot_xp1Pen2_L11L21m1100m21y011.2973504384052513e-07n.png](https://qiita-image-store.s3.amazonaws.com/0/233744/b6cfb948-6fc6-3c72-b213-fdaf3aaf8159.png)
![plot_xp1Pen2_L11L21m1100m21y011.4227175088568964e-06n.png](https://qiita-image-store.s3.amazonaws.com/0/233744/e094d3ca-379e-b53f-b73d-237435cb39c2.png)
![plot_xp1Pen2_L11L21m1100m21y015.233885221031016e-07n.png](https://qiita-image-store.s3.amazonaws.com/0/233744/8b98d8bc-6fc2-f77c-fa75-fa24ddafc7aa.png)
![plot_xp1pen_L11L21m1100m21y011.4227175088568964e-06n.png](https://qiita-image-store.s3.amazonaws.com/0/233744/367216f9-e64f-afcb-f1a9-03f1f58b9011.png)
そして、以下なんだか不思議なカオスアートをセレクトしてみました。
![plot_xp1pen_L11L21m1100m241y015.233885221031016e-07n.png](https://qiita-image-store.s3.amazonaws.com/0/233744/854255ef-c390-deb2-ed96-4f3970d115c3.png)
![plot_xp1pen_L11L21m1100m260y012.6057980132902392e-08n.png](https://qiita-image-store.s3.amazonaws.com/0/233744/e6d62b9d-136f-250b-9ce9-ab376241dc43.png)
![plot_xp2pen_L1.0M9.8omegaJ0.6227838551490004y012.1115e-05n.png](https://qiita-image-store.s3.amazonaws.com/0/233744/fa65aefb-958a-f3a5-d58d-5d62132f29f0.png)
![plot_xp1Pen2_L11L21m1100m240y012.8576045055410773e-05n.png](https://qiita-image-store.s3.amazonaws.com/0/233744/09c7c3e6-208e-2c69-8eb8-63eb88cc7b59.png)
![plot_xp1Pen2_L11L21m1100m241y017.767774400335005e-05n.png](https://qiita-image-store.s3.amazonaws.com/0/233744/9f1a1969-ab07-45c6-db95-83c92fed4170.png)
![plot_xp1Pen2_L11L21m1100m21y011.7557728903871836e-08n.png](https://qiita-image-store.s3.amazonaws.com/0/233744/56fc339a-5247-2d48-f0a5-758a528c39ad.png)
![plot_xp2dual_L13L21m1100m220y012.6057980132902392e-08.png](https://qiita-image-store.s3.amazonaws.com/0/233744/4a595a19-6531-9f3d-b416-8c78897a5bab.png)
![plot_xp2dual_L13L21m1100m220y017.083293388161538e-08.png](https://qiita-image-store.s3.amazonaws.com/0/233744/4275efc5-f882-3de9-1bd7-558ca21dcd36.png)
![plot_xp1pen_L11L21m1100m240y012.6057980132902392e-08n.png](https://qiita-image-store.s3.amazonaws.com/0/233744/bdc4a3e1-b5c9-0c31-bacb-bddb2beaea99.png)

案外、七角形や五角形が多いし、いわゆる原子のs状態しかも３sとか高次の状態に見えるのがなんとも。。。今回５０００枚以上のカオスアートを見たが、まだまだ別な領域がありそうで、一年がすぐすぎてしまいそうです。
###まとめ
・単振り子連結と棒連結二重振り子のカオスアートを見た
・二つの系では、ほぼ似たようなカオスアートが得られる
・低角度領域においても魅力的なカオスアートが得られることが分かった

・強連結な振動子の系は微小振動とか微小角だからと云って、線形近似するのはダメなようだ
・エネルギー保存則の検証をしたいと思う
・運動方程式について、関数のΘやω依存性から上記結論を検証する

###おまけ
【参考】
①[二重振り子@カオス＆非線形力学入門](https://brain.cc.kogakuin.ac.jp/~kanamaru/Chaos/DP/)
②[複雑系の物理学(下)琉球大学理学部物質地球科学科集中講義](http://www.phys.chuo-u.ac.jp/public/tag/kougi/2004/fukuzatsu/print_II.pdf)
③[Double Pendulum@MyphysicLab.com](https://www.myphysicslab.com/pendulum/double-pendulum-en.html)

棒連結の微分方程式は以下のとおり

```math
\theta_1'' = \frac{-g(m_1 + 2m_2)\sin\theta_1 + 2m_2g\sin\theta_2\cos\theta_{12} -2m_2\sin \theta_{12}(\theta_2'^2L_2+2\theta_1'^2L_1\cos\theta_{12})}{L_1(m_1+4m_2-4m_2\cos^2\theta_{12})}
```

```math
\theta_2'' = \frac{{(2L_1\theta_1'^2(m_1+4m_2)+4m_2L_2\theta'^2_2\cos\theta_{12})\sin\theta_{12}-g((m_1+4m_2)\sin\theta_2-2(m_1+2m_2)\cos\theta_{12}\sin\theta_1)}}{L_2(m_1+4m_2-4m_2{\cos^2\theta_{12})}}
```

```math
\theta_1'' = \frac{-\omega^2(M_1\sin\theta_1 - M\sin\theta_2\cos\theta_{12}) -M\sin \theta_{12}(\theta_2'^2L+2\theta_1'^2\cos\theta_{12})}{(1-2M\cos^2\theta_{12})}
```

```math
\theta_2'' = \frac{{(2\theta_1'^2+2ML\theta'^2_2\cos\theta_{12})\sin\theta_{12}-\omega^2(\sin\theta_2-2M_1\cos\theta_{12}\sin\theta_1)}}{L(1-2M{\cos^2\theta_{12})}}
```
以下の無次元量とωを導入した。
無次元量で表したことにより、上式の見通しはよくなり、無次元量で記載されている参考の運動方程式と類似したものとなる。

```math
L=\frac{L_2}{L_1}
```

```math
\omega^2=\frac{g}{L_1}
```

```math
M_1=\frac{m_1+2m_2}{m_1+4m_2}
```

```math
M=\frac{2m_2}{m_1+4m_2}
```
Lagrangianは以下のKとUからL=K-Uで上記微分方程式が得られます。

```math
K=\frac{1}{2}(m_1+4m_2)L_1^2\theta_1'^2+\frac{1}{2}m_2L_2^2\theta_2'^2+2m_2L_1L_2\theta_1'\theta_2'\cos\theta_{12}
```

```math
U=(m_1+2m_2)gL_1(1-\cos\theta_1)+m_2gL_2(1-\cos\theta_2)
```