pub struct MarkovChain {
pub transition: Vec<Vec<f64>>,
pub n_states: usize,
/* private fields */
}Expand description
Discrete-time finite Markov chain.
Stores the transition matrix P where P[i][j] = P(X_{n+1} = j | X_n = i).
Fields§
§transition: Vec<Vec<f64>>Transition matrix (n_states x n_states), row-major.
n_states: usizeNumber of states.
Implementations§
Source§impl MarkovChain
impl MarkovChain
Sourcepub fn new(transition: Vec<Vec<f64>>, seed: u64) -> Self
pub fn new(transition: Vec<Vec<f64>>, seed: u64) -> Self
Creates a new Markov chain from a transition matrix.
Rows must sum to 1 (stochastic matrix).
Sourcepub fn simulate(&self, start_state: usize, n_steps: usize) -> Vec<usize>
pub fn simulate(&self, start_state: usize, n_steps: usize) -> Vec<usize>
Simulate a trajectory of length n_steps starting from start_state.
Sourcepub fn stationary_distribution(&self) -> Vec<f64>
pub fn stationary_distribution(&self) -> Vec<f64>
Compute stationary distribution by power iteration.
Returns pi such that pi * P = pi with sum(pi) = 1.
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.