假设您正在求解一个具有吸引子的数值方程组(无论初始条件设置如何,所有不同的解决方案都将接近包含所谓吸引子的一组特定值)。采用的数值方法是四阶龙格-库塔法。
现在假设您采用吸引子解决方案的最终值并及时向后积分。结果曲线偏离原始吸引子轨迹并最终“发散”是否正常?
原则上我的猜测是它不应该遵循原始的吸引子解决方案,因为不同的解决方案会收敛到它。然而,它最终发散的事实让我认为我使用的代码是错误的。
编辑:
应用户的要求,我编写了方程式:
点表示时间导数。
代码是:
def rk4trial(f,v0,t0,tf,n,V):
t=np.linspace(t0,tf,n)
h=t[1]-t[0]
v=v0
for j in range(n):
V.append(v)
k1=f(v,t[j])*h
k2=f(v+0.5*k1,t[j]+0.5*h)*h
k3=f(v+0.5*k2,t[j]+0.5*h)*h
k4=f(v+k3,t[j]+h)*h
v=v+(k1+2*k2+2*k3+k4)/6
return V, t, h
向后积分时,我只是将 tf 设置为初始时间,将 t0 设置为最终时间,并将最终值用作初始条件。