我想在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循环。
答案 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如何处理数组的计算。