Problema 9:

a)

set.seed(123)

mu <- 500
beta <- 100
n_dias <- 3650

caudales <- rgumbel(n_dias, loc = mu, scale = beta)
head(caudales)
## [1] 517.0246 555.0589 471.5532 845.5315 787.8643 615.0428

b)

# Probabilidad diaria de superar 750 m³/s
prob_dia <- mean(caudales > 750)

# Probabilidad al menos un día en 10 años
prob_10_anos <- 1 - (1 - prob_dia)^n_dias

cat("Probabilidad de superaciĂ³n en 10 años:", round(prob_10_anos, 4))
## Probabilidad de superaciĂ³n en 10 años: 1

c)

F_x <- 0.99^(1/n_dias)

# Cuantil correspondiente
caudal_diseno <- qgumbel(F_x, loc = mu, scale = beta)

cat("El nuevo diseño debe resistir hasta", round(caudal_diseno, 2), "m³/s")
## El nuevo diseño debe resistir hasta 1780.26 m³/s

d)

hist(caudales,
     breaks = 50,
     main = "Histograma del caudal mĂ¡ximo diario simulado",
     xlab = "Caudal (m³/s)",
     col = "skyblue",
     border = "black")

e)

El ingeniero civil podria crear un puente que sea capaz de resistir caudales mayores a 750 m³/s, ya sea usando mejores materiales o desarrollando una mejor estructura para el puente.

Problema 6:

a)

lambda <- 30
n_minutos <- 10000
solicitudes <- rpois(n_minutos, lambda)
head(solicitudes)
## [1] 35 26 35 26 37 32

b)

prob_mas_40 <- mean(solicitudes > 40)
prob_mas_40
## [1] 0.0308

c)

prob_sobrecarga <- mean(solicitudes > 35)
prob_sobrecarga
## [1] 0.1564

d)

se podria provar intentando mejorar la optimizaciĂ³n del programa o distribuir las solicitudes entre mĂºltiples servidores para evitar saturar uno solo.

e)

hist(solicitudes,
     breaks = 30,
     col = "skyblue",
     main = "DistribuciĂ³n de Solicitudes por Minuto",
     xlab = "Solicitudes por minuto")

# Medidas de dispersiĂ³n
media <- mean(solicitudes)
desviacion <- sd(solicitudes)
c(media = media, desviacion_estandar = desviacion)
##               media desviacion_estandar 
##           29.962700            5.476542

Problema 3:

a)

set.seed(123)
n_sim <- 1000

# Simular tiempos de vida de los componentes
R1 <- rlnorm(n_sim, meanlog = 2, sdlog = 1)
R2 <- rlnorm(n_sim, meanlog = 1, sdlog = 0.1)
R3 <- rlnorm(n_sim, meanlog = 2, sdlog = 1)
R4 <- rlnorm(n_sim, meanlog = 1, sdlog = 0.1)

b)

system1 <- pmin(R1, R2)
system2 <- pmin(R3, R4)
system3 <- pmin(system1, system2) # Funciona si ambos subsistemas A y B funcionan

mean_system1 <- mean(system1)
mean_system2 <- mean(system2)
mean_system3 <- mean(system3)

cat("Media del tiempo de vida del sistema 1:", mean_system1, "\n")
## Media del tiempo de vida del sistema 1: 2.58863
cat("Media del tiempo de vida del sistema 2:", mean_system2, "\n")
## Media del tiempo de vida del sistema 2: 2.580789
cat("Media del tiempo de vida del sistema 3:", mean_system3, "\n")
## Media del tiempo de vida del sistema 3: 2.333685

c)

prob_fail_2_months <- mean(system3 < 60) # 60 dĂ­as
cat("Probabilidad de fallar antes de los 2 meses: ", prob_fail_2_months)
## Probabilidad de fallar antes de los 2 meses:  1

d)

percentile_20 <- quantile(system1, 0.2)
cat("Percentil 20 de los tiempos de vida del primer sistema: ", percentile_20)
## Percentil 20 de los tiempos de vida del primer sistema:  2.372783

e y f)

# VisualizaciĂ³n de datos
ggplot(data.frame(system3), aes(x = system3)) + 
  geom_histogram(bins = 30, fill = "blue", alpha = 0.7) + 
  labs(title = "Histograma de tiempos de vida del sistema 3", x = "Tiempo de vida", y = "Frecuencia")

qqnorm(system3)
qqline(system3, col = "red")

Problema 4:

set.seed(123)

n_sim <- 1000

# Generar coordenadas x e y en el intervalo (0,1)
x <- runif(n_sim, min = 0, max = 1)
y <- runif(n_sim, min = 0, max = 1)

# Evaluar quĂ© puntos estĂ¡n dentro del cĂ­rculo
dentro_circulo <- (x - 0.5)^2 + (y - 0.5)^2 < 0.25

# Contar cuĂ¡ntos puntos estĂ¡n dentro del cĂ­rculo
num_dentro <- sum(dentro_circulo)

# Estimar el valor de π
pi_estimado <- 4 * (num_dentro / n_sim)

cat("Puntos dentro del cĂ­rculo:", num_dentro, "\n")
## Puntos dentro del cĂ­rculo: 800
cat("EstimaciĂ³n de Ï€:", pi_estimado, "\n")
## EstimaciĂ³n de Ï€: 3.2
df <- data.frame(x, y, dentro_circulo)
ggplot(df, aes(x = x, y = y, color = dentro_circulo)) +
  geom_point(size = 2, alpha = 0.7) +
  scale_color_manual(values = c("red", "blue")) +
  labs(title = "SimulaciĂ³n Monte Carlo para estimar Ï€",
       x = "X",
       y = "Y") +
  theme_minimal()