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)将使您深入了解语法。前两个参数是 start 和 stop。第三个是多少值。然后,我将 Y 设为与 C 长度相同的 numpy 数组,但其值均为 1。您的 Y0 只是数字 1,它从未改变。然后我做了一些迭代以超越初始条件。然后进行更多迭代绘制每个值。

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

于 2015-01-05T11:48:47.467 回答