pub struct MarkovChain {
pub p: Vec<f64>,
pub n_states: usize,
}Expand description
Discrete-time finite Markov chain with transition matrix P.
Fields§
§p: Vec<f64>Transition matrix P (n x n), row-stochastic.
n_states: usizeNumber of states.
Implementations§
Source§impl MarkovChain
impl MarkovChain
Sourcepub fn new(p: Vec<f64>, n_states: usize) -> Self
pub fn new(p: Vec<f64>, n_states: usize) -> Self
Create a Markov chain from a row-stochastic transition matrix (n x n).
Sourcepub fn simulate(&self, init: usize, n_steps: usize, seed: u64) -> Vec<usize>
pub fn simulate(&self, init: usize, n_steps: usize, seed: u64) -> Vec<usize>
Simulate a trajectory of length n_steps starting from state init.
Sourcepub fn stationary_distribution(&self, tol: f64, max_iter: usize) -> Vec<f64>
pub fn stationary_distribution(&self, tol: f64, max_iter: usize) -> Vec<f64>
Compute the stationary distribution by iterating the distribution vector.
Returns the vector pi such that pi P = pi.
Sourcepub fn n_step_matrix(&self, n: usize) -> Vec<f64>
pub fn n_step_matrix(&self, n: usize) -> Vec<f64>
Compute the n-step transition matrix P^n.
Sourcepub fn mixing_time(&self, init: usize, eps: f64) -> usize
pub fn mixing_time(&self, init: usize, eps: f64) -> usize
Estimate the mixing time: smallest t such that ||(pi_0 P^t) - pi||_1 < eps.
Auto Trait Implementations§
impl Freeze for MarkovChain
impl RefUnwindSafe for MarkovChain
impl Send for MarkovChain
impl Sync for MarkovChain
impl Unpin for MarkovChain
impl UnsafeUnpin for MarkovChain
impl UnwindSafe for MarkovChain
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.