分叉图

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 如何处理数组的计算。