用MATLAB仿真markov链程序
说明:我们知道markov链由一个状态跳到下个状态的和为1,而MATLAB中,rand函数可以等概率产生区间[0,1]之间的数。例如从状态1跳到状态1,2,3的概率分别为0.3、0.4、0.4。所以我们可以使用rand(1)<=0.3、0.3
0.7来
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示概率0.3、0.4、0.4。
例子:假设有三个状态1、2、3,概率转移矩阵如下
假设初始状态为1,仿真程序如下
clear all
clc
A=1;
x=1:101;
for i=1:1:100
a=rand(1);
if a<=0.5&&A(i)==1
A=[A,2];
end
if a>0.5&&A(i)==1
A=[A,3];
end
if a<=0.5&&A(i)==2
A=[A,2];
end
if a>0.5&&A(i)==2
A=[A,3];
end
if a<=0.5&&A(i)==3
A=[A,1];
end
if a>0.5&&A(i)==3
A=[A,2];
end
end
A
其中一次的结果如下
A =
Columns 1 through 13
1 2 3 1 3 1 3 1 3 2 3 1 2
Columns 14 through 26
1 3 1 3 2 3 1 2 1 3 1 3 2
Columns 27 through 39
3 1 2 1 3 1 3 1 2 1 2 3 2
Columns 40 through 52
3 1 3 2 1 3 1 2 1 2 1 2 1
Columns 53 through 65
2 3 2 1 2 1 3 1 2 3 1 2 1
Columns 66 through 78
2 1 3 2 3 1 2 1 3 1 2 1 3
Columns 79 through 91
2 3 1 3 1 3 1 3 1 2 3 2 1
Columns 92 through 101
3 2 1 2 1 2 3 2 3 2