1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 马尔科夫链怎样用matlab 求助 关于matalab马尔可夫链仿真

马尔科夫链怎样用matlab 求助 关于matalab马尔可夫链仿真

时间:2022-05-27 02:05:58

相关推荐

马尔科夫链怎样用matlab 求助 关于matalab马尔可夫链仿真

本帖最后由 zhanglu 于 -7-22 15:19 编辑

clear all

clc

data=[195821.88 184039.60 203143.59 206044.36 215879.79 209281.31 212024.50 209429.16 196409.18 197450.76 178736.91 198378.23];

cishu=12;

[MM,NN]=size(data);

A=data;

B=A;

ZZ=zeros(MM,cishu);

for jj=1:cishu

c=zeros(2,1);

for j=1:MM

B=cumsum(A(j,:));

n=length(A(j,:));

for i=1:(n-1)

C(i)=(B(i)+B(i+1))/2;

end

D=A(j,:);D(1)=[];

D=D';

E=[-C;ones(1,n-1)];

c=inv(E*E')*E*D;

c=c';

a=c(1);b=c(2);

F=[];F(1)=A(1);

for i=2:n

F(i)=(A(j,1)-b/a)/exp(a*(i-1))+b/a;

end

G=[];G(j,1)=A(j,1);

for i=2:n

G(j,i)=F(i)-F(i-1);

end

for k=1:1:n

H(k,1)=exp(-a*(k-1));

H(k,2)=1;

end

Z=inv(H'*H)*H'*F';

A1=Z(1);

B1=Z(2);

WW(j)=(1-exp(a)) *A1;

for k=1:n+1

y(j,k)=WW(j)*exp(-a*k);

end

end

y;

yy=y;

y(:,n+1)=[];

Y=A./y;

YY=yy(:,n+1);

for kk=1:MM

nn=3;

g(1)=min(Y(kk,:)); g(4)=max(Y(kk,:));

ch=(g(4)-g(1))/nn;g(2)=g(1)+ch;g(3)=g(2)+ch;

[h cd]=size(Y);

for i=1:cd

if Y(kk,i)

BB(kk,i)=1;

elseif Y(kk,i)

BB(kk,i)=2;

else Y(kk,i)

BB(kk,i)=3;

end

end

for k=1:3

aa=0;bb=0;cc=0;

for i=1:(cd-k)

if BB(kk,i)==1

aa=aa+1;

elseif BB(kk,i)==2

bb=bb+1;

else

cc=cc+1;

end

end

FM=[aa;bb;cc];

for j=1:3

w=0;

for i=1:(cd-k)

if BB(kk,i)==BB(kk,cd-k)&BB(kk,i+k)==j

w=w+1;

end

end

P(k,j)=w/FM(BB(kk,cd-k),:);

end

end

Q=sum(P,1);

wz=find(Q==max(Q));

y1(kk)=((g(wz(1))+g(wz(1)+1))/2);

end

y1;

yyy=y1'.*YY ; %最终预测值

ZZ(:,jj)=yyy;

A=[A yyy];

end

yucezhi=ZZ;

hold on

plot(data,'o')

hold on

plot(A,'-+r')

legend('初始','预测','location','best')

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。