« Python+NumbaでWikipediaのList of chaotic mapsを1つずつ描く(その4) Ikeda Map | トップページ | Pythonの3Dのscatter+cmap+SciPyの特殊関数で水素原子の波動関数の電子分布を描いてみる。 »

2020年6月24日 (水)

Python+NumbaでWikipediaのList of chaotic mapsを1つずつ描く(その5) Cliford attractor

今日やるのは、、、

https://en.wikipedia.org/wiki/List_of_chaotic_maps#cite_note-14

このCliford atractorです。

http://paulbourke.net/fractals/clifford/

こんな式でa,b,c,dがパラメータ。

x[i+1]=np.sin(a*y[i])+c*np.cos(a*x[i])
y[i+1]=np.sin(b*x[i])+d*np.cos(b*y[i])

リンク先に乗っていたパラメータを描いてみた。

Cliford01 Cliford02 Cliford04 Cliford03

 

コードはこんな感じ。

import matplotlib.pyplot as plt
import numpy as np
from numba import jit

a = -1.4
b = 1.6
c = 1.0
d = 0.7

a = 1.6
b = -0.6
c = -1.2
d = 1.6

a = 1.7
b = 1.7
c = 0.6
d = 1.2

a = -1.8
b = -2.0
c = -0.5
d = -0.9

@jit
def cliford_calc(x,y,N):

    for i in range(N-1):
        x[i+1]=np.sin(a*y[i])+c*np.cos(a*x[i])
        y[i+1]=np.sin(b*x[i])+d*np.cos(b*y[i])

N=500000


fig=plt.figure(figsize=(12,12))
plt.xlim(-2.5,2.5)
plt.ylim(-2.5,2.5)



x=np.zeros(N)
y=np.zeros(N)
x[0],y[0]=0.0, 0.0
cliford_calc(x,y,N)
plt.scatter(-x,y,s=1,c='black',alpha=0.05)


plt.show()

 

« Python+NumbaでWikipediaのList of chaotic mapsを1つずつ描く(その4) Ikeda Map | トップページ | Pythonの3Dのscatter+cmap+SciPyの特殊関数で水素原子の波動関数の電子分布を描いてみる。 »

学問・資格」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« Python+NumbaでWikipediaのList of chaotic mapsを1つずつ描く(その4) Ikeda Map | トップページ | Pythonの3Dのscatter+cmap+SciPyの特殊関数で水素原子の波動関数の電子分布を描いてみる。 »

最近の記事

2021年3月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
フォト
無料ブログはココログ