def get_ht(basis,stateA,traj_edges,test_set=None,delay=1,dt_eff=1.):
"""
Calculates the hitting time using a galerkin method.
"""
if test_set is None:
test_set = basis
# Check if any of the basis functions are nonzero on target state.
A_locs = np.where(stateA)[0]
if np.any(basis[A_locs]):
raise RuntimeWarning("Some of the basis vectors are nonzero in state A.")
L = get_generator(basis,traj_edges,test_set=test_set,delay=delay,dt_eff=dt_eff)
beta = get_beta(stateA-1.,test_set,traj_edges,delay=delay)
coeffs = spl.solve(L,beta)
ht = np.dot(basis,coeffs)
return ht,coeffs
评论列表
文章目录