SOLUCIÓN EJERCICIO 1: Básico función matrix

mi_matriz<-matrix(data=c(1,2,3,4,
                         5,6,7,8,
                         9,10,11,12),nrow=3, byrow= TRUE)
print(mi_matriz)
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
mi_matriz2<-matrix(data=c(1,2,3,4,
                          5,6,7,8,
                          9,10,11,12),nrow=3, byrow= FALSE) |> print()
##      [,1] [,2] [,3] [,4]
## [1,]    1    4    7   10
## [2,]    2    5    8   11
## [3,]    3    6    9   12

practica02

mi_matriz5<-matrix(data=c(1,2,3,4,
                         5,6,7,8,
                         9,10,11,12),ncol= 2, byrow= FALSE) |> print()
##      [,1] [,2]
## [1,]    1    7
## [2,]    2    8
## [3,]    3    9
## [4,]    4   10
## [5,]    5   11
## [6,]    6   12
print(mi_matriz5) 
##      [,1] [,2]
## [1,]    1    7
## [2,]    2    8
## [3,]    3    9
## [4,]    4   10
## [5,]    5   11
## [6,]    6   12

Nota: Poner print ayuda a que muestre o ejecute lo que quiero el código. Al utilizar los comandos Ctrl + Alt+ R se ejecuta todos los chunks

mi_matriz6<-matrix(data=c(1,2,3,4,
                         5,6,7,8,
                         9,10,11,12),ncol= 3, byrow= FALSE) |> print()
##      [,1] [,2] [,3]
## [1,]    1    5    9
## [2,]    2    6   10
## [3,]    3    7   11
## [4,]    4    8   12

Operador PAY |> ctrl+ shif+ m para que se active esta función esta en la configuración tools-global options-code . pay |> hace que lo que esta a la izquierda lo pasa como argumento a la derecha

EJERCICIO 2 COMBINANDO VECTORES: rbind() y cbind()

ana <- c(10, 20, 30) 
beto <- c(15, 25, 35)
unir_filas<-rbind(ana,beto) |> print() #se crea el objeto unir filas y se muestra
##      [,1] [,2] [,3]
## ana    10   20   30
## beto   15   25   35
unir_columnas<-cbind(ana,beto) |> print()
##      ana beto
## [1,]  10   15
## [2,]  20   25
## [3,]  30   35
# rownames(unir_filas)

rownames(unir_filas)<-c("maria","jose")
colnames(unir_filas)<-c("examen 1", "examen 2", "examen 3")
unir_filas
##       examen 1 examen 2 examen 3
## maria       10       20       30
## jose        15       25       35

EJERCICIO 3: OPERACIONES ELEMENTALES

El comando sample nos permite generar numeros aleatorios y también extraer los mismos mediante la herramienta “size”.Asimimo, podemos fijarlos para extraer los mismos numeros siempre, al cual nombraremos “balon semilla”, con el comando set.seed, usado a menudo en examen

Crea un matriz de numeros aleatorios

set.seed(50)
(mi_matriz_aleatoria<-matrix(data= sample( x= 1:100, size= 9),nrow= 3, byrow= TRUE)) |> print()
##      [,1] [,2] [,3]
## [1,]   11   52   95
## [2,]   98   46   67
## [3,]    8   16   18
#crear una matriz traspuesta
#Sin guardar
mi_matriz_aleatoria |> t() #no se crea un objeto
##      [,1] [,2] [,3]
## [1,]   11   98    8
## [2,]   52   46   16
## [3,]   95   67   18
#Con guardado
transpuesta_mi_matriz_aleatoria<-t(mi_matriz_aleatoria) |> print() #se crea y se muestra el objeto
##      [,1] [,2] [,3]
## [1,]   11   98    8
## [2,]   52   46   16
## [3,]   95   67   18
#extrayendo el elemento 2,3
transpuesta_mi_matriz_aleatoria[2,3]
## [1] 16
#Multiplicar la matriz por un escalas( por ejempo 10)

10*transpuesta_mi_matriz_aleatoria |> print()
##      [,1] [,2] [,3]
## [1,]   11   98    8
## [2,]   52   46   16
## [3,]   95   67   18
##      [,1] [,2] [,3]
## [1,]  110  980   80
## [2,]  520  460  160
## [3,]  950  670  180

EJERCICIO 4 Matriz Identidad y Diagonales

