分叉图
Bifurcation diagram
我想在python中画一个二次映射的Bifurcation图。
基本上它是 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 循环。
这里是一些修改后的代码(下面有部分解释)
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)
会让您深入了解语法。前两个参数是开始和停止。三是值多少。然后,我将 Y 设为与 C 长度相同的 numpy 数组,但其值均为 1。您的 Y0 只是数字 1,并且从未改变。然后我做了一些迭代来超越初始条件。然后对每个值进行更多迭代。
要真正理解我所做的事情,您必须了解 numpy 如何处理数组的计算。
我想在python中画一个二次映射的Bifurcation图。 基本上它是 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 循环。
这里是一些修改后的代码(下面有部分解释)
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)
会让您深入了解语法。前两个参数是开始和停止。三是值多少。然后,我将 Y 设为与 C 长度相同的 numpy 数组,但其值均为 1。您的 Y0 只是数字 1,并且从未改变。然后我做了一些迭代来超越初始条件。然后对每个值进行更多迭代。
要真正理解我所做的事情,您必须了解 numpy 如何处理数组的计算。