Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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_Python 3.x_Numpy_Recursion_Math - Fatal编程技术网

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语句,也会出现相同的结果。一开始不知道如何删除多余的行。非常感谢,这个小问题一直困扰着我,非常感谢您的帮助。