Plot Markov chain redistributions
Create a four-state Markov chain from a randomly generated transition matrix containing eight infeasible transitions.
rng('default'); % For reproducibility mc = mcmix(4,'Zeros',8);
mc is a
Plot a digraph of the Markov chain.
4 is an absorbing state.
Compute the state redistributions at each step for 10 discrete time steps. Assume an initial uniform distribution over the states.
X = redistribute(mc,10)
X = 11×4 0.2500 0.2500 0.2500 0.2500 0.0869 0.2577 0.3088 0.3467 0.1073 0.2990 0.1536 0.4402 0.0533 0.2133 0.1844 0.5489 0.0641 0.2010 0.1092 0.6257 0.0379 0.1473 0.1162 0.6985 0.0404 0.1316 0.0765 0.7515 0.0266 0.0997 0.0746 0.7991 0.0259 0.0864 0.0526 0.8351 0.0183 0.0670 0.0484 0.8663 ⋮
X is an 11-by-4 matrix. Rows correspond to time steps, and columns correspond to states.
Visualize the state redistribution.
After 10 transitions, the distribution appears to settle with a majority of the probability mass in state
Consider this theoretical, right-stochastic transition matrix of a stochastic process.
Create the Markov chain that is characterized by the transition matrix P.
P = [ 0 0 1/2 1/4 1/4 0 0 ; 0 0 1/3 0 2/3 0 0 ; 0 0 0 0 0 1/3 2/3; 0 0 0 0 0 1/2 1/2; 0 0 0 0 0 3/4 1/4; 1/2 1/2 0 0 0 0 0 ; 1/4 3/4 0 0 0 0 0 ]; mc = dtmc(P);
Compute the state redistributions at each step for 20 discrete time steps.
X = redistribute(mc,20);
Animate the redistributions in a histogram. Specify a half-second frame rate.
mc— Discrete-time Markov chain
Discrete-time Markov chain with
NumStates states and transition matrix
P, specified as a
P must be fully specified (no
X— Evolution of state probabilities
Evolution of state probabilities, specified as a
(1 + numSteps)-by-
NumStates nonnegative numeric matrix returned by
redistribute. The first row is the initial state distribution. Subsequent rows are the redistributions at each step.
distplot normalizes the rows by their respective sums before plotting.
comma-separated pairs of
the argument name and
Value is the corresponding value.
Name must appear inside quotes. You can specify several name and value
pair arguments in any order as
'Type','graph','FrameRate',3creates an animated plot of the redistributions using a frame rate of 3 seconds.
Type— Plot type
Plot type, specified as the comma-separated pair consisting of
'Type' and a value in this table.
Evolution of the initial distribution. The plot is a
Animated histogram of the redistributions. The vertical axis displays probability mass, and the horizontal axis displays states. The
Animated graph of the redistributions.
FrameRate— Length of discrete time steps
Length of discrete time steps, in seconds, for animated plots, specified as the
comma-separated pair consisting of
'FrameRate' and a positive
The default is a pause at each time step. The animation proceeds when you press the space bar.
h— Handle to distribution plot
Handle to the distribution plot, returned as a graphics object.
h contains a unique plot identifier, which you can use to query or modify properties of the plot.