我正在使用Python odeint同步两组Lorentz方程。我取一个系统的X值(Xi)并用它来驱动第二个系统,这样第二个系统的X值(Xr)就会与第一个系统同步,这很好。我想试验一下,当噪声加到第一个系统的X值的输出时,同步性的极限。当我将一个高斯随机数添加到公式中时,我收到以下错误,在这个调用中做了过多的工作(可能是错误的Dfun类型)。以full_output=1运行以获取定量信息。
如何向Xi添加噪波,以便Xr的解开始偏离Xi?你知道吗
代码如下:
Beta = 8. / 3.
Rho = 28.
Sigma = 10.
##################################
#
# dx/dt = Sigma(y-x)
# dy/dt = Rho*x - y-xz
# dz/dt = xy - Beta*z
#
##################################
def f(y, t):
Xi = y[0]
Yi = y[1]
Zi = y[2]
Xr = y[3]
Yr = y[4]
Zr = y[5]
f0 = Sigma*(Yi -Xi)
f1 = Rho*Xi - Yi - Xi*Zi
f2 = Xi*Yi - Beta*Zi
f3 = Sigma*(Yr - Xr)
f4 = Rho*(Xi +np.random.normal(0,3)) - Yr - (Xi)*Zr
f5 = (Xi +Rho*np.random.normal(0,3))*Yr - Beta*Zr
return [f0, f1, f2, f3, f4, f5]
# Initial Conditions
X0 = 2.0
Y0 = 1.0
Z0 = 3.0
XR0 = 2.5
YR0 = 1.5
ZR0 = 2.25
y0 = [X0, Y0, Z0, XR0, YR0, ZR0]
t = np.arange(0, 30, .001)
dt = t[1] - t[0]
# Solve the DEs
soln = odeint(f, y0, t)
X = soln[:, 0]
Y = soln[:, 1]
Z = soln[:, 2]
XR = soln[:, 3]
YR = soln[:, 4]
ZR = soln[:, 5]
目前没有回答
相关问题 更多 >
编程相关推荐