Recursion for the inductive process

I am a self-learning R, and I am struggling with a code search for the stop time (kns, ks) of an arbitrary random process, which can be defined as follows:

Basis : k0 = inf {u> = 0: max_ [0, u] - min_ [0, u] = H}

if X (k0) = max_ [0, k0] X, then k0s = inf {u in [0, k0]: X (u) = min_ [0, k0] X}

if X (k0) = min_ [0, k0] X, then k0s = inf {u in [0, k0]: X (u) = max_ [0, k0]} X}

Step n to n + 1 :

  • if $ X (kn) -X (ksn) = H, then:

    k (n + 1) = inf {t> = kn: max_ [kn, t]} XX (t) = H}

    ks (n + 1) = inf {t in [kn, k (n + 1)]: X (t) = max_ [kn, k (n + 1)] X}

  • if X (kn) -X (ksn) = - H, then:

    k (n + 1) = inf {t> = n: X (t) -min {[kn, t] X = H}

    k (n + 1) = inf {t in [kn, k (n + 1)]: X (t) = min_ [kn, k (n + 1)] X}

(k0s, ks) (ks1, k1), (ks2, k2).

    step<-function(v){
     z=numeric(300)
     for(i in 1:300){z[i]=max(v[1:i])-min(v[1:i])}
     k0<-min(which(z>=0.0005))
     k0s<-if (v[k0]==max(v[1:k0])) min(which(v==min(v[1:k0]))) else if (v[k0]==min(v[1:k0])) min(which(v==max(v[1:k0])))
     x=numeric(300)
     if (v[k0]-v[k0s]>=0.0005) {
     for (i in k0:300){x[i]=max(v[k0:i])-v[i]}
     k1<-min(which(x>=0.0005))
     k1s<-min(which(v==max(v[k0:k1])))
     }
     if (v[k0]-v[k0s]<=-0.0005) {
     for (i in k0:300) {x[i]=-min(v[k0:i])+v[i]}
     k1<-min(which(x>=0.0005))
     k1s<-min(which(v==min(v[k0:k1])))
     }
     y=numeric(300)
     if (v[k1]-v[k1s]>=0.0005) {
     for (i in k1:300){y[i]=max(v[k1:i])-v[i]}
     k2<-min(which(y>=0.0005))
     k2s<-min(which(v==max(v[k1:k2])))
     }
     if (v[k1]-v[k1s]<=-0.0005) {
     for (i in k1:300) {y[i]=-min(v[k1:i])+v[i]}
     k2<-min(which(y>=0.0005))
     k2s<-min(which(v==min(v[k1:k2])))
      }
     return(c(k0s,k0,k1s,k1,k2s,k2))
     }

v , :

     v<-rnorm(300) 

.

, (ksn, kn) ( ). (kns, ks) {k (n-1) s, k (n-1)}, ; , . - / - , ?

, , .

, .

+4

Source: https://habr.com/ru/post/1548236/


All Articles