#PROBLEMA 1
x <- seq(0, 0.5, by = 0.01)
H2 <- 0.5 - x
I2 <- 0.5 - x
HI <- 2 * x
Q <- (HI^2) / (H2 * I2)
Kc <- 50.2
diferencia <- (Q - Kc)^2
resultado <- data.frame(x, H2, I2, HI, Q, diferencia)
print(resultado)
## x H2 I2 HI Q diferencia
## 1 0.00 0.50 0.50 0.00 0.000000e+00 2.520040e+03
## 2 0.01 0.49 0.49 0.02 1.665973e-03 2.519873e+03
## 3 0.02 0.48 0.48 0.04 6.944444e-03 2.519343e+03
## 4 0.03 0.47 0.47 0.06 1.629697e-02 2.518404e+03
## 5 0.04 0.46 0.46 0.08 3.024575e-02 2.517004e+03
## 6 0.05 0.45 0.45 0.10 4.938272e-02 2.515084e+03
## 7 0.06 0.44 0.44 0.12 7.438017e-02 2.512578e+03
## 8 0.07 0.43 0.43 0.14 1.060032e-01 2.509409e+03
## 9 0.08 0.42 0.42 0.16 1.451247e-01 2.505491e+03
## 10 0.09 0.41 0.41 0.18 1.927424e-01 2.500726e+03
## 11 0.10 0.40 0.40 0.20 2.500000e-01 2.495003e+03
## 12 0.11 0.39 0.39 0.22 3.182117e-01 2.488193e+03
## 13 0.12 0.38 0.38 0.24 3.988920e-01 2.480150e+03
## 14 0.13 0.37 0.37 0.26 4.937911e-01 2.470707e+03
## 15 0.14 0.36 0.36 0.28 6.049383e-01 2.459670e+03
## 16 0.15 0.35 0.35 0.30 7.346939e-01 2.446817e+03
## 17 0.16 0.34 0.34 0.32 8.858131e-01 2.431889e+03
## 18 0.17 0.33 0.33 0.34 1.061524e+00 2.414590e+03
## 19 0.18 0.32 0.32 0.36 1.265625e+00 2.394573e+03
## 20 0.19 0.31 0.31 0.38 1.502601e+00 2.371437e+03
## 21 0.20 0.30 0.30 0.40 1.777778e+00 2.344712e+03
## 22 0.21 0.29 0.29 0.42 2.097503e+00 2.313850e+03
## 23 0.22 0.28 0.28 0.44 2.469388e+00 2.278211e+03
## 24 0.23 0.27 0.27 0.46 2.902606e+00 2.237043e+03
## 25 0.24 0.26 0.26 0.48 3.408284e+00 2.189465e+03
## 26 0.25 0.25 0.25 0.50 4.000000e+00 2.134440e+03
## 27 0.26 0.24 0.24 0.52 4.694444e+00 2.070756e+03
## 28 0.27 0.23 0.23 0.54 5.512287e+00 1.996992e+03
## 29 0.28 0.22 0.22 0.56 6.479339e+00 1.911496e+03
## 30 0.29 0.21 0.21 0.58 7.628118e+00 1.812365e+03
## 31 0.30 0.20 0.20 0.60 9.000000e+00 1.697440e+03
## 32 0.31 0.19 0.19 0.62 1.064820e+01 1.564345e+03
## 33 0.32 0.18 0.18 0.64 1.264198e+01 1.410605e+03
## 34 0.33 0.17 0.17 0.66 1.507266e+01 1.233930e+03
## 35 0.34 0.16 0.16 0.68 1.806250e+01 1.032819e+03
## 36 0.35 0.15 0.15 0.70 2.177778e+01 8.078227e+02
## 37 0.36 0.14 0.14 0.72 2.644898e+01 5.641110e+02
## 38 0.37 0.13 0.13 0.74 3.240237e+01 3.167557e+02
## 39 0.38 0.12 0.12 0.76 4.011111e+01 1.017857e+02
## 40 0.39 0.11 0.11 0.78 5.028099e+01 6.559661e-03
## 41 0.40 0.10 0.10 0.80 6.400000e+01 1.904400e+02
## 42 0.41 0.09 0.09 0.82 8.301235e+01 1.076650e+03
## 43 0.42 0.08 0.08 0.84 1.102500e+02 3.606002e+03
## 44 0.43 0.07 0.07 0.86 1.509388e+02 1.014830e+04
## 45 0.44 0.06 0.06 0.88 2.151111e+02 2.719567e+04
## 46 0.45 0.05 0.05 0.90 3.240000e+02 7.496644e+04
## 47 0.46 0.04 0.04 0.92 5.290000e+02 2.292494e+05
## 48 0.47 0.03 0.03 0.94 9.817778e+02 8.678372e+05
## 49 0.48 0.02 0.02 0.96 2.304000e+03 5.079614e+06
## 50 0.49 0.01 0.01 0.98 9.604000e+03 9.127509e+07
## 51 0.50 0.00 0.00 1.00 Inf Inf
x_min <- x[which.min(diferencia)]
cat("El valor de x que minimiza (Q - Kc)^2 es:", x_min, "\n")
## El valor de x que minimiza (Q - Kc)^2 es: 0.39
#PROBLEMA 2
library(ggplot2)
df <- read.csv("https://raw.githubusercontent.com/sherleygil/QM215/refs/heads/main/co.csv")
head(df)
## T_K Cp S G_H_over_T H_HTr delta_f_H delta_f_G log_Kf
## 1 100.00 29.208 179.009 243.568 -6.456 -393.208 -393.683 205.639
## 2 200.00 32.359 199.975 217.046 -3.414 -393.404 -394.085 102.924
## 3 298.15 37.129 213.795 213.795 0.000 -393.522 -394.389 69.095
## 4 300.00 37.221 214.025 213.795 0.069 -393.523 -394.394 68.670
## 5 400.00 41.325 225.314 215.307 4.003 -393.583 -394.675 51.539
## 6 500.00 44.627 234.901 218.290 8.305 -393.666 -394.939 41.259
names(df)
## [1] "T_K" "Cp" "S" "G_H_over_T" "H_HTr"
## [6] "delta_f_H" "delta_f_G" "log_Kf"
ggplot(df, aes(x = T_K, y = Cp)) +
geom_point(color = "blue", size = 3) +
geom_smooth(method = "loess", se = FALSE, color = "red") +
labs(title = "Cp vs Temperatura",
x = "Temperatura (K)",
y = expression(C[p]~"(J/mol·K)")) +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

