Autovalores y autovectores

Definiciones

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

Diagonalización de Matrices

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

Ejercicio 1.B

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