我正在使用两个函数。我想做一个分叉图。我拥有的第一个功能是使用matplotlib制作地图
def print_bifurcation_map(initial,rmin,rmax,rstep,iterates,k):
xn_list = []
r_list = []
for r in np.linspace(rmin, rmax,rstep):
xn = []
xn.append(run_logistic(initial,r,iterates))
xn_list =xn_list + xn[-k:]
r_list = r_list + [r]*len(xn)
这段代码的作用是在x接近一个大数字(迭代)时,取一个范围的Rs并计算极限。我们从列表中选取最后的k个数字。它调用下面的函数run_logistic
def run_logistic(xn,r,iterates):
iteration = 1
while iteration <= iterates:
xn1 = logistic_map(xn,r)
iteration = iteration + 1
xn = xn1
print xn
这就是事情变得有点奇怪的地方。当我通过函数“print\u\u map”使用return和call时,它运行一次并追加一次。但是,如果我将return xn改为“print xn”,这就是现在代码块中的内容,它似乎运行得更正确,尽管速度非常慢
那么,我在打印映射定义或运行逻辑函数中的错误之处是什么呢。下面是逻辑图功能
def logistic_map(xn,r):
xn1 = r*xn*(1-xn)
return xn1
return在该点退出函数并输出返回值。因此,在第一次迭代之后,返回值,然后就完成了
您试图对函数
run_logistic
执行什么操作?返回最终值或获得的所有值如果需要最终值,则-
否则,如果需要所有值,则创建一个要附加到并返回该列表的列表
相关问题 更多 >
编程相关推荐