矩阵指数收敛

时间:2016-07-06 17:48:56

标签: r matrix

我有一个矩阵:

P <- 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)

任何人都可以帮我找到代码,找到P^n = P^n+1的n,精确到4位小数。

这里的代码是我如何尝试这个问题。虽然,我不太擅长编码所以最后一部分是不正确的。有什么东西我可以添加到它,所以它有效吗?或者还有另一种解决方法吗?如果是这样,请解释您编写的代码。

mpow <- function(P, n) {
if (n == 0) {
return(diag(nrow(P)))} 
else if (n == 1){ 
return(P)
} else {
return(P %*% mpow(P, n - 1))
}
}

matrices_equal <- function(A, B, d = 4) { 
A_new <- trunc(A * 10^d) 
B_new <-trunc(B * 10^d) 
if (all(A_new == B_new)) { 
return(TRUE) } 
else { 
return(FALSE) } }

when_converged <- function(P) 
for (n in 1:50) {{
A <- mpow(P, n)
B <- mpow(P, n+1)
} 
{ if matrices_equal(A, B, 4)
return(n)
}}

谢谢。

0 个答案:

没有答案