Se utiliza la matriz de transición del ejemplo del estudiante. El espacio de estados es \(S = \{E,\, P,\, D\}\) donde \(E\) = estudia, \(P\) = procrastina, \(D\) = duerme.
| E | P | D | |
|---|---|---|---|
| E | 0.65 | 0.25 | 0.1 |
| P | 0.35 | 0.45 | 0.2 |
| D | 0.25 | 0.15 | 0.6 |
Modelo SIR simplificado con estados \(S = \{\text{Sano},\, \text{Contagiado},\, \text{Recuperado}\}\). El estado Recuperado es absorbente (\(P_{RR} = 1\)).
| S | C | R | |
|---|---|---|---|
| S | 0.75 | 0.25 | 0.0 |
| C | 0.00 | 0.40 | 0.6 |
| R | 0.00 | 0.00 | 1.0 |
Se implementan cuatro métodos para calcular la matriz de transición en \(n\) pasos:
# 1. Multiplicación secuencial
pow_seq <- function(P, n) {
res <- P
if (n == 1) return(res)
for (i in 2:n) res <- res %*% P
return(res)
}
# 2. Recursión (Chapman-Kolmogorov): P^(n+1) = P^(n) * P
pow_rec <- function(P, n) {
res <- P
if (n == 1) return(res)
for (i in 2:n) res <- res %*% P
return(res)
}
# 3. Exponenciación rápida
pow_fast <- function(P, n) {
res <- diag(nrow(P))
base <- P
while (n > 0) {
if (n %% 2 == 1) res <- res %*% base
base <- base %*% base
n <- n %/% 2
}
return(res)
}
# 4. Diagonalización
pow_diag <- function(P, n) {
eig <- eigen(P)
V <- eig$vectors
V_inv <- solve(V)
D_n <- diag((eig$values)^n)
res <- V %*% D_n %*% V_inv
return(Re(res))
}
| E | P | D | |
|---|---|---|---|
| E | 0.493 | 0.2905 | 0.2165 |
| P | 0.456 | 0.2895 | 0.2545 |
| D | 0.418 | 0.2525 | 0.3295 |
| E | P | D | |
|---|---|---|---|
| E | 0.4635 | 0.2806 | 0.2559 |
| P | 0.4634 | 0.2805 | 0.2561 |
| D | 0.4632 | 0.2804 | 0.2564 |
## P(3)_{PE} = 0.456 -> 45.6 %
Si hoy el estudiante procrastina, la probabilidad de que en 3 días esté estudiando es 45.6 %.
| S | C | R | |
|---|---|---|---|
| S | 0.4219 | 0.2556 | 0.3225 |
| C | 0.0000 | 0.0640 | 0.9360 |
| R | 0.0000 | 0.0000 | 1.0000 |
| S | C | R | |
|---|---|---|---|
| S | 0.0563 | 0.0401 | 0.9035 |
| C | 0.0000 | 0.0001 | 0.9999 |
| R | 0.0000 | 0.0000 | 1.0000 |
## P(3)_{CR} = 0.936 -> 93.6 %
Si una persona inicia contagiada, la probabilidad de estar recuperada en 3 días es 93.6 %.
La gráfica en escala logarítmica muestra que la multiplicación directa y la recursión Chapman-Kolmogorov tienen complejidad lineal en \(n\), mientras que la exponenciación rápida y la diagonalización mantienen tiempos constantes y bajos.
| Metodo | Complejidad | Tiempo prom (us) | Error max abs | IQR (us) |
|---|---|---|---|---|
| Mult. directa | O(n*k^3) | 386.48 | 1.11e-15 | 34.99 |
| Recursion CK | O(n*k^3) | 428.11 | 1.11e-15 | 33.21 |
| Exp. rapida | O(log n * k^3) | 11.10 | 0 (ref.) | 0.90 |
| Diagonalizacion | O(k^3) | 104.78 | 2.05e-13 | 7.32 |
| Metodo | Complejidad | Tiempo prom (us) | Error max abs | IQR (us) |
|---|---|---|---|---|
| Mult. directa | O(n*k^3) | 375.23 | 3.33e-16 | 5.84 |
| Recursion CK | O(n*k^3) | 375.86 | 3.33e-16 | 7.28 |
| Exp. rapida | O(log n * k^3) | 10.71 | 0 (ref.) | 0.53 |
| Diagonalizacion | O(k^3) | 91.28 | 1.11e-16 | 6.68 |
La distribución estacionaria satisface \(\pi P = \pi\) con \(\sum_j \pi_j = 1\). Se obtiene como el vector propio izquierdo asociado al valor propio 1.
## Distribucion estacionaria — Estudiante (E, P, D): 0.4634 0.2805 0.2561
## Distribucion estacionaria — Epidemia (S, C, R): 0 0 1
Para el Ejemplo 2, dado que Recuperado es absorbente, \(\pi = (0,\, 0,\, 1)\): en el largo plazo todos los individuos terminan recuperados.
El error tiende a cero rápidamente. Esto indica que, después de suficientes transiciones, la probabilidad de estar en cualquier estado converge a \(\pi\), independientemente del estado inicial.