Python 分岔图的编码
我想知道我的代码出了什么问题,因为我一直得到一个奇怪但与实际分岔图类似的结果。我使用的是迭代方程Python 分岔图的编码,python,python-3.x,numpy,recursion,math,Python,Python 3.x,Numpy,Recursion,Math,我想知道我的代码出了什么问题,因为我一直得到一个奇怪但与实际分岔图类似的结果。我使用的是迭代方程xn+1=xn*r(1-xn) 这是我的密码: import numpy as np import matplotlib.pyplot as plt from functools import lru_cache @lru_cache(maxsize = 1000) def bifunc(): R_val = [] X_val = [] R = np.linspace(0.
xn+1=xn*r(1-xn)
这是我的密码:
import numpy as np
import matplotlib.pyplot as plt
from functools import lru_cache
@lru_cache(maxsize = 1000)
def bifunc():
R_val = []
X_val = []
R = np.linspace(0.5,4,1000)
for r in R:
x = 0.5
for iterations in range(1001):
x = x*r*(1-x)
R_val.append(r)
X_val.append(x)
plt.plot(R_val, X_val, ls = '', marker = ',')
plt.show()
bifunc()
下面是不断出现的图像:
任何帮助都将不胜感激。谢谢。由于前几次迭代没有遵循该模式,因此可以通过
if
-test将其忽略。最好也删除lru\U缓存
,因为它在这里没有实际功能,可能会干扰测试
将numpy导入为np
将matplotlib.pyplot作为plt导入
def bifunc():
R_val=[]
X_val=[]
R=np.linspace(0.5,4,1000)
对于r中的r:
x=0.5
对于范围(1001)内的迭代:
x=x*r*(1-x)
如果迭代次数>100:
附加值(R)
附加值(X)
plt.plot(R_val,X_val,ls='',marker='','')
plt.show()
bifunc()
这导致了一个类似于网络上许多人的情节。通常,绘图不会在
R=1
之前开始,以避免显示介于0.5和1之间的平面部分。如果只调用一次函数,为什么要使用缓存?欢迎使用。请提供有关您的问题的详细信息。一些输入和预期输出的例子总是有用的。请检查一个问题以了解更多细节。@JohanC,是的,我刚刚删除了它,但即使我已经编写了if语句,也会出现相同的结果。一开始不知道如何删除多余的行。非常感谢,这个小问题一直困扰着我,非常感谢您的帮助。