%
说明:我们知道 Markov 链由的一个状态跳到下一个状态的和为 1。而 MATLAB 中,rand 函数
可以等概率产生区间[0,1]之间的数。例如从“状态 1”跳到“状态 1,2,3”的概率分别为 0.3、
0.5、0.2。所以我们可以使用 rand(1)<=0.3、0.3<rand(1)<=0.8 和 rand(1)>0.8 来表示概率 0.3、
0.5、0.2。
clc ;
clear all
orgn_P= [0, 1/3, 2/3;
1/4, 0, 3/4;
7/8, 1/8, 0]
n=200;%总的试验次数
Nmb_p=sqrt(numel(orgn_P));
A=1;
x=1:n+1;
for i=1:1:n
a=rand(1);
if a<=orgn_P(1,2) && A(i)==1
A=[A,2];
end
if a>orgn_P(1,2) && A(i)==1
A=[A,3];
end
if a<=orgn_P(2,1) && A(i)==2
A=[A,2];
end
if a>orgn_P(2,1) && A(i)==2
A=[A,3];
end
if a<=orgn_P(3,1) && A(i)==3
A=[A,1];
end
if a>orgn_P(3,1) && A(i)==3
A=[A,2];
end
end
plot([1:length(A)],A)
axis([0,length(A),min(A)-0.5,max(A)+0.5])
title('y的状态取值')