Introducción

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)

Punto 1.

Dada la información siguiente, resuelva:

\(X=[5,1,3] , Y=[-1,3,1]\)

  1. Graficar los dos vectores
#Vectores de entrada
x=c(5,1,3)
y=c(-1,3,1)

#Función para graficar los vectores
scatterplot3d(x,y)

  1. Encontrar a partir de los vectores datos: i) largo de x; ii) ángulo (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
  1. Desde \(\bar{x}=3\) y \(\bar{y}=1\), gráfique \([5 - 3,1-3,3-3]=[2,(-2),0]\) y \([(-1) - 1,3-1,1-1]=[(-2),2,0]\)
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)

Punto 2.

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)

Realizar las siguientes multiplicaciones

a) \(5A\)

5*A
##      [,1] [,2]
## [1,]   -5   15
## [2,]   20   10

b) \(BA\)

B%*%A
##      [,1] [,2]
## [1,]   -8  -18
## [2,]   -9   -1
## [3,]    2   -6

c) \(A^TB^T\)

t(A)%*%t(B)
##      [,1] [,2] [,3]
## [1,]   -8   -9    2
## [2,]  -18   -1   -6

d) \(C^TB\)

t(C)%*%B
##      [,1] [,2]
## [1,]  -28   -7

e) \(AB\) está definida?

try(A%*%B)
## Error in A %*% B : argumentos no compatibles
#No está definida por la dimensión de las matrices

Punto 3.

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)
  1. \((A^T)^T=A\)
t(t(A)) #Es la misma A
##      [,1] [,2]
## [1,]    2    1
## [2,]    1    3
  1. \((C^T)^-1=(C^-1)^T\)
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
  1. \((AB)^T=A^TB^T\)
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

Punto 4.

Cuando \(A^-1\) and \(B^-1\) existen, pruebe lo siguiente:

  1. \((A^T)^-1=(A^-1)^T\)
matrix.inverse(t(A))==t(matrix.inverse(A)) #Correcto, la validación es verdadera 
##      [,1] [,2]
## [1,] TRUE TRUE
## [2,] TRUE TRUE
  1. \((AB)^-1=B^-1A^-1\)
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

Punto 5.

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

Punto 6.

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.

Punto 7.

Dada la matriz del punto 6 definir:

  • Determinar los valores y vectores propios
  • Encontrar la inversa
  • Encontrar los valores y vectores propios de la matriz inversa
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\)

Punto 8.

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

Punto 10.

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.

Punto 11.

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

Punto 12.

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

Punto 13.

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.

Punto 14.

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

Punto 15.

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

Punto 16

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

Punto 17

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

Punto 18

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

Punto 19

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

Punto 20

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

Punto 21

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

Punto 22

¿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

Punto 23

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.

Punto 24

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

Punto 25

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 

Bibliografía

Stanley Grossman (2007). Algebra Lineal. McGraw Hill. 761 pp.