import math from tqdm import tqdm import matplotlib.pyplot as plt import numpy as np def LogisticMap(): mu = np.arange(0, 1.5, 0.0001) x = 0.2 # 初值 iters = 1000 # 不进行输出的迭代次数 last = 100 # 最后画出结果的迭代次数 for i in tqdm(range(iters+last)): x = mu * math.sin(math.pi/x) if i >= iters: plt.plot(mu, x, ',k', alpha=0.25) # alpha设置透明度 plt.show() LogisticMap()
时间: 2024-04-16 19:26:58 浏览: 169
import numpy as np import matplotlib.pyplot as plt import math
你的代码有一些问题。在LogisticMap函数中,你使用了不正确的迭代方式和混沌映射函数。请使用以下代码来画混沌映射的分岔图:
```python
import numpy as np
import matplotlib.pyplot as plt
def logistic_map(x, r):
return r * x * (1 - x)
def bifurcation_diagram():
r_values = np.arange(0, 4, 0.001) # 参数范围
x_values = [] # 存储结果的列表
for r in r_values:
x = 0.2 # 初始值
for _ in range(1000): # 忽略前1000个迭代点,使系统达到稳定状态
x = logistic_map(x, r)
for _ in range(100): # 取后100个点作为结果
x = logistic_map(x, r)
x_values.append(x)
plt.figure(figsize=(10, 6))
plt.scatter(r_values, x_values, s=0.5, marker='.', color='black')
plt.xlabel('r')
plt.ylabel('x')
plt.title('Bifurcation Diagram of Logistic Map')
plt.show()
bifurcation_diagram()
```
这样你就可以使用Python画出Logistic映射的混沌分岔图了。请注意,你可以根据需要调整参数范围和迭代次数。
阅读全文