У меня есть эта матрица:Петли для матриц умножения
V1 V2 V3 V4 V5 V6 V7 V8
[1,] 0.8399983 0.01558029 0.00000000 0.0000000 0.00000000 0.00000000 0.00000000 0
[2,] 0.0000000 0.89022017 0.02570281 0.0000000 0.00000000 0.00000000 0.00000000 0
[3,] 0.0000000 0.00000000 0.87910624 0.0242963 0.00000000 0.00000000 0.00000000 0
[4,] 0.0000000 0.00000000 0.00000000 0.0000000 0.03428571 0.00000000 0.00000000 0
[5,] 0.0000000 0.00000000 0.00000000 0.0000000 0.00000000 0.02988506 0.00000000 0
[6,] 0.0000000 0.00000000 0.00000000 0.0000000 0.00000000 0.73438228 0.01666667 0
[7,] 0.0000000 0.00000000 0.00000000 0.0000000 0.00000000 0.00000000 0.00000000 0
[8,] 0.0000000 0.00000000 0.00000000 0.0000000 0.00000000 0.00000000 0.00000000 0
И этот вектор:
[,1]
[1,] 908
[2,] 516
[3,] 269
[4,] 85
[5,] 32
[6,] 13
[7,] 2
[8,] 3
И я пытаюсь придумать цикл, который будет держать перемножение результатов (новые векторы) по той же матрице (это простой пример модели матриц совокупности). Мне нужны все результаты от 1-го умножения, до 100-го, поэтому я могу поместить их в график. Есть идеи?
> dput(mat)
structure(c(0.8399983, 0, 0, 0, 0, 0, 0, 0, 0.01558029, 0.89022017,
0, 0, 0, 0, 0, 0, 0, 0.02570281, 0.87910624, 0, 0, 0, 0, 0, 0,
0, 0.0242963, 0, 0, 0, 0, 0, 0, 0, 0, 0.03428571, 0, 0, 0, 0,
0, 0, 0, 0, 0.02988506, 0.73438228, 0, 0, 0, 0, 0, 0, 0, 0.01666667,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0), .Dim = c(8L, 8L), .Dimnames = list(
c("[1,]", "[2,]", "[3,]", "[4,]", "[5,]", "[6,]", "[7,]",
"[8,]"), c("V1", "V2", "V3", "V4", "V5", "V6", "V7", "V8"
)))
> dput(vec)
structure(c(908L, 516L, 269L, 85L, 32L, 13L, 2L, 3L), .Dim = c(8L,
1L), .Dimnames = list(c("[1,]", "[2,]", "[3,]", "[4,]", "[5,]",
"[6,]", "[7,]", "[8,]"), "X..1."))
не знали о 'expm', очень удобно –
это еще одна проблема: HTTP: // StackOverflow .com/questions/3274818/matrix-power-in-r –
@MatthewLundberg - № – mnel