2

当谈到 python 时,我是一个相对初学者,我目前正在尝试找出一些 python 来解决我遇到的问题。我正在尝试计算我应该创建的分岔图的 lyapunov 指数。

方程是 X_(n+1) = a sin(pi x_(n)),其中 a = 0.9(当我计算指数时)

这是目前我设置的用于创建变大值数组的代码。

import numpy as np
np.set_printoptions(threshold=np.nan)
import matplotlib.pyplot as plt

a = np.linspace(0,1) 
xn = np.array([.001], dtype = float)

for i in range(0,10000):
    y = a*np.sin(np.pi*xn[i])
    xn = np.append(xn,y)

plt.plot(a,xn[-1])

然而,很明显,当我绘制 xn 时,我得到的只是一堆乱七八糟的点,而不是分岔图。我希望我能得到一些指导,帮助我走向正确的图表,我希望可以用它来接近我的最终目标。

感谢您的帮助,我很感激!

4

1 回答 1

0

我不确定您要完成什么,而且我对分叉的了解还不够,无法自己真正弄清楚,但是我能够得到一些似乎可行的东西。主要的警告似乎是,如果 alpha 从小于 0.158 开始,它将不会产生正确的输出。

import numpy as np
import matplotlib.pyplot as plt

x = [0.001]
a = np.linspace(0.2,1,100000)
for i in range(1,a.shape[0]):
    x.append(a[i]*np.sin(np.pi*x[i-1]))

fig = plt.figure(figsize=(8,4))
plt.scatter(a,x,s=0.1)

这产生了这个数字: 分岔输出

于 2019-02-25T03:51:44.157 回答