ИДЗ №2 / idz2
.docxTM<-10
d<-3
L<-matrix(c(0,0,6,0,0,0,7,2,0),nrow=d,ncol=d,byrow=TRUE)
S<-sum(L)
xa<-qnorm(0.01)
ng<-as.integer((-xa+sqrt(xa^2+TM*S)/2)^2)
YG<-rexp(ng)
Y<-runif(ng)
P<-matrix(nrow=d,ncol=d)
P1<-vector(length=d)
P2<-vector(length=d)
for(i in 1:d){P1[1:d]<-L[i,1:d];P2[i]<-sum(P1);P[i,1:d]<-L[i,1:d]/P2[i]}
[,1] [,2] [,3]
[1,] 0.0000000 0.0000000 1
[2,] NaN NaN NaN
[3,] 0.7777778 0.2222222 0
ff<-function(p){f<-0;f[1]<-p[1];for(j in 2:d) f[j]<-f[j-1]+p[j];f}
rvar<-function(y,p) { if (y < p[1]) u<-1; for (j in 2:d) if (y >= p[j-1]&y < p[j]) u<-j; u}
X<-1
T<-0
j<-1
i<-as.integer(X)
TC<-YG[j]/P2[i]
T[1]<-TC
while (T[j]<TM&j<ng) {F<-ff(P[i,]); X[j]<-rvar(Y[j],F); i<-as.integer(X[j]); j<-j+1; TT<-YG[j]/P2[i]; TC<-TT+TC; T[j]<-TC}
3 1 3 1 3 1 3 2
s<-as.integer(round(TM*1000))
x<-c(1:s)/1000
for(k in 1:s) {if (x[k]<T[1]) G[k]<-1 else for (l in 1:j) if (x[k]>=T[l] & x[k]<T[l+1]) G[k]<-X[l]}
plot(x,G,'s')
0.09261763 0.18047845 0.66002345 0.84220009 0.90747152 1.22968593 1.40589701 1.43397031 Inf