全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1464 0
2017-05-05
各位高手前辈大家好,
在一个论文中看到一个马尔科夫链simulation的小程序,实际运行时有一行总是出现问题,我试了多次都没改好,希望有人能帮助改一下。谢谢大家!
全程序粘贴如下,问题处已标红
mk<-function(n,s,mu,p,d){
  #Einfuehrungsfunktion:
  psi<-function(x,s,mu){
    y<-cumsum(mu)
    i<-2
    if(x>=0 & x<mu[1]){i<-1}
    else{
      repeat{
        if(x>=y[i-1] & x< y){i&break}
        else{i<-i+1}
        }
      }
    return(i)
    }
  #Update-Funktion:
  phi<-function(x,t,p){
    z<-cumsum(p[t, ])
    j<-2
    if(x>=0 & x<p[t,1]){j<-1} 此处抛出错误 missing value where T/F needed (实际运行程序为尾段蓝字)
    else{
      repeat{
        if(x>=z[j-1] & x< z[j]){j&break}
        else{j<-j+1}
        }
      }
    return(j)
    }
  #Erzeugen der X
  u<-runif(n+1,min=0,max=1)
  X<-rep(3,n+1)
  Y<-rep(0,n+1)
  j<-rep(0,n+1)
  j[1]<-psi(u[1],s,mu)
  X[1]<-s[j[1]]
  z<-0
  if(X[1]==d){Y[1]<-1}
  if(X[1]==d){z<-1}
  i<-1
  repeat{
    i<-i+1
    j<-phi(u,j[i-1],p)
    X<-s[j]
    if(X==d){z<-z+1} #Summe 1_[Xi=z]
    Y<-(1/i)*z #Berechnung von Y + if(i==n+1)break
  }
  print(X)
  plot(Y,type="l",xlab="Zeitpunkt n")
  }


s<-c("Regen","Sonne","Schnee")
p<-matrix(c(0.5,0.15,0.2,0.3,0.7,0.3,0.2,0.15,0.5),nrow=3)
mu<-c(0,0,1)
set.seed(100)
mk(20,s,mu,p,"Schnee")

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群