分叉图

时间:2015-01-05 11:18:57

标签: python numpy chaos

我想在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循环。

1 个答案:

答案 0 :(得分: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)会让您深入了解语法。前两个参数是start和stop。第三是多少价值观。然后我使Y成为与C相同长度的numpy数组,但其值均为1.你的Y0只是数字1,它从未改变过。然后我做了一些迭代以超越初始条件。然后做了更多的迭代绘制每个值。

要真正了解我所做的事情,你必须看看numpy如何处理数组的计算。