カオス (2)
Pythonの勉強のために、前回にMatlabで書いたロジスティック写像のスクリプトを、Python 3.5で書き直してみます。Matlabの1から始まるインデックスに慣れているので、Pythonの0から始まるインデックスは混乱します・・・。
import matplotlib.pyplot as plt # 漸化式の計算 a = 4 x = [0.9] for i in range(99): x.append(a * x[i] * (1-x[i])) # プロット plt.plot(range(1,101,1),x) plt.title('a = '+str(a)) plt.xlabel('n') plt.ylabel('x[n]')
これで、下のようにa = 4のときの振舞いを描くことができました。
つぎに、aの値を少しずつ変えたときの分岐図も描いてみます。
import matplotlib.pyplot as plt import numpy as np for a in np.arange(0,4,0.001): x = [0.9] for i in range(99): x.append(a * x[i] * (1-x[i])) plt.plot([a]*20,x[80:100],'b.') plt.xlabel('a') plt.ylabel('x[n]')
これで、下のように分岐図をかけました。Pythonはド素人ですが、ちょこちょこ勉強していこうと思います。
- 作者: Bill Lubanovic,斎藤康毅,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/12/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る