#PROBLEMA 3
conc <- c(0.00, 0.02, 0.04, 0.06, 0.08, 0.10)
abs <- c(0.00, 0.18, 0.38, 0.59, 0.81, 1.01)
plot(conc, abs,
xlim = c(0, 0.12),
ylim = c(0, 1.1),
main = "Absorbancia vs Concentración",
xlab = "Concentración (mol/L)",
ylab = "Absorbancia",
pch = 16, col = "blue")
modelo <- lm(abs ~ conc)
abline(modelo, col = "red", lwd = 2)
a <- coef(modelo)[1]
b <- coef(modelo)[2]
cat("Ecuación: Abs =", round(a, 2), "+", round(b, 2), "* Conc\n")
## Ecuación: Abs = -0.02 + 10.21 * Conc
abs_dada <- 0.75
conc_estimada <- (abs_dada - a) / b
cat("Concentración para Absorbancia = 0.75:", round(conc_estimada, 4), "mol/L\n")
## Concentración para Absorbancia = 0.75: 0.075 mol/L
abline(h = 0.75, col = "blue", lty = 2)
abline(v = conc_estimada, col = "darkgreen", lty = 2)

#PROBLEMA 4
tiempo <- seq(0, 20, by = 1)
X0 <- 0.100
k <- 0.25
X_teorico <- X0 * exp(-k * tiempo)
set.seed(123)
X_experimental <- X0 * exp(-k * tiempo) + rnorm(length(tiempo), sd = 0.0025)
plot(tiempo, X_teorico, type = "l", col = "blue",
xlab = "Tiempo (min)", ylab = "[X] (mol/L)")
points(tiempo, X_experimental, pch = 19, col = "red")

modelo <- lm(log(X_experimental) ~ tiempo)
## Warning in log(X_experimental): Se han producido NaNs
cat("k estimada:", -coef(modelo)[2], "min⁻¹")
## k estimada: 0.2152729 min⁻¹
#PROBLEMA 5
datos <- read.csv("https://raw.githubusercontent.com/sherleygil/QM215/refs/heads/main/nuevo1.csv")
names(datos) <- c("volumen", "pH")
plot(datos$volumen, datos$pH, type = "b", pch = 19, col = "blue",
xlab = "Volumen NaOH (mL)", ylab = "pH", main = "Curva de Titulación")
dif_pH <- diff(datos$pH)
pe_index <- which.max(dif_pH) + 1 # +1 porque diff() reduce el vector
pe_vol <- datos$volumen[pe_index]
pe_pH <- datos$pH[pe_index]
abline(v = pe_vol, col = "red", lty = 2)
points(pe_vol, pe_pH, pch = 17, col = "red", cex = 1.5)

conc_acido <- (0.1 * pe_vol) / 25 # M1V1 = M2V2
cat("Punto de equivalencia:", pe_vol, "mL\n")
## Punto de equivalencia: 12 mL
cat("pH en punto de equivalencia:", pe_pH, "\n")
## pH en punto de equivalencia: 7.42
cat("Concentración de CH3COOH:", conc_acido, "M\n")
## Concentración de CH3COOH: 0.048 M