我想为参数a绘制一个图,对于a的每个值,我想显示初始瞬变后映射的轨迹,并将其绘制在y轴上。在下面的示例中,我在a中取200个点(参数范围从1到4),为每个a运行1000步迭代,并在跳过100步后绘制x图。为了实现这一点,我使用了两个函数(iterate和logistic):
def logistic(x, a):
return(a*x*(1 - x))
def iterate(f, x0, a, steps=1000):
"""x0: initial value
a: parameter to f(x,a)"""
x = np.zeros(steps+1)
x[0] = x0
for k in range(steps):
x[k+1] = f(x[k], a)
return(x)
n = 200 # points in a
a = np.arange(1,4,3/n)
s = 1000 # steps for each a
x = iterate(logistic, 100, a, 1000)
plt(x)但我得到以下错误: ValueError:使用序列设置数组元素。有人能帮上忙吗?
编辑
这就是我想要得到的图表

发布于 2017-10-28 09:54:36
嗯,a是一个由200个值组成的数组。因此,将其乘以标量得到的结果是200个值,这在尝试进行赋值时会带来麻烦,这并不奇怪。
https://stackoverflow.com/questions/46979094
复制相似问题