0

我想为参数 a 绘制图表。对于 a 的每个值,我想显示初始瞬态后地图的轨迹,并将其绘制在 y 轴上。在下面的示例中,我在 a 中取 200 个点(参数范围从 1 到 4),为每个 a 运行 1000 步迭代,并在跳过 100 步后绘制 x。为了实现这一点,我使用了两个函数(迭代和逻辑):

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: setting an array element with a sequence。有人可以帮忙吗?

编辑

这是我想要获得的图表

在此处输入图像描述

4

1 回答 1

0

嗯,a是一个包含 200 个值的数组。因此,将其乘以标量会得到 200 个值的结果,这应该不会让您感到惊讶,这会在尝试进行分配时导致麻烦。

于 2017-10-28T01:54:35.610 回答