#Problema 1
concentraciones <- function(x) {
H2 <- 0.5 - x
I2 <- 0.5 - x
HI <- 2 * x
return(list(H2 = H2, I2 = I2, HI = HI))
}
Kc <- 50.2
f_equilibrio <- function(x) {
HI <- 2 * x
H2 <- 0.5 - x
I2 <- 0.5 - x
Q <- (HI^2) / (H2 * I2)
return(Q - Kc)
}
concentraciones <- function(x) {
H2 <- 0.5 - x
I2 <- 0.5 - x
HI <- 2 * x
return(list(H2 = H2, I2 = I2, HI = HI))
}
Kc <- 50.2
f_equilibrio <- function(x) {
HI <- 2 * x
H2 <- 0.5 - x
I2 <- 0.5 - x
Q <- (HI^2) / (H2 * I2)
return(Q - Kc)
}
sol <- uniroot(f_equilibrio, c(0, 0.5))
x_equilibrio <- sol$root
conc_finales <- concentraciones(x_equilibrio)
print(conc_finales)
## $H2
## [1] 0.110071
##
## $I2
## [1] 0.110071
##
## $HI
## [1] 0.779858
#Problema 2
url <- "https://raw.githubusercontent.com/Jimena-Serrano24/QM215/refs/heads/main/JanafCO2.csv"
datos <- read.csv(url)
head(datos)
## T...........Cp.....S....ds...dH..delta_f.....G.
## 1 100; 29.208;179.009;243.568;-6.456;-393.208;-393.683;
## 2 200; 32.359;199.975;217.046;-3.414;-393.404;-394.085;
## 3 298.15;37.129;213.795;213.795; 0.; -393.522;-394.389;
## 4 300; 37.221;214.025;213.795; 0.069;-393.523;-394.394;
## 5 400; 41.325;225.314;215.307; 4.003;-393.583;-394.675;
## 6 500; 44.627;234.901;218.290; 8.305;-393.666;-394.939;
T <- c(100, 200, 298.15, 300, 400, 500, 600, 700, 800, 900, 1000,
1100, 1200, 1300, 1400, 1500)
Cp <- c(29.208, 32.359, 37.129, 37.221, 41.325, 44.627, 47.321, 49.564,
51.434, 52.999, 54.308, 55.409, 56.342, 57.137, 57.802, 58.379)
datos <- data.frame(T, Cp)
plot(datos$T, datos$Cp, type = "o", col = "blue",
xlab = "Temperatura ",
ylab = "Cp ",
main = "Cp vS T")
lines(smooth.spline(datos$T, datos$Cp), col = "red", lwd = 2)
#Problema 3
concentracion <- c(0.00, 0.02, 0.04, 0.06, 0.08, 0.10)
absorbancia <- c(0.00, 0.18, 0.38, 0.59, 0.81, 1.01)
modelo <- lm(absorbancia ~ concentracion)
summary(modelo)
##
## Call:
## lm(formula = absorbancia ~ concentracion)
##
## Residuals:
## 1 2 3 4 5 6
## 0.015714 -0.008571 -0.012857 -0.007143 0.008571 0.004286
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.015714 0.009073 -1.732 0.158
## concentracion 10.214286 0.149830 68.173 2.77e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01254 on 4 degrees of freedom
## Multiple R-squared: 0.9991, Adjusted R-squared: 0.9989
## F-statistic: 4647 on 1 and 4 DF, p-value: 2.774e-07
plot(concentracion, absorbancia, pch = 16,
xlab = "Concentración (mol/L)", ylab = "Absorbancia")
abline(modelo, col = "red")
nueva_abs <- data.frame(concentracion = 0.75)
concentracion_estimada <- (0.75 - coef(modelo)[1]) / coef(modelo)[2]
cat("Concentración estimada:", concentracion_estimada, "mol/L\n")
## Concentración estimada: 0.07496503 mol/L
#Problema 4
set.seed(123)
tiempo <- seq(0, 20, by = 1)
X0 <- 0.100
k_teorico <- 0.25
X_teorico <- X0 * exp(-k_teorico * tiempo)
ruido <- rnorm(length(tiempo), mean = 0, sd = 0.0025)
X_simulado <- X_teorico + ruido
lnX <- log(X_simulado)
## Warning in log(X_simulado): Se han producido NaNs
modelo_cinetica <- lm(lnX ~ tiempo)
k_estimado <- -coef(modelo_cinetica)[2]
plot(tiempo, X_simulado, pch = 16,
xlab = "Tiempo (min)", ylab = "[X] (mol/L)")
lines(tiempo, X_teorico, col = "red")
cat("k teórico:", k_teorico, "\nk estimado:", k_estimado, "\n")
## k teórico: 0.25
## k estimado: 0.2152729
#Problema 5
url <- "https://raw.githubusercontent.com/Jimena-Serrano24/QM215/refs/heads/main/titulacion_acetico.csv"
datos <- read.csv(url)
head(datos)
## vol_NaOH_mL.pH
## 1 0.00 2.88
## 2 1.00 3.14
## 3 2.00 3.41
## 4 3.00 3.65
## 5 4.00 3.89
## 6 5.00 4.22
mL_NaOH <- c(0.00, 1.00, 2.00, 3.00, 4.00, 5.00)
pH <- c(2.88, 3.14, 3.41, 3.65, 3.89, 4.22)
datos <- data.frame(mL_NaOH, pH)
head(datos)
## mL_NaOH pH
## 1 0 2.88
## 2 1 3.14
## 3 2 3.41
## 4 3 3.65
## 5 4 3.89
## 6 5 4.22
delta_pH <- diff(pH) / diff(mL_NaOH)
vol_equiv <- mL_NaOH[which.max(delta_pH)]
cat("Punto de equivalencia estimado en:", vol_equiv, "mL\n")
## Punto de equivalencia estimado en: 4 mL
plot(mL_NaOH, pH, type = "l", col = "blue", lwd = 2,
xlab = "Volumen de NaOH agregado (mL)",
ylab = "pH",
main = "Curva de titulación con punto de equivalencia")
abline(v = vol_equiv, col = "red", lty = 2)
points(mL_NaOH, pH, pch = 16, col = "blue")
legend("bottomright", legend = c("Curva de titulación", "Punto de equivalencia"),
col = c("blue", "red"), lty = c(1,2))