def get_stationary_distrib(basis,traj_edges,test_set=None,delay=1,fix=0):
"""
"""
# Initialize params.
N, k = np.shape(basis)
if test_set is None:
test_set = basis
# Calculate Generator, Stiffness matrix
L = get_generator(basis,traj_edges,test_set=test_set,delay=delay,dt_eff=1)
# Get stationary distribution
nfi = range(0,fix)+range(fix+1,len(L)) #not fixed indices.
b = -1*L[fix,nfi]
L_submat_transpose = (L[nfi,:][:,nfi]).T
rho_notfixed = spl.solve(L_submat_transpose,b)
pi = np.ones(k)
pi[nfi] = rho_notfixed
# Convert to values in realspace.
pi_realspace = np.dot(basis,pi)
pi_realspace *= np.sign(np.median(pi_realspace))
return pi_realspace
评论列表
文章目录