1. Graficar los puntos (1,1),(2,4),(3,6)(4,8),(6,36),(7,49),(8,61),(9,81),(10,100) en un plano utilizando RStudio
part_A <- c(1:10)
part_B <- c(1, 4, 6, 8, 25, 36, 49, 61, 81, 100)
plot(part_A, part_B)
2. Ingresar la matriz A en Rstudio
\[\ A = \begin{pmatrix}\ 1 & \ 2 & \ 3 \\ \ 2 & \ 4 & \ 6 \\ \ 3 & \ 6 & \ 9 \\ \ 4 & \ 8 & \ 12 \end{pmatrix}\] 2. Resolución
A <- c(1:4, 2*(1:4), 3*(1:4))
matriz_A <- matrix(A, nrow = 4, ncol = 3)
matriz_A
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 2 4 6
## [3,] 3 6 9
## [4,] 4 8 12
3. Ingresar la matriz identidad de tamaño 3
\[\ I = \begin{pmatrix}\ 1 & \ 0 & \ 0\\ \ 0 & \ 1 & \ 0 \\ \ 0 & \ 0 & \ 1 \end{pmatrix}\]
matriz_I <- diag(3)
matriz_I
## [,1] [,2] [,3]
## [1,] 1 0 0
## [2,] 0 1 0
## [3,] 0 0 1
4. Crea una función que cree una matriz nula ingresando las dimensiones
Matriz_nula <- function(f,c){
matrix(0, nrow = f, ncol = c)
}
Matriz_nula(5,6)
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0 0 0 0 0 0
## [2,] 0 0 0 0 0 0
## [3,] 0 0 0 0 0 0
## [4,] 0 0 0 0 0 0
## [5,] 0 0 0 0 0 0
5. Modificar la matriz diag(4), para que se parezca a la matriz B
\[\ A = \begin{pmatrix}\ 0 & \ 0 & \ 0 & \ 0 \\ \ 0 & \ 2 & \ 0 & \ 0 \\ \ 0 & \ 0 & \ 3 & \ 0 \\ \ 0 & \ 0 & \ 0 & \ 4 \end{pmatrix}\] 5. Resolución
diag(4)
## [,1] [,2] [,3] [,4]
## [1,] 1 0 0 0
## [2,] 0 1 0 0
## [3,] 0 0 1 0
## [4,] 0 0 0 1
mod_A <- c(-1, 1, 2, 3)
mod_B <- diag(mod_A,nrow = 4)
modAB <- mod_B + diag(4)
modAB
## [,1] [,2] [,3] [,4]
## [1,] 0 0 0 0
## [2,] 0 2 0 0
## [3,] 0 0 3 0
## [4,] 0 0 0 4
6. Obtener la matriz transpuesta de A (ejercicio 2)
Transpuesta <- t(matriz_A)
Transpuesta
## [,1] [,2] [,3] [,4]
## [1,] 1 2 3 4
## [2,] 2 4 6 8
## [3,] 3 6 9 12
**7. Realizar las siguientes operaciones A + B, A - B, 3B y A*B** 7. Resolución
#matriz_A + modAB # Esta operacion no se puede realizar
8. Crea una función para calcular P^6 \[\ P = \begin{pmatrix}\ 1 & \ 2 & \ 3\\ \ -2 & \ 4 & \ -2 \\ \ 1 & \ 0 & \ 1 \end{pmatrix}\] 8. Resolución
matriz_p <- c(1, -2, 1, 2, 4, 0, 3, -2, 1)
matriz_p <- matrix(matriz_p, nrow = 3)
funcion <- function(potencia){
potencia^6
}
funcion(matriz_p)
## [,1] [,2] [,3]
## [1,] 1 64 729
## [2,] 64 4096 64
## [3,] 1 0 1
9. Resolver el sistema de ecuaciones
3x - y + z = -1
9x - 2y + z = -9
3x + y - 2Z = -9
A <- c(3, 9, 3, -1, -2, 1, 1, 1, -2)
B <- c(-1, -9, -9)
matr_A <- matrix(A, nrow = 3)
matr_B <- matrix(B, ncol = 1)
inversa <- solve(matr_A) #inversa de la matriz
inversa %*% matr_B
## [,1]
## [1,] -1
## [2,] 2
## [3,] 4
10. Utilizando la ayuda de R, investigue para qué sirven las funciones eigen() y det()
eigen(cbind( 1, 3:1, 1:3)) #Determina los autovalores
## eigen() decomposition
## $values
## [1] 5.000000e+00 1.000000e+00 -4.440892e-16
##
## $vectors
## [,1] [,2] [,3]
## [1,] 0.5773503 -0.8451543 -0.9428090
## [2,] 0.5773503 -0.1690309 0.2357023
## [3,] 0.5773503 0.5070926 0.2357023
Z <- matrix(c(4,54,2,4,8,4,2,4,8),nrow = 3,ncol = 3) #Para los determinantes
det(Z)
## [1] -1104
11. Considerando las matrices
Calcular (A * B) - A * (B^t)
mat_B <- c(1:10, 2*(1:10), 3*(1:10), 4*(1:10), 5*(1:10))
matriz_B <- matrix(mat_B, nrow = 10)
mat_A <- c(0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0)
matriz_A <- matrix(mat_A, nrow = 5)
matriz_A %*% matriz_B
12. B = (((X^t) * (x))^-1) * (x^t)(y)
\[\ x = \begin{pmatrix}\ 1 & \ 1 \\ \ 1 & \ -1 \\ \ 1 & \ 0 \\ \ 1 & \ 1 \\ \ 1 & \ 2 \end{pmatrix}\] \[\ y = \begin{pmatrix}\ 0 \\ \ 0 \\ \ 1 \\ \ 1 \\ \ 3 \end{pmatrix}\]
X <- matrix(c(1,1,1,1,1,1,-1,0,1,2),nrow = 5, ncol = 2)
Y <- matrix(c(0,0,1,1,3),nrow = 5, ncol = 1)
Beta <- ((t(X)%*%X)^(-1))%*%t(X)%*%Y
Beta
13. Corre el siguiente código para cargar los vectores year y co2 en memoria
data(co2)
means = aggregate(co2, FUN=mean)
year = as.vector(time(means))
co2 = as.vector(means)
El vector co2 contiene medidas de Co2 en la atmósfera, en unidades de ppm, durante el periodo 1959-1997. El vector year contiene sus años correspondientes.
Co2 en 1960 menos el Co2 de 1959
Co2 en 1961 menos el Co2 de 1960
Crear un plot con lineas y puntos mostrando las diferencias consecutivas de Co2 en función del tiempo (1960, 1961, etc…), en negrita
La diferencia de concentración de Co2 entre 2020 y 2019 fue igual a 2.64. Agregar un punto rojo representando esa diferencia al plot ya creado (usar una forma diferente, como pch=4)
Resolucion de los ejercicios
13a. Resolución
library(dplyr)
data(co2)
means = aggregate(co2, FUN=mean)
year = as.vector(time(means))
co2 = as.vector(means)
datos <- data.frame(anio = year, nivel =round(co2,1))
datos <- datos %>%
dplyr::mutate(rest = c(nivel[2:39], 0)) %>%
dplyr::mutate(difer = rest - nivel)
13b. Resolución
result <- datos[1:38, 4]
plot(year[2:39], result, xlab = "años", ylab = "valores de concentración",
main = "Concentración de Co2 por años", type = "o", pch = (16), col = "black")
14
Lee el archivo rainfall.csv como un data.frame
Calcula e imprime un vector con los nombres de las estaciones donde al menos uno de los meses tiene una precipitación superior a 180mm.
Resolución de los ejercicios
14a. Resolución
df01 <- read.csv("https://raw.githubusercontent.com/ryali93/ProgramacionR/master/data/rainfall.csv")
df02 <- data.frame(df01)
is.data.frame(df02)
## [1] TRUE
14b. Resolución
library(dplyr)
df01 <- read.csv("https://raw.githubusercontent.com/ryali93/ProgramacionR/master/data/rainfall.csv")
df02 <- dplyr::tibble(df01)
df02 <- df02 %>%
dplyr::select(name, everything()) %>%
dplyr::filter(sep >=180|
oct >=180|
nov >=180|
dec >=180|
jan >=180|
feb >=180|
mar >=180|
apr >=180|
may >=180) %>%
dplyr::select(name)
df02
## # A tibble: 7 x 1
## name
## <chr>
## 1 Golan Farm
## 2 Eilon
## 3 Fasutta
## 4 Yehiam
## 5 Kfar Mahol
## 6 Meron
## 7 Horashim