A continuación se presentan una serie de ejercicios que permitiran interiorizar el manejo de R y su aplicación en operaciones algebraicas. El documento contiene la solución de 25 ejercicios que hacen énfasis en el manejo de Algebra Lineal con R y hacen parte del contenido académico desarrollado por el profesor Aquiles Enrique Darghan Contreras.
Previo a la solución de los ejercicios es necesario instalar y cargar las siguientes librerías.
library(scatterplot3d)
library(matrixcalc)
require(MASS)
Dada la información siguiente, resuelva:
\(X=[5,1,3] , Y=[-1,3,1]\)
#Vectores de entrada
x=c(5,1,3)
y=c(-1,3,1)
#Función para graficar los vectores
scatterplot3d(x,y)
#Cálculo del largo de x: Recordar el teorema de Pitagoras
lgx=sqrt(5^2+1^2+3^2)
lgy=sqrt((-1)^2+3^2+1^2)
#Cálculo del ángulo entre dos vectors a partir del producto punto
# 1) Cálculo de la transpuesta de los vectores
xt=t(c(5,1,3))
yt=t(c(-1,3,1))
# 2) Cálculo del producto punto
pp=xt%*%y;
# 3) Cálculo del ángulo
cosfi=pp/(lgx*lgy)
fi=acos(cosfi);fi
## [,1]
## [1,] 1.51981
xbarra <- t(c(3,3,3))
ybarra <- t(c(1,1,1))
v1 <- x-xbarra
v2 <- y-ybarra
v1x <- c(2,-2)
v2y <- c(-2,2)
v3z <- c(0,0)
scatterplot3d(v1x, v2y, v3z)
Dada las siguiente matrices
\[A=\begin{bmatrix}-1 & 3\\ 4 & 2\end{bmatrix}, B=\begin{bmatrix}4 & -3 \\ 1 & -2 \\ -2 & 0\end{bmatrix}, C=\begin{bmatrix}5 \\ -4 \\ 2\end{bmatrix}\]
A = matrix(c(-1,3,4,2), ncol=2, byrow=TRUE)
B = matrix(c(-4,-3,1,-2,-2,0), ncol=2, byrow=TRUE)
C = matrix(c(5,-4,2),ncol=1,byrow = TRUE)
5*A
## [,1] [,2]
## [1,] -5 15
## [2,] 20 10
B%*%A
## [,1] [,2]
## [1,] -8 -18
## [2,] -9 -1
## [3,] 2 -6
t(A)%*%t(B)
## [,1] [,2] [,3]
## [1,] -8 -9 2
## [2,] -18 -1 -6
t(C)%*%B
## [,1] [,2]
## [1,] -28 -7
try(A%*%B)
## Error in A %*% B : argumentos no compatibles
#No está definida por la dimensión de las matrices
Verifique las siguientes propiedades de la matriz transpuesta cuando:
\[A=\begin{bmatrix}2 & 1\\ 1 & 3\end{bmatrix}, B=\begin{bmatrix}1 & 4 & 2\\ 5 & 0 & 3\end{bmatrix}, C=\begin{bmatrix}1 & 4\\ 3 & 2\end{bmatrix}\]
A = matrix(c(2,1,1,3), ncol=2, byrow=TRUE)
B = matrix(c(1,4,2,5,0,3), ncol=3, byrow=TRUE)
C = matrix(c(1,4,3,2), ncol=2, byrow=TRUE)
t(t(A)) #Es la misma A
## [,1] [,2]
## [1,] 2 1
## [2,] 1 3
D=matrix.inverse(t(C));D
## [,1] [,2]
## [1,] -0.2 0.3
## [2,] 0.4 -0.1
E=t(matrix.inverse(C));E
## [,1] [,2]
## [1,] -0.2 0.3
## [2,] 0.4 -0.1
# Son de igual resultado, sin envargo al aplicar el validador lógico de R aparece que son diferentes
D==E
## [,1] [,2]
## [1,] FALSE TRUE
## [2,] FALSE FALSE
D=t(A%*%B)
E=t(B)%*%t(A)
D==E # El restultado es que son iguales
## [,1] [,2]
## [1,] TRUE TRUE
## [2,] TRUE TRUE
## [3,] TRUE TRUE
Cuando \(A^-1\) and \(B^-1\) existen, pruebe lo siguiente:
matrix.inverse(t(A))==t(matrix.inverse(A)) #Correcto, la validación es verdadera
## [,1] [,2]
## [1,] TRUE TRUE
## [2,] TRUE TRUE
try(matrix.inverse(A%*%B)==(matrix.inverse(B))%*%(matrix.inverse(A))) # La matrix B no es cuadrada
## Error in matrix.inverse(A %*% B) : argument x is not a square matrix
Verifique que:
\[Q=\begin{bmatrix}\frac{5}{13} & \frac{12}{13}\\ -\frac{12}{13} & \frac{5}{13}\end{bmatrix}\]
Es una matriz ortogonal
Q=matrix(c(5/13,12/13,-(12/13),5/13),nrow = 2, byrow = TRUE)
#Para probar se multiplica por la transpuesta
Q%*%t(Q)
## [,1] [,2]
## [1,] 1 0
## [2,] 0 1
#Como el resultado es la idéntica se define que es ortogonal
Dada la matriz \(A\):
\[\begin{bmatrix} 9 & -2\\ 2 & 6 \end{bmatrix}\]Indicar si: * Simétrica * Definida Positiva
A<-matrix(c(9,-2,-2,6), ncol=2, byrow=TRUE)
### SIMETRIA
A == t(A)
## [,1] [,2]
## [1,] TRUE TRUE
## [2,] TRUE TRUE
Es simétrica debido a que la matriz es igual a su transpuesta.
Para indicar si es positiva se definen los vectores \(g\), \(m\) y \(n\) los cuales corresponden a tres combinaciones del vector:
\[\begin{bmatrix} 8\\ 5 \end{bmatrix}\]Para realizar la multiplicación de su trasnpuesto con la matriz \(A\) con el vector, como se observa a continuación:
### MATRIZ POSITIVA
g<-c(-8,-5)
m<-c(8,-5)
n<-c(-8,5)
t(g)%*%A%*%g
## [,1]
## [1,] 566
t(m)%*%A%*%m
## [,1]
## [1,] 886
t(n)%*%A%*%n
## [,1]
## [1,] 886
Se observa que con los tres vectores, el resultado es un valor positivo y se puede asumir que la matriz es positiva.
Dada la matriz del punto 6 definir:
eigen(A)
## eigen() decomposition
## $values
## [1] 10 5
##
## $vectors
## [,1] [,2]
## [1,] -0.8944272 -0.4472136
## [2,] 0.4472136 -0.8944272
Con la función eigen se obtiene los valores y vectores propios de la matriz \(A\)
solve(A)
## [,1] [,2]
## [1,] 0.12 0.04
## [2,] 0.04 0.18
Con la función solve se obtiene la matriz inversa de \(A\)
eigen(solve(A))
## eigen() decomposition
## $values
## [1] 0.2 0.1
##
## $vectors
## [,1] [,2]
## [1,] 0.4472136 -0.8944272
## [2,] 0.8944272 0.4472136
Con la función eigen y solve se obtiene los valores y vectores propios de la matriz inversa de \(A\)
Dada la matriz \(A\):
\[\begin{bmatrix} 1 & 2\\ 2 & -2 \end{bmatrix}\]Encontrar: * Matriz Inversa * Valores y vectores propios de la matriz inversa
A<-matrix(c(1,2,2,-2), ncol=2, byrow=TRUE)
solve(A)
## [,1] [,2]
## [1,] 0.3333333 0.3333333
## [2,] 0.3333333 -0.1666667
eigen(solve(A))
## eigen() decomposition
## $values
## [1] 0.5000000 -0.3333333
##
## $vectors
## [,1] [,2]
## [1,] -0.8944272 0.4472136
## [2,] -0.4472136 -0.8944272
Dada la matriz \(A\):
\[\begin{bmatrix} 4 & 4.001\\ 4.001 & 4.002 \end{bmatrix}\]Dada la matriz \(B\):
\[\begin{bmatrix} 4 & 4.001\\ 4.001 & 4.002001 \end{bmatrix}\]Se observa que en la posición \((2,2)\) poseen una diferencia significativamente pequeña, sin embargo las columnas de las dos columnas son muy cercanas a ser dependientes. Demuestre que \(A^{-1} = -3B^{-1}\) con el propósito de tener en cuenta que los resultados cambian en estas situaciones.
A<-matrix(c(4,4.001,4.001,4.002), ncol=2, byrow=TRUE)
B<-matrix(c(4,4.001,4.001,4.002001), ncol=2, byrow=TRUE)
solve(A) == -3*solve(B)
## [,1] [,2]
## [1,] FALSE FALSE
## [2,] FALSE FALSE
solve(A)
## [,1] [,2]
## [1,] -4002000 4001000
## [2,] 4001000 -4000000
-3*solve(B)
## [,1] [,2]
## [1,] -4002001 4001000
## [2,] 4001000 -4000000
Apesar de que el operador lógico indica que los valores no son iguales, al observar las dos matrices por separado, se ve que se puede considerar que son idénticas.
Demuestre que el determinante de la matriz diagonal \(p\) X \(p\) \(A= {a_{ij}}\) con \(a_{ij}= 0, i \neq j\) es dado por el producto de los elementos de la diagonal; entonces \(|A|=a_{11}a_{22}...a_{pp}\)
A<-matrix(c(5,0,0,0,0,1,0,0,0,0,3,0,0,0,4), ncol=4, byrow=TRUE)
## Warning in matrix(c(5, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 4), ncol
## = 4, : la longitud de los datos [15] no es un submúltiplo o múltiplo del
## número de filas [4] en la matriz
### Funcion para multiplicar elementos de un vector
product <- function(vec){
out <- 1
for(i in 1:length(vec)){
out <- out*vec[i]
}
out
}
det(A)
## [1] 75
diag(A)
## [1] 5 1 3 5
det(A) == product(diag(A))
## [1] FALSE
Demostrar que el determinante de una patriz \(A\) \(p\) X \(p\) simétrica puede ser expresada por el producto de sus valores propios \(\lambda_1,\lambda_2 ...,\lambda_p\); que es, \(|A|=\prod^p_{i=1}\lambda_i\)
A<-matrix(c(0,1,2,3,1,0,4,5,2,4,0,6,3,5,6,0), ncol=4, byrow=TRUE)
d<-eigen(A)
det(A) == product(d$values)
## [1] FALSE
Indicar si \(3x_1^{2} + 3x_2^{2} - 2x_1x_2\) es una forma cuadrática.
Como primera medida se construye la matriz \(A\):
A<-matrix(c(3,-1,-1,3), ncol=2, byrow=TRUE)
Se valida que el determinante de la matriz \(A\) sea igual a la multiplicación de sus valores propios:
d<-eigen(A)
det(A) == product(d$values)
## [1] FALSE
det(A)
## [1] 8
product(d$values)
## [1] 8
Se toma el mismo ejemplo del punto 6 para validar si es una forma cuadrática:
g<-c(-8,-5)
m<-c(8,-5)
n<-c(-8,5)
t(g)%*%A%*%g
## [,1]
## [1,] 187
t(m)%*%A%*%m
## [,1]
## [1,] 347
t(n)%*%A%*%n
## [,1]
## [1,] 347
El resultado indica que si se puede considerar cuadrática.
Dada la matriz \(A\):
\[\begin{bmatrix} 4 & 0 & 0\\ 0 & 9 & 0\\ 0 & 0 & 1 \end{bmatrix}\]Encontrar: * \(\sum^{-1}\) * Los valores propios de \(\sum\) * Los valores propios de \(\sum^{-1}\)
A=matrix(c(4,0,0,0,9,0,0,0,1), nrow = 3, byrow = TRUE)
matrix.inverse(A)
## [,1] [,2] [,3]
## [1,] 0.25 0.0000000 0
## [2,] 0.00 0.1111111 0
## [3,] 0.00 0.0000000 1
eigen(A)
## eigen() decomposition
## $values
## [1] 9 4 1
##
## $vectors
## [,1] [,2] [,3]
## [1,] 0 1 0
## [2,] 1 0 0
## [3,] 0 0 1
eigen(matrix.inverse(A))
## eigen() decomposition
## $values
## [1] 1.0000000 0.2500000 0.1111111
##
## $vectors
## [,1] [,2] [,3]
## [1,] 0 1 0
## [2,] 0 0 1
## [3,] 1 0 0
Dada la matriz \(\sum\):
\[\begin{bmatrix} 25 & -2 & 4\\ -2 & 4 & 1\\ 4 & 1 & 9 \end{bmatrix}\]Encontrar: * Las matrices \(\rho\) y \(V^{1/2}\) * Demuestre que \(V^{1/2} \rho V^{1/2} = \sum\)
## A
A<-matrix(c(25,-2,4,-2,4,1,4,1,9), ncol=3, byrow=TRUE)
desv<-diag(diag(A^0.5),3,3) ##Matriz Desviacion Estándar
desv
## [,1] [,2] [,3]
## [1,] 5 0 0
## [2,] 0 2 0
## [3,] 0 0 3
cor<-solve(desv)%*%A%*%solve(desv) ## Matriz de Correlacción
cor
## [,1] [,2] [,3]
## [1,] 1.0000000 -0.2000000 0.2666667
## [2,] -0.2000000 1.0000000 0.1666667
## [3,] 0.2666667 0.1666667 1.0000000
## B
desv%*%cor%*%desv
## [,1] [,2] [,3]
## [1,] 25 -2 4
## [2,] -2 4 1
## [3,] 4 1 9
Dadas las matrices:
\[A=\begin{bmatrix}1 & -2 & 3\\2 & 3 & -1\\-3 & 1 & 2\end{bmatrix},B=\begin{bmatrix}1 & 0 & 2\\0 & 1 & 2\\1 & 2 & 0\end{bmatrix}\]
Muestre que: * \(AB\neq BA\)
A <- matrix(c(1,2,-3,-2,3,1,3,-1,2), ncol= 3)
B <- matrix(c(1,0,1,0,1,2,2,2,0), ncol= 3)
AB <- A%*%B
BA <- B%*%A
AB == BA
## [,1] [,2] [,3]
## [1,] FALSE FALSE FALSE
## [2,] FALSE FALSE FALSE
## [3,] FALSE FALSE FALSE
# RESPUESTA: efectivamente los resultados cambian, la multiplicación de matrices no es conmutativa
Demuestre que la matriz \[A=\begin{bmatrix} 2 & -2 & -4\\ -1 & 3 & 4\\ 1 & -2 & -3 \end{bmatrix}\]
es idempotente.
# Una matriz es idempotente cuando es igual a su cuadrado, es decir A*A = A
A <- matrix(c(2,-1,1,-2,3,-2,-4,4,-3), ncol= 3)
AA <- A%*%A
A == AA
## [,1] [,2] [,3]
## [1,] TRUE TRUE TRUE
## [2,] TRUE TRUE TRUE
## [3,] TRUE TRUE TRUE
#RESPUESTA: Efectivamente la matriz A17 es idempotente
Demuestre que \[det\begin{bmatrix} 12 & 5 & -3 & 2\\ 8 & 6 & 4 & 6\\ 8 & 3 & -1 & -1\\ 12 & 4 & 2 & 4 \end{bmatrix}=616\]
A <- matrix(c(12,8,8,12,5,6,3,4,-3,4,-1,2,2,6,-1,4), ncol= 4)
Adet <- det(A)
Adet # 616
## [1] 616
# Efectivamente la respuesta es 616
Teniendo las matrices
\[A=\begin{bmatrix}1 & 2 & 1\\2 & 4 & 6\\3 & 1 & 2\end{bmatrix},B=\begin{bmatrix}-1 & 2 & -3\\ 2 & -1 & 4\\3 & 4 & 1\end{bmatrix}\]
Pruebe que: * \(|AB|= |A|*|B|\)
A <- matrix(c(1,2,3,2,4,1,1,6,2), ncol= 3)
B <- matrix(c(-1,2,3,2,-1,4,-3,4,1), ncol= 3)
AB <- A%*%B
ABdet <- det(AB)
ABdet #80
## [1] 80
Adet <- det(A)
Adet
## [1] 20
Bdet <- det(B)
Bdet
## [1] 4
Adet*Bdet#80
## [1] 80
#RESPUESTA: se cumple la relación y en ambos casos el resultado es 80
Teniendo la Matriz
\[A=\begin{bmatrix} -1 & 2 & -2\\ 4 & -3 & 4\\ 4 & -4 & 5 \end{bmatrix}\]
Demuestre que \(A=A^{-1}\)
A <- matrix(c(-1,4,4,2,-3,-4,-2,4,5), ncol= 3)
Ainv <- solve(A)
Ainv
## [,1] [,2] [,3]
## [1,] -1 2 -2
## [2,] 4 -3 4
## [3,] 4 -4 5
# En este caso se cumple con la igualdad
Teniendo la Matriz
\[A=\begin{bmatrix} 1 & -1 & 1\\ 2 & -1 & 0\\ 1 & 0 & 1 \end{bmatrix}\]
Demuestre que \(A^{2}=A^{-1}\)
A <- matrix(c(1,2,1,-1,-1,0,1,0,1), ncol= 3)
# Pruebe que A^2 = A^-1
AA <- A%*%A
Ainv <- solve(A)
Ainv
## [,1] [,2] [,3]
## [1,] -0.5 0.5 0.5
## [2,] -1.0 0.0 1.0
## [3,] 0.5 -0.5 0.5
AA == Ainv
## [,1] [,2] [,3]
## [1,] FALSE FALSE FALSE
## [2,] FALSE FALSE FALSE
## [3,] FALSE FALSE FALSE
# El cuadrado de una matriz no es equivalente a su inversa
¿La siguiente matriz tiene inversa?
\[A=\begin{bmatrix} 2 & 1 & 3 & 1\\ 1 & 2 & -1 & 4\\ 3 & 3 & 2 & 5\\ 1 & -1 & 4 & -3\\ \end{bmatrix}\]
A <- matrix(c(2,1,3,1,1,2,3,-1,3,-1,2,4,1,4,5,-3), ncol= 4)
#A22inv <- solve(A22)
# RESPUESTA, la matriz es singular, por lo que no es invertible
Avv <- eigen(A)
rA <- qr(A)
rA$rank
## [1] 2
# RESPUESTA, dado que la matriz cuadrada tiene dos valores propios diferentes a 0, entonces el rango
# de la matriz es de 2. Esto se comprueba con el comando qr() y el paquete matlib
Teniendo las matrices \[A=\begin{bmatrix}1 & 1 & -1\\2 & -3 & 4\\3 & -2 & 3\end{bmatrix},B=\begin{bmatrix}-1 & -1 & -1\\6 &12 & 6\\5 & 10 & 5\end{bmatrix}\]
Demuestre que \(r(AB)\neq r(BA)\) siendo r el Rango de la Matriz
A <- matrix(c(1,2,3,1,-3,-2,-1,4,3), ncol= 3)
B <- matrix(c(-1,6,5,-1,12,10,-1,6,5), ncol= 3)
AB <- A%*%B
rAB <- qr(AB)
rAB$rank # Rango 1
## [1] 1
BA <- B%*%A
rBA <- qr(BA)
rBA$rank # Rango 2
## [1] 2
# RESPUESTA: efectivamente, los rangos son diferentes, demostrando nuevamente que la multiplicación
# de matrices no es conmutativa.
Encuentre el rango de las siguientes matrices:
\[A=\begin{bmatrix}6 & 1 & 3 & 8\\4 & 2 & 6 & -1\\10 & 3 & 9 & 7\\16 & 4 & 12 & 15\end{bmatrix},B=\begin{bmatrix}1 & 2 & 3 & 4 & 5\\2 & 3 & 4 & 5 & 1\\5 & 8 & 11 & 14 & 7\end{bmatrix}\]
# Recuerda: EL rango de una matriz corresponde al número de filas o columnas linealmente independientes
A <- matrix(c(6,4,10,16,1,2,3,4,3,6,9,12,8,-1,7,15), ncol= 4)
rA <- qr(A)
rA$rank # Rango 2
## [1] 2
B <- matrix(c(1,2,5,2,3,8,3,4,11,4,5,14,5,1,7), ncol= 5)
rB <- qr(B)
rB$rank # Rango 2
## [1] 2
Pruebe que para la Matriz
\[A=\begin{bmatrix} 1 & 3 & 2\\ 2 & 6 & 4 \end{bmatrix}\]
dos inversas generalizadas son
\[G1=\begin{bmatrix}1 & 0\\0 & 0\\0 & 0\end{bmatrix},G2=\begin{bmatrix}-42 & -1\\5 & 3\\2 & 2\end{bmatrix}\]
A <- matrix(c(1,3,2,2,6,4), ncol=3, byrow=TRUE)
G1 <- matrix(c(1,0,0,0,0,0), ncol=2, byrow=TRUE)
G2 <- matrix(c(-42,-1,5,3,2,2), ncol=2, byrow=TRUE)
#Para saber si corresponden a inversas generalizadas, debe cumplirse la propiedad AA-A= A, siendo A- cualquiera de las matrices inversas propuestas.
A%*%G1%*%A == A
## [,1] [,2] [,3]
## [1,] TRUE TRUE TRUE
## [2,] TRUE TRUE TRUE
A%*%G2%*%A == A
## [,1] [,2] [,3]
## [1,] TRUE TRUE TRUE
## [2,] TRUE TRUE TRUE
#Dado que se cumple la propiedad, podemos afirmar que las matrices G251 y G252 son inversas generalizadas de A25
Stanley Grossman (2007). Algebra Lineal. McGraw Hill. 761 pp.