Para llevar a cabo las operaciones básicas de matrices en r, se debe en primer lugar crear dos matrices, que llamaremos matrices A y B respectivamente.
Para crear la matriz A con valores aleatorios utilice el siguiente comando:
# creando un vector de números aleatorios
vecA <- sample(1:20, 20, replace = TRUE)
vecA
## [1] 16 17 6 14 14 2 13 8 14 9 18 13 8 5 13 19 12 5 2 4
# generando la matriz de A
A <- matrix(vecA, nrow = 4, ncol = 5, byrow = FALSE)
A
## [,1] [,2] [,3] [,4] [,5]
## [1,] 16 14 14 8 12
## [2,] 17 2 9 5 5
## [3,] 6 13 18 13 2
## [4,] 14 8 13 19 4
Ahora generamos una nueva matriz de variables aleatorias, que llamaremos B
# El vector de variables aleatorias B es:
vecB <- sample(1:20, 20, replace = TRUE)
vecB
## [1] 19 6 6 17 4 18 15 8 6 20 8 6 13 14 15 19 7 1 18 5
#Las variables se agrupan en un vector de iguales magnitudes
B<-matrix(vecB, nrow=4, ncol = 5, byrow=FALSE)
B
## [,1] [,2] [,3] [,4] [,5]
## [1,] 19 4 6 13 7
## [2,] 6 18 20 14 1
## [3,] 6 15 8 15 18
## [4,] 17 8 6 19 5
Trasnpuesta de una matriz
Para ejecutar la traspuesta de las matrices A y B; se utiliza los siguientes códigos:
#Llamamos al vector deseado, en ester caso A
A
## [,1] [,2] [,3] [,4] [,5]
## [1,] 16 14 14 8 12
## [2,] 17 2 9 5 5
## [3,] 6 13 18 13 2
## [4,] 14 8 13 19 4
# Posteriormente ejecutamos la trasmpuesta
trans_A<-t(A)
trans_A
## [,1] [,2] [,3] [,4]
## [1,] 16 17 6 14
## [2,] 14 2 13 8
## [3,] 14 9 18 13
## [4,] 8 5 13 19
## [5,] 12 5 2 4
Multiplicación por un escalar
Para multiplicar un vector por un escalar se utiliza los siguientes comandos
#La constante se define como "c"
c<-2
#Posteriormente se multiplica por un vector
cB<-c*B
cB
## [,1] [,2] [,3] [,4] [,5]
## [1,] 38 8 12 26 14
## [2,] 12 36 40 28 2
## [3,] 12 30 16 30 36
## [4,] 34 16 12 38 10
Suma de matrices
Para elaborar suma de matrices se utiliza el siguente comando
sum_AB<-A+B
sum_AB
## [,1] [,2] [,3] [,4] [,5]
## [1,] 35 18 20 21 19
## [2,] 23 20 29 19 6
## [3,] 12 28 26 28 20
## [4,] 31 16 19 38 9
Que es igual a
sum_BA<-B+A
sum_BA
## [,1] [,2] [,3] [,4] [,5]
## [1,] 35 18 20 21 19
## [2,] 23 20 29 19 6
## [3,] 12 28 26 28 20
## [4,] 31 16 19 38 9
Multiplicación de matrices
Para llevar a cabo una multiplicación de matrices se utiliza la siguiente linea de códigos
#¿porqué por la transpuesta?
mul_AB<-A%*%t(B)
mul_AB
## [,1] [,2] [,3] [,4]
## [1,] 632 752 754 680
## [2,] 485 393 369 479
## [3,] 457 814 606 571
## [4,] 651 758 665 761
Determinante de una matriz
Para determinar el determinanate de una matriz se utilizá el siguiente código
C<-matrix(ncol=3,c(2,4,3,5,7,1,2,2,3),byrow=TRUE)
det_C<-det(C)
det_C
## [1] -26
Inversa de una matriz
Utilizando como base la matriz C se calcula la inversa de la matriz como:
I=diag(1,nrow=3) # Matriz diagonal de dimension 3
I
## [,1] [,2] [,3]
## [1,] 1 0 0
## [2,] 0 1 0
## [3,] 0 0 1
solve(C,I) # Matriz inversa de A
## [,1] [,2] [,3]
## [1,] -0.7307692 0.2307692 0.6538462
## [2,] 0.5000000 0.0000000 -0.5000000
## [3,] 0.1538462 -0.1538462 0.2307692
Sistemas de ecuaciones
Si se quier resolver un sistema de ecuaciones se debe utilizar el siguiente plantamiento
sea 2X+3Y=4 Y 4x+2y=9
Entonces se plantea la tarea como:
Para las variables x,y
x<-matrix(c(2,4,3,2), 2,2)
x
## [,1] [,2]
## [1,] 2 3
## [2,] 4 2
Para las variables independientes
y<-matrix(c(4,9),2,1)
y
## [,1]
## [1,] 4
## [2,] 9
Resolviendo
r<-solve(t(x)%*%x)%*%t(x)%*%y
r
## [,1]
## [1,] 2.375
## [2,] -0.250