无法重现文章中的分叉图

问题描述 投票:0回答:1

我一直在阅读这篇文章绘制正确分叉图的简单指南并且我想重现下图(图10,第2150011-7页):

我创建了这个程序,可以与其他经典分叉图配合使用:

def model(x, r):
    return 8.821 * np.tanh(1.487 * x) - r * np.tanh(0.2223 * x)

def diagram(r, x=0.1, n=1200, m=200):
    xs = []
    for i in range(n):
        x = model(x, r)
        if i >= n - m:
            xs.append(x)
    return np.array(xs).T

rlin = np.arange(5, 30, 0.01)
xlin = np.linspace(-0.1, 0.1, 2)
clin = np.linspace(0., 1., xlin.size)
colors = plt.get_cmap("cool")(clin)

fig, axe = plt.subplots(figsize=(8, 6))
for x0, color in zip(xlin, colors):
    x = diagram(rlin, x=x0, n=600, m=100)
    _ = axe.plot(rlin, x, ',', color=color)
axe.set_title("Bifurcation diagram")
axe.set_xlabel("Parameter, $r$")
axe.set_ylabel("Serie term, $x_n(r)$")
axe.grid()

但是对于这个系统,它呈现:

在某种程度上看起来相似,但规模不同,并且当

r > 17.5
具有与文章中呈现的完全不同的行为时。

我想知道为什么会出现这种差异。我错过了什么?

python ode scientific-computing
1个回答
0
投票

我认为该文章的期刊审稿人需要更加小心。该模型方程基于之前的一篇文章(Baghdadi 等人,2015 - 我必须通过我工作场所的机构访问才能得到它),B 的原始值是 5.821,而不是 8.821(参见 2015 年的图 2)文章)。

def model(x, r):
    return 5.821 * np.tanh(1.487 * x) - r * np.tanh(0.2223 * x)

这呈现为

© www.soinside.com 2019 - 2024. All rights reserved.