matriz_identidad<-diag(x= 1, nrow=3, ncol=3) |> print()
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    1    0
## [3,]    0    0    1
#creando una matriz diagonal con los elementos en la diagonal principal

matriz_diagonal<-diag(x=c(5,10,15), nrow=3, ncol=3) |> print()
##      [,1] [,2] [,3]
## [1,]    5    0    0
## [2,]    0   10    0
## [3,]    0    0   15

SOLUCIÓN EJERCICIO 5 Inversion de matrices

#Ingreso o matriz 
M<-matrix(data =c(1,2,
                  3,4), nrow=2, byrow= TRUE) |> print()
##      [,1] [,2]
## [1,]    1    2
## [2,]    3    4
#Calculo de la inversa
M_inversa<-solve(M) |> print()
##      [,1] [,2]
## [1,] -2.0  1.0
## [2,]  1.5 -0.5
#Verificación 
M%*%M_inversa|> round(digits=0) |> print()
##      [,1] [,2]
## [1,]    1    0
## [2,]    0    1
M%*%M_inversa |> round(digits = 0) |> print()
##      [,1] [,2]
## [1,]    1    0
## [2,]    0    1
#matriz no invertible

(matriz_no_invirtible_1<-matrix(data=c(2,4,
                                      0,0),nrow=2, byrow=TRUE)) |> print()
##      [,1] [,2]
## [1,]    2    4
## [2,]    0    0
ifelse(det(matriz_no_invirtible_1!=0),
       solve(matriz_no_invirtible_1),"matriz singular")
## [1] "matriz singular"

SOLUCIÓN EJERCICIO 6 Rango de una matriz

#Crea una matriz de donde la tercera fila sea la suma de la primera y la segunda (esto la hace linealmente dependiente

#antes de seguir con el ultimo paso de calcular el rango, asegurarse de volver a correr el chunk crt+enter

library(matlib)
fila1<-c(2,3,5,6)
fila2<-c(0,8,1,-7)
fila3<-fila1+fila2
(matriz_para_rango<-matrix(data=c(fila1,
                                  fila2,
                                  fila3),nrow=3, byrow=TRUE)) |> print()
##      [,1] [,2] [,3] [,4]
## [1,]    2    3    5    6
## [2,]    0    8    1   -7
## [3,]    2   11    6   -1
rango<-matlib::R(X= matriz_para_rango) |> print()
## [1] 2
library(QR)

SOLUCIÓN EJERCICIO 7 Autovalores y autovectores

#creando la matriz simetrica 
s<-matrix(data=c(2,1,
                 1,2),nrow=2,byrow = TRUE) |> print()
##      [,1] [,2]
## [1,]    2    1
## [2,]    1    2
#calcular los autovalores y tambien los autovectores
resultado<-eigen(s)
#autovalores
resultado$values
## [1] 3 1
#verificar los autovalores 
#el determinante menos la matriz identidad deberia de dar cero---concepto de autovalores

det(s-resultado$values[1]*diag(x=1,2))==0 #para verificar igualdad,igual,igual
## [1] TRUE
#verificando el segundo autovalor 
det(s-resultado$values[2]*diag(x=1,2))
## [1] 0

SOLUCIÓN EJERCICIO 8 Sistemas de ecuaciones lineales

A<-matrix(data=c(2,3,1,
               1,-2,4,
               3,1,-1), nrow = 3, byrow= TRUE) |> print()
##      [,1] [,2] [,3]
## [1,]    2    3    1
## [2,]    1   -2    4
## [3,]    3    1   -1
B<-matrix(data=c(1,-3,4),ncol=1, byrow = TRUE) |> print()
##      [,1]
## [1,]    1
## [2,]   -3
## [3,]    4
#matriz aumentada s
s<-cbind(A,B) |> print()
##      [,1] [,2] [,3] [,4]
## [1,]    2    3    1    1
## [2,]    1   -2    4   -3
## [3,]    3    1   -1    4
#teorema de roche frobenius
matlib::R(s)==matlib::R(A)
## [1] TRUE
#resolver el sistema 
solucion<-solve(A,B) |> print()
##      [,1]
## [1,]    1
## [2,]    0
## [3,]   -1
#verificación
A%*%solucion-B   #nos da un vector de ceros 
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0

EJERCICIO 9: ELIMINACIÓN GAUSIANA

Nota: No es necesario volver a escribir libreria, si ya la hemos usado en operaciones anteriores

