目前我使用以下代码生成洛伦兹级数
def generate(x, stop=10000, s=10, b=8/3, r=28):
def lor(v):
return np.array([s * (v[1] - v[0]), v[0] * (r - v[2]) - v[1], v[0] * v[1] - b * v[2]])
ret = []
step = 0.1
xtemp = x.copy()
for i in range(stop):
k1 = lor(xtemp)
k2 = lor(xtemp + step / 2 * k1)
k3 = lor(xtemp + step /2 * k2)
k4 = lor(xtemp + step * k3)
xtemp += step/6 * (k1 + 2 * k2 + 2 * k3 + k4)
ret.append(xtemp[0])
return np.array(ret)
但nolds.lyap_r产生无效值(我假设有效值为 0.91)
import nolds
l = generate([1, 0, 0])
nolds.lyap_r(l, tau=0.1, emb_dim=5)
1.0030932070169234
知道我在哪里犯了错误吗?