0

Pythonで二次写像の分岐図を描きたいです。基本的に x_{n+1}=x_n^2-c ​​のプロットで、http://static.sewanee.edu/Physics/PHYSICS123/image99.gifのようになります。

しかし、私は初心者なので、正しくできるかどうかわかりません。

私のコード

import numpy as n
import scipy as s
import pylab as p

xa=0.252
xb=1.99

C=n.linspace(xa,0.001,xb)
iter=100
Y=n.zeros((len(X),iteracje))
i=1
Y0=1
for Y0 in iter:
    Y(i+1)=Y0^2-C

for Y0 in iter:
        Y(i+1)=Y0^2-C

p.plot(C,Y)
p.show()

私の問題は、これらの for ループを適切に記述する方法がわからないことです。

4

1 に答える 1

3

ここにいくつかの変更されたコードがあります(以下の部分的な説明)

import numpy as n
import scipy as s
import pylab as p

xa=0.252
xb=1.99

C=n.linspace(xa,xb,100)
print C
iter=1000
Y = n.ones(len(C))

for x in xrange(iter):
    Y = Y**2 - C   #get rid of early transients

for x in xrange(iter): 
    Y = Y**2 - C
    p.plot(C,Y, '.', color = 'k', markersize = 2)


p.show()

まず、linspace コマンドの形式が間違っていました。 help(s.linspace)構文への洞察を提供します。最初の 2 つの引数は start と stop です。3 つ目は、値の数です。次に、Y を C と同じ長さの numpy 配列にしましたが、その値はすべて 1 でした。Y0 は単に数字の 1 であり、変更されることはありませんでした。次に、初期条件を通過するためにいくつかの反復を行いました。次に、各値をプロットする反復をさらに行いました。

私が行ったことを本当に理解するには、numpy が配列を使用して計算を処理する方法を確認する必要があります。

于 2015-01-05T11:48:47.467 に答える