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
# 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
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
hist(caudales,
breaks = 50,
main = "Histograma del caudal mĂ¡ximo diario simulado",
xlab = "Caudal (m³/s)",
col = "skyblue",
border = "black")
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.
lambda <- 30
n_minutos <- 10000
solicitudes <- rpois(n_minutos, lambda)
head(solicitudes)
## [1] 35 26 35 26 37 32
prob_mas_40 <- mean(solicitudes > 40)
prob_mas_40
## [1] 0.0308
prob_sobrecarga <- mean(solicitudes > 35)
prob_sobrecarga
## [1] 0.1564
se podria provar intentando mejorar la optimizaciĂ³n del programa o distribuir las solicitudes entre mĂºltiples servidores para evitar saturar uno solo.
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
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)
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
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
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
# 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")
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()