def orthonormalise(self, n_lyap, delay):
"""
Orthonormalise separation functions (with Gram-Schmidt) and return their norms after orthogonalisation (but before normalisation).
"""
vectors = np.split(np.arange(self.n, dtype=int), n_lyap+1)[1:]
norms = []
for i,vector in enumerate(vectors):
for j in range(i):
sp = self.scalar_product(delay, vector, vectors[j])
self.subtract_from_past(vector, vectors[j], sp)
norm = self.norm(delay, vector)
if norm > NORM_THRESHOLD:
self.scale_past(vector, 1./norm)
norms.append(norm)
return np.array(norms)
评论列表
文章目录