Considerando la transformación lineal \[ f:V\to W \] un escalar \[\lambda\] es un valor propio de la transformación lineal si existe un vector distinto de cero tal que: \[ f(\overline v) = \lambda \overline v \] A este vector lo llamamos autovector asociado a la transformación f, asociado a un autovalor \[ \lambda \]
Si consideramos A como la matriz de transformación de f, podemos deducir al autovalor y autovector como: \[ A \overline{v}^{\,t} = \lambda \overline{v}^{\,t} \;\;\;\Rightarrow\;\;\; A \overline{v}^{\,t} - \lambda \overline{v}^{\,t} = (A - \lambda I_n)\,\overline{v}^{\,t} = \overline{0} \] Lo cual presentará una solución no trivial solo si: \[ |A- \lambda I_n|=0 \] ## Ejemplo
¿Cuales son los autovectores y autovalores de la transformación lineal siguiente?
\[ f: R^3\to R^3 f(x, y z)=(x+y, x+z, y+z) \]
Dicha transformación cuenta con la matriz asociada:
A <- matrix(c(1,1,0,1,0,1,0,1,1), byrow= T, ncol = 3)
A
## [,1] [,2] [,3]
## [1,] 1 1 0
## [2,] 1 0 1
## [3,] 0 1 1
Tal que cualquier vector de 3 dimensiones que tome, me otorgue otro donde sus elementos respondan a las reglas mencionadas anteriormente. Por ejemplo:
v <- c(2, 5, 8)
A %*% v
## [,1]
## [1,] 7
## [2,] 10
## [3,] 13
c(v[1]+v[2], v[1]+v[3], v[2]+v[3])
## [1] 7 10 13
A través de R se pueden calcular los autovalores y autovectores por
medio de la función eigen
auto <- eigen(A)
auto
## eigen() decomposition
## $values
## [1] 2 1 -1
##
## $vectors
## [,1] [,2] [,3]
## [1,] 0.5773503 -7.071068e-01 -0.4082483
## [2,] 0.5773503 -4.710277e-16 0.8164966
## [3,] 0.5773503 7.071068e-01 -0.4082483
Y podemos comprobar que la raiz cuadrada de la suma de sus cuadrados (norma euclídea) es igual a 1, tal que
apply(auto$vectors, 2, function(v) sqrt(sum(v^2)))
## [1] 1 1 1
Los autovalores y autovectores podemos utilizarlos para estimar la matriz diagonal equivalente a una matriz original, tal que: \[ A = P*D*P^{-1} \]
D = diag(auto$values)
D
## [,1] [,2] [,3]
## [1,] 2 0 0
## [2,] 0 1 0
## [3,] 0 0 -1
P = cbind(auto$vectors)
P
## [,1] [,2] [,3]
## [1,] 0.5773503 -7.071068e-01 -0.4082483
## [2,] 0.5773503 -4.710277e-16 0.8164966
## [3,] 0.5773503 7.071068e-01 -0.4082483
P %*% D %*% solve(P)
## [,1] [,2] [,3]
## [1,] 1.000000e+00 1.000000e+00 -2.775558e-17
## [2,] 1.000000e+00 7.771561e-16 1.000000e+00
## [3,] 3.608225e-16 1.000000e+00 1.000000e+00
round(P %*% D %*% solve(P),0)
## [,1] [,2] [,3]
## [1,] 1 1 0
## [2,] 1 0 1
## [3,] 0 1 1
A partir de esta, cualquier potencia de A será la potencia de D, matriz diagonal
\[
A^n = P * D^n * P^{-1}
\] Supongando un n=4
, multiplicar A como
multiplicación matricial 4 veces por si misma es igual a elevar la
diganoal principal de la matriz diagonal D
a la cuarta:
A %*% A %*% A %*% A
## [,1] [,2] [,3]
## [1,] 6 5 5
## [2,] 5 6 5
## [3,] 5 5 6
round( P %*% (D^4) %*% solve(P))
## [,1] [,2] [,3]
## [1,] 6 5 5
## [2,] 5 6 5
## [3,] 5 5 6
Dada la siguiente matriz, buscar sus autovalores y autovectores, diagonalizarla y encontrar su potencia cuarta:
\[ A = \begin{pmatrix} 1 & 1 & -1 \\ 2 & 2 & 1 \\ 2 & -1 & 4 \end{pmatrix} \]
A = matrix(c(1, 1, -1, 2, 2, 1, 2, -1, 4),
ncol = 3,
byrow = T)
A
## [,1] [,2] [,3]
## [1,] 1 1 -1
## [2,] 2 2 1
## [3,] 2 -1 4
Para estimar los autovalores y autovectores, usamos la función
eigen
:
auto <- eigen(A)
auto
## eigen() decomposition
## $values
## [1] 3 3 1
##
## $vectors
## [,1] [,2] [,3]
## [1,] 4.472136e-01 0.3943903 -0.5773503
## [2,] 4.915167e-16 0.9108053 0.5773503
## [3,] -8.944272e-01 0.1220248 0.5773503
#Autovalores
auto$values
## [1] 3 3 1
#Autovectores
auto$vectors
## [,1] [,2] [,3]
## [1,] 4.472136e-01 0.3943903 -0.5773503
## [2,] 4.915167e-16 0.9108053 0.5773503
## [3,] -8.944272e-01 0.1220248 0.5773503
Para construir la matriz diagonal, asignamos los autovalores a la diagonal principal, y construirmos una matriz de paso con los autovectores:
D <- diag(auto$values)
D
## [,1] [,2] [,3]
## [1,] 3 0 0
## [2,] 0 3 0
## [3,] 0 0 1
P <- cbind(auto$vectors)
P
## [,1] [,2] [,3]
## [1,] 4.472136e-01 0.3943903 -0.5773503
## [2,] 4.915167e-16 0.9108053 0.5773503
## [3,] -8.944272e-01 0.1220248 0.5773503
A_diagonal <- P %*% D %*% solve(P)
round(A_diagonal)
## [,1] [,2] [,3]
## [1,] 1 1 -1
## [2,] 2 2 1
## [3,] 2 -1 4
#para comprobar su igualdad restamos una de otra
round(A - A_diagonal)
## [,1] [,2] [,3]
## [1,] 0 0 0
## [2,] 0 0 0
## [3,] 0 0 0
Y por último comprobamos la potencia cuarta
A %*% A %*% A %*% A
## [,1] [,2] [,3]
## [1,] 1 40 -40
## [2,] 80 41 40
## [3,] 80 -40 121
P %*% (D^4) %*% solve(P)
## [,1] [,2] [,3]
## [1,] 1 40 -40
## [2,] 80 41 40
## [3,] 80 -40 121