Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
分叉图python-没有图像?_Python_Math - Fatal编程技术网

分叉图python-没有图像?

分叉图python-没有图像?,python,math,Python,Math,我正在尝试为以下迭代映射绘制分叉图: x_n+1=x_n*e^(r(1-x_n)) 首先,我定义了地图: def newmap(x,r): return x*math.exp(r*(1-x)) 然后我试了一下: def bifurcation_diagram(rmin=0, rmax=4, r_N=2000, N_min=4000, N = 1000): rspace = np.linspace(rmin, rmax, r_N) x = 0 rset = []

我正在尝试为以下迭代映射绘制分叉图:
x_n+1=x_n*e^(r(1-x_n))

首先,我定义了地图:

def newmap(x,r):
    return x*math.exp(r*(1-x))
然后我试了一下:

def bifurcation_diagram(rmin=0, rmax=4, r_N=2000, N_min=4000, N = 1000):
    rspace = np.linspace(rmin, rmax, r_N)
    x = 0
    rset = []
    xset = []
    for r in rspace:
        for i in range(N_min + N):
            x = newmap(x,r)
            if i > N_min:
                rset.append(r)
                xset.append(x)
    plt.figure(figsize=(16,7))
    plt.xlim((rmin,rmax))
    plt.ylim((0,5))
    plt.scatter(rset,xset,s=0.3,c='C0',linewidth=0)
    plt.xlabel(r'r', fontsize=20)
    plt.ylabel(r'$x_{end}$', fontsize=29, rotation=0)
    plt.show()
当我尝试
分叉图()
时,我得到一个空白图


我不确定哪里出了问题。

问题是
x=0
是一个固定点,
x=1
也是一个固定点。如果将
x=0
切换到
x=0.1
,但将其留在原来的位置,则第一个
r
值将
x
驱动到(这些值的作用是什么)吸引固定点
1
。您需要将
x=0.1
放入主循环中:

for r in rspace:
    x = 0.01

(其他一切都和以前一样)。

什么是
newmap
?哎呀,这是我在开始时给出的地图的函数。我将在中编辑它。您是否查看了
rset
xset
是否包含您认为应该包含的值?对于
r
的任何选择,您都有
newmap(0,r)==0
,因此我不知道您希望看到什么。也许修复就像初始化迭代种子一样简单,而不是固定点
x=0
是的,我完全忽略了这一点。我再次尝试使用不同的初始值x,但它们似乎都在x_{end}=1处给出了一条水平线。