library(matlib)
matlib::gaussianElimination(A,B,verbose = TRUE) # SI le quito el verbose me da solo la solucion de la matriz escalonada, la ultima solución, si quiero ver toda la socución mejor dejar con verbose.
## 
## Initial matrix:
## Warning in printMatrix(A): Function is deprecated. See latexMatrix() and Eqn()
## for more recent approaches
##      [,1] [,2] [,3] [,4]
## [1,]    2    3    1    1
## [2,]    1   -2    4   -3
## [3,]    3    1   -1    4
## 
## row: 1 
## 
##  exchange rows 1 and 3
## Warning in printMatrix(A): Function is deprecated. See latexMatrix() and Eqn()
## for more recent approaches
##      [,1] [,2] [,3] [,4]
## [1,]    3    1   -1    4
## [2,]    1   -2    4   -3
## [3,]    2    3    1    1
## 
##  multiply row 1 by 0.3333333
## Warning in printMatrix(A): Function is deprecated. See latexMatrix() and Eqn()
## for more recent approaches
##      [,1]       [,2]       [,3]      [,4]
## [1,]    1  0.3333333 -0.3333333  1.333333
## [2,]    1 -2.0000000  4.0000000 -3.000000
## [3,]    2  3.0000000  1.0000000  1.000000
## 
##  subtract row 1 from row 2
## Warning in printMatrix(A): Function is deprecated. See latexMatrix() and Eqn()
## for more recent approaches
##      [,1]       [,2]       [,3]      [,4]
## [1,]    1  0.3333333 -0.3333333  1.333333
## [2,]    0 -2.3333333  4.3333333 -4.333333
## [3,]    2  3.0000000  1.0000000  1.000000
## 
##  multiply row 1 by 2 and subtract from row 3
## Warning in printMatrix(A): Function is deprecated. See latexMatrix() and Eqn()
## for more recent approaches
##      [,1]       [,2]       [,3]      [,4]
## [1,]    1  0.3333333 -0.3333333  1.333333
## [2,]    0 -2.3333333  4.3333333 -4.333333
## [3,]    0  2.3333333  1.6666667 -1.666667
## 
## row: 2 
## 
##  multiply row 2 by -0.4285714
## Warning in printMatrix(A): Function is deprecated. See latexMatrix() and Eqn()
## for more recent approaches
##      [,1]      [,2]       [,3]      [,4]
## [1,]    1 0.3333333 -0.3333333  1.333333
## [2,]    0 1.0000000 -1.8571429  1.857143
## [3,]    0 2.3333333  1.6666667 -1.666667
## 
##  multiply row 2 by 0.3333333 and subtract from row 1
## Warning in printMatrix(A): Function is deprecated. See latexMatrix() and Eqn()
## for more recent approaches
##      [,1]     [,2]       [,3]       [,4]
## [1,]    1 0.000000  0.2857143  0.7142857
## [2,]    0 1.000000 -1.8571429  1.8571429
## [3,]    0 2.333333  1.6666667 -1.6666667
## 
##  multiply row 2 by 2.333333 and subtract from row 3
## Warning in printMatrix(A): Function is deprecated. See latexMatrix() and Eqn()
## for more recent approaches
##      [,1] [,2]       [,3]       [,4]
## [1,]    1    0  0.2857143  0.7142857
## [2,]    0    1 -1.8571429  1.8571429
## [3,]    0    0  6.0000000 -6.0000000
## 
## row: 3 
## 
##  multiply row 3 by 0.1666667
## Warning in printMatrix(A): Function is deprecated. See latexMatrix() and Eqn()
## for more recent approaches
##      [,1] [,2]       [,3]       [,4]
## [1,]    1    0  0.2857143  0.7142857
## [2,]    0    1 -1.8571429  1.8571429
## [3,]    0    0  1.0000000 -1.0000000
## 
##  multiply row 3 by 0.2857143 and subtract from row 1
## Warning in printMatrix(A): Function is deprecated. See latexMatrix() and Eqn()
## for more recent approaches
##      [,1] [,2]      [,3]      [,4]
## [1,]    1    0  0.000000  1.000000
## [2,]    0    1 -1.857143  1.857143
## [3,]    0    0  1.000000 -1.000000
## 
##  multiply row 3 by 1.857143 and add to row 2
## Warning in printMatrix(A): Function is deprecated. See latexMatrix() and Eqn()
## for more recent approaches
##      [,1] [,2] [,3] [,4]
## [1,]    1    0    0    1
## [2,]    0    1    0    0
## [3,]    0    0    1   -1