分叉图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处给出了一条水平线。