これは私の仕事です:
ピーターは 1 ドルを持ってカジノに行きます。p の確率でピーターは 1 ドルを獲得し、(1-p) の確率で 1 ドルを失います。このプロセスは、マルコフ連鎖として見ることができます。
ピーターが 0 ドルに達すると破産して家に帰り、なんとか 5 ドルに達すると満足して家に帰ります。
p= 30%, 40%, 50%, 60% & 70% のとき、ピーターが 5 ドルを持って家に帰る確率を求めてください。最初の 4 つの状態が一時的なクラス (1 ~ 4 ドル) であり、最後の 2 つの状態が 2 つの再発状態 (0 および 5 ドル) である確率ごとに行列を作成します。
それを解決するための私の計画
when_converged を使用して、個別の各行列がいつ収束するか (P^n = P^n+1) を見つけます。
次に、mpow でその n を使用して、1 ドルから 5 ドル、つまり状態 1 から 6 になる確率を確認します。
これは私のコードです:
mpow <- function(P, n) {
if (n == 0) {
return(diag(nrow(P)))
} else if (n == 1) {
return(P)
} else {
return(P %*% mpow(P, n - 1))
}
}
when_converged <- function(P, tol=0.00005) {
n = 1; diff = 1
while (diff > tol) {
A <- mpow(P, n)
B <- mpow(P, n+1)
diff <- max(abs(A - B))
n <- n + 1
}
return(n)
}
P30 <- matrix(c(0, 0.3, 0, 0, 0.7, 0, 0.7, 0, 0.3, 0, 0, 0, 0, 0.7, 0, 0.3, 0, 0, 0, 0, 0.7, 0, 0, 0.3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1), nrow = 6, ncol = 6, byrow = TRUE)
P40 <- matrix(c(0, 0.4, 0, 0, 0.6, 0, 0.6, 0, 0.4, 0, 0, 0, 0, 0.6, 0, 0.4, 0, 0, 0, 0, 0.6, 0, 0, 0.4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1), nrow = 6, ncol = 6, byrow = TRUE)
P50 <- matrix(c(0, 0.5, 0, 0, 0.5, 0, 0.5, 0, 0.5, 0, 0, 0, 0, 0.5, 0, 0.5, 0, 0, 0, 0, 0.5, 0, 0, 0.5, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1), nrow = 6, ncol = 6, byrow = TRUE)
P60 <- matrix(c(0, 0.6, 0, 0, 0.4, 0, 0.6, 0, 0.4, 0, 0, 0, 0, 0.6, 0, 0.4, 0, 0, 0, 0, 0.6, 0, 0, 0.4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1), nrow = 6, ncol = 6, byrow = TRUE)
P70 <- matrix(c(0, 0.7, 0, 0, 0.3, 0, 0.7, 0, 0.3, 0, 0, 0, 0, 0.7, 0, 0.3, 0, 0, 0, 0, 0.7, 0, 0, 0.3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1), nrow = 6, ncol = 6, byrow = TRUE)
when_converged(P30, 0.00005)
Rstudio から、P30 が 35 に収束することがわかりました。
when_converged(P40, 0.00005)
Rstudio から、P40 が 37 に収束していることがわかります。
when_converged(P50, 0.00005)
Rstudio から、P50 が 47 に収束していることがわかります。
when_converged(P60, 0.00005)
Rstudio から、P60 が 61 に収束することがわかりました。
when_converged(P70, 0.00005)
Rstudio から、P70 が 79 に収束していることがわかります。
mpow(P30, 35)
mpow(P40, 37)
mpow(P50, 47)
mpow(P60, 61)
mpow(P70, 79)
助けが必要なこと
Rstudio から得たのは、mpow(P60, 61) & mpow(P70, 79) の場合、mpow(P50, 47) & mpow(P40, 37) に比べて 5 ドルで家に帰る確率が低くなるということです。1ドルを獲得する確率が低い場合. これは間違っていると感じます。私が間違っていることはありますか?まったく別のコードではなく、私の方法を使用して解決してください。