简单的马尔科夫预测法MATLAB程式(基于区间取平均数)
一个小白,一下数据是一次建模比赛中使用,欢迎批评指正
p1=[1/3 2/3 0;1/6 2/6 3/6;1/5 2/5 2/5];
a=[0 0 0 0 0 0 0 0 0 0];
a(1)=126.37;
for i=1:9
if(17.12<=a(i)&a(i)<87.8)
s1=[1 0 0]*p1;
a(i+1)=s1(1)*(87.8+17.12)/2+s1(2)*(87.8+158.48)/2+s1(3)*(158.48+229.77)/2;
elseif(87.8<=a(i)&a(i)<158.48)
s1=[0 1 0]*p1;
a(i+1)=s1(1)*(87.8+17.12)/2+s1(2)*(87.8+158.48)/2+s1(3)*(158.48+229.77)/2;
else(a(i)>=158.48&a(i)<229.77)
s1=[0 0 1]*p1;
a(i+1)=s1(1)*(87.8+17.12)/2+s1(2)*(87.8+158.48)/2+s1(3)*(158.48+229.77)/2;
end
p1=p1^(i+1);
end