Número de tabla descargada: 5
library(readxl)
datos1 <- read_excel("D:/Documents/Tabla1.xlsx")
## New names:
## * `` -> ...1
View(datos1)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
protocoloVA <- filter(datos1, `clase bureta` == 'A', `volumen alicuota` == 5, `clase pipeta` == "A")
protocoloVB <- filter(datos1, `clase bureta` == "B", `volumen alicuota` == 10, `clase pipeta`== "B" )
protocoloVC <- filter(datos1, `clase bureta`== "A", `volumen alicuota`== 10, `clase pipeta`== "A")
protocoloGA <- filter(datos1, `volumen alicuota`== 5, `clase pipeta`== "A",`balanza calcinado`== "ME204")
protocoloGB <- filter(datos1, `volumen alicuota`== 10,`clase pipeta`== "B",`balanza calcinado`== "ME204")
protocoloGC <- filter(datos1,`volumen alicuota`== 10,`clase pipeta`== "A",`balanza calcinado`== "ME204" )
Protocolo VA - Protocolo VB - Protocolo VC
volumenesVA <- unlist(select(protocoloVA, `volumen EDTA`))
volumenesVA <- as.numeric(volumenesVA)
par(mfrow = c(3,2))
boxplot(volumenesVA, main = "boxplot de volumenes VA")
hist(volumenesVA)
volumenesVB <- unlist(select(protocoloVB, `volumen EDTA`))
volumenesVB <- as.numeric(volumenesVB)
boxplot(volumenesVB, main = "boxplot de volumenes VB")
hist(volumenesVB)
volumenesVC <- unlist(select(protocoloVC, `volumen EDTA`))
volumenesVC <- as.numeric(volumenesVC)
boxplot(volumenesVC, main = "boxplot de volumenes VC")
hist(volumenesVC)
Protocolo GA - Protocolo GB - Protocolo GC
masasGA <- unlist(select(protocoloGA, `masas finales`))
masasGA <- as.numeric(masasGA)
par(mfrow = c(3,2))
boxplot(masasGA, main = "boxplot de masas GA")
hist(masasGA)
masasGB <- unlist(select(protocoloGB, `masas finales`))
masasGB <- as.numeric(masasGB)
boxplot(masasGB, main = "boxplot de masas GB")
hist(masasGB)
masasGC <- unlist(select(protocoloGC, `masas finales`))
masasGC <- as.numeric(masasGC)
boxplot(masasGC, main = "boxplot de masas GC")
hist(masasGC)
Datos atípicos:
protocoloGD <- read_excel("D:/Documents/Tabla2.xlsx")
## New names:
## * `` -> ...1
masasGD <- unlist(select(protocoloGD, `masas finales`))
masasGD <- as.numeric(masasGD)
par(mfrow = c(1,2))
summary(masasGD)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.04350 0.04920 0.05660 0.05348 0.05740 0.06070
cuartiles <- quantile(masasGD)
cuartiles
## 0% 25% 50% 75% 100%
## 0.0435 0.0492 0.0566 0.0574 0.0607
IQR <- cuartiles[4]-cuartiles[2]
critico.inferior<- cuartiles[2]-(1.5*IQR)
which(masasGD < critico.inferior)
## integer(0)
No hay datos atípicos
Protocolo GD
protocoloGD <- read_excel("D:/Documents/Tabla2.xlsx")
## New names:
## * `` -> ...1
masasGD <- unlist(select(protocoloGD, `masas finales`))
masasGD <- as.numeric(masasGD)
par(mfrow = c(1,2))
boxplot(masasGD, main = "boxplot de masas GD")
hist(masasGD)
VOLUMETRÍAS
# protocolo VA
volumenesVA1 <- filter(protocoloVA, replicas ==1) %>% select(`volumen EDTA`)%>% unlist()
volumenesVA2 <- filter(protocoloVA, replicas ==2) %>% select(`volumen EDTA`)%>% unlist()
volumenesVA3 <- filter(protocoloVA, replicas ==3) %>% select(`volumen EDTA`)%>% unlist()
volumenesVA1 <- as.numeric(volumenesVA1)
volumenesVA2 <- as.numeric(volumenesVA2)
volumenesVA3 <- as.numeric(volumenesVA3)
volumenesVA.promedio = (volumenesVA1 + volumenesVA2 + volumenesVA3)/3
sd.volumenVA <- vector('numeric',5)
for(i in 1:5){
sd.volumenVA[i] <- sd(c(volumenesVA1[i],volumenesVA2[i],volumenesVA3[i]))
}
volumenesVA.promedio <- as.data.frame(volumenesVA.promedio)
volumenesVA.promedio
## volumenesVA.promedio
## 1 10.23000
## 2 10.10333
## 3 10.27000
## 4 10.24333
## 5 10.05667
# sd.volumen
# volumenes.promedio$sd.replicas <- sd.volumen
# Protocoloo VB
volumenesVB1 <- filter(protocoloVB, replicas ==1) %>% select(`volumen EDTA`)%>% unlist()
volumenesVB2 <- filter(protocoloVB, replicas ==2) %>% select(`volumen EDTA`)%>% unlist()
volumenesVB3 <- filter(protocoloVB, replicas ==3) %>% select(`volumen EDTA`)%>% unlist()
volumenesVB1 <- as.numeric(volumenesVB1)
volumenesVB2 <- as.numeric(volumenesVB2)
volumenesVB3 <- as.numeric(volumenesVB3)
volumenesVB.promedio = (volumenesVB1 + volumenesVB2 + volumenesVB3)/3
sd.volumenVB <- vector('numeric',5)
for(i in 1:5){
sd.volumenVB[i] <- sd(c(volumenesVB1[i],volumenesVB2[i],volumenesVB3[i]))
}
volumenesVB.promedio <- as.data.frame(volumenesVB.promedio)
volumenesVB.promedio
## volumenesVB.promedio
## 1 10.10333
## 2 10.10333
## 3 10.08000
## 4 10.14667
## 5 10.21000
# sd.volumen
# volumenes.promedio$sd.replicas <- sd.volumen
# Protocolo VC
volumenesVC1 <- filter(protocoloVC, replicas ==1) %>% select(`volumen EDTA`)%>% unlist()
volumenesVC2 <- filter(protocoloVC, replicas ==2) %>% select(`volumen EDTA`)%>% unlist()
volumenesVC3 <- filter(protocoloVC, replicas ==3) %>% select(`volumen EDTA`)%>% unlist()
volumenesVC1 <- as.numeric(volumenesVC1)
volumenesVC2 <- as.numeric(volumenesVC2)
volumenesVC3 <- as.numeric(volumenesVC3)
volumenesVC.promedio = (volumenesVC1 + volumenesVC2 + volumenesVC3)/3
sd.volumenVC <- vector('numeric',5)
for(i in 1:5){
sd.volumenVC[i] <- sd(c(volumenesVC1[i],volumenesVC2[i],volumenesVC3[i]))
}
volumenesVC.promedio <- as.data.frame(volumenesVC.promedio)
volumenesVC.promedio
## volumenesVC.promedio
## 1 10.37667
## 2 10.20000
## 3 10.21667
## 4 10.16333
## 5 10.25333
# sd.volumen
# volumenes.promedio$sd.replicas <- sd.volumen
# GA SE CALCINARON A 250 °. En forma de CaC2O4
masasGA1 <- filter(protocoloGA, replicas ==1) %>% select( `masas finales`)%>% unlist()
masasGA2 <- filter(protocoloGA, replicas ==2) %>% select( `masas finales`)%>% unlist()
masasGA3 <- filter(protocoloGA, replicas ==3) %>% select( `masas finales`)%>% unlist()
masasGA1 <- as.numeric(masasGA1)
masasGA2 <- as.numeric(masasGA2)
masasGA3<- as.numeric(masasGA3)
masasGA.promedio.CaC2O4 <- (masasGA1+masasGA2+masasGA3)/3
sd.masaGA <- vector('numeric',5)
for(i in 1:5){
sd.masaGA[i] <- sd(c(masasGA1[i],masasGA2[i],masasGA3[i]))
}
sd.masaGA
## [1] 1.000000e-04 0.000000e+00 5.773503e-05 0.000000e+00 5.773503e-05
# GB SE CALCINARON A 500 °. En forma de CaCO3
masasGB1 <- filter(protocoloGB, replicas ==1) %>% select( `masas finales`)%>% unlist()
masasGB2 <- filter(protocoloGB, replicas ==2) %>% select( `masas finales`)%>% unlist()
masasGB3 <- filter(protocoloGB, replicas ==3) %>% select( `masas finales`)%>% unlist()
masasGB1 <- as.numeric(masasGB1)
masasGB2 <- as.numeric(masasGB2)
masasGB3<- as.numeric(masasGB3)
masasGB.promedio.CaCO3 <- (masasGB1+masasGB2+masasGB3)/3
sd.masaGB <- vector('numeric',5)
for(i in 1:5){
sd.masaGB[i] <- sd(c(masasGB1[i],masasGB2[i],masasGB3[i]))
}
sd.masaGB
## [1] 5.773503e-05 5.773503e-05 5.773503e-05 0.000000e+00 5.773503e-05
# GC SE CALCINARON A 1000 °. En forma de CaO
masasGC1 <- filter(protocoloGC, replicas ==1) %>% select( `masas finales`)%>% unlist()
masasGC2 <- filter(protocoloGC, replicas ==2) %>% select( `masas finales`)%>% unlist()
masasGC3 <- filter(protocoloGC, replicas ==3) %>% select( `masas finales`)%>% unlist()
masasGC1 <- as.numeric(masasGC1)
masasGC2 <- as.numeric(masasGC2)
masasGC3<- as.numeric(masasGC3)
masasGC.promedio.CaO <- (masasGC1+masasGC2+masasGC3)/3
sd.masaGC <- vector('numeric',5)
for(i in 1:5){
sd.masaGC[i] <- sd(c(masasGC1[i],masasGC2[i],masasGC3[i]))
}
sd.masaGC
## [1] 5.773503e-05 1.527525e-04 0.000000e+00 1.000000e-04 5.773503e-05
CaOH2_p.pVA <- function(FD_VA,
V_EDTA_VA,
W_CaOH2_VA,
C_EDTA_VA,
R_VA,
m_muestra_VA){
(0.1*FD_VA*V_EDTA_VA*W_CaOH2_VA*C_EDTA_VA*R_VA)/(m_muestra_VA)
}
CaOH2_p.pVB <- function(FD_VB,
V_EDTA_VB,
W_CaOH2_VB,
C_EDTA_VB,
R_VB,
m_muestra_VB){
(0.1*FD_VB*V_EDTA_VB*W_CaOH2_VB*C_EDTA_VB*R_VB)/(m_muestra_VB)
}
CaOH2_p.pVC <- function(FD_VC,
V_EDTA_VC,
W_CaOH2_VC,
C_EDTA_VC,
R_VC,
m_muestra_VC){
(0.1*FD_VC*V_EDTA_VC*W_CaOH2_VC*C_EDTA_VC*R_VC)/(m_muestra_VC)
}
library(AtomicWeights)
W_CaOH2 <- getMolarMass(atomsType = c('Ca','O','H'),
c(1,1,2)
)
W_CaOH2
## MM u_MM
## 1 58.09335 0.004008732
Para el método de la fenolftaleína la incertidumbre típica es 0,090 mL y relativa de 0,91 %.
U = R/2raíz de 3 = 0.05/2 raíz de 3 = 0,0144
Protocolo GA
volumenesVA.promedio$U.PF.Class[1:5] <- 0.05/2*sqrt(3)
volumenesVB.promedio$U.PF.Class[1:5] <- 0.05/2*sqrt(3)
volumenesVC.promedio$U.PF.Class[1:5] <- 0.05/2*sqrt(3)
library(uLPAQ)
## Loading required package: inflection
## Warning: package 'inflection' was built under R version 4.2.0
## Loading required package: nplr
## Warning: package 'nplr' was built under R version 4.2.0
## Loading required package: latex2exp
## Warning: package 'latex2exp' was built under R version 4.0.5
## Loading required package: Deriv
## Warning: package 'Deriv' was built under R version 4.0.5
U_buretasVA <- vector('list',5)
for(i in 1:5){
U_buretasVA[[i]] <- instVolumetrico(nominal=25,
subdivision =0.05 ,
tipo="bureta",
clase="A_AS",
volumen=volumenesVA.promedio$volumenesVA.promedio[i],
temp = 18.1)$u_V
}
U_buretasVA <- unlist(U_buretasVA)
for(i in 1:3){
volumenesVA.promedio$u_buretasVA[i] <- as.numeric(U_buretasVA[i])
}
library(uLPAQ)
U_buretasVB <- vector('list',5)
for(i in 1:5){
U_buretasVB[[i]] <- instVolumetrico(nominal=25,
subdivision =0.05 ,
tipo="bureta",
clase="A_AS",
volumen=volumenesVB.promedio$volumenesVB.promedio[i],
temp = 18.1)$u_V
}
U_buretasVB <- unlist(U_buretasVB)
for(i in 1:3){
volumenesVB.promedio$u_buretasVB[i] <- as.numeric(U_buretasVB[i])
}
library(uLPAQ)
U_buretasVC <- vector('list',5)
for(i in 1:5){
U_buretasVC[[i]] <- instVolumetrico(nominal=25,
subdivision =0.05 ,
tipo="bureta",
clase="A_AS",
volumen=volumenesVC.promedio$volumenesVC.promedio[i],
temp = 18.1)$u_V
}
U_buretasVC <- unlist(U_buretasVC)
for(i in 1:3){
volumenesVC.promedio$u_buretasVC[i] <- as.numeric(U_buretasVC[i])
}
u_V_EDTA_VA <- vector('numeric',5)
u_V_EDTA_vA <- sqrt(volumenesVA.promedio$U.PF.Class^2+volumenesVA.promedio$u_buretasVA^2)
volumenesVA.promedio$u_V_EDTA_VA <- u_V_EDTA_VA
par(mfrow = c(1,3))
barplot(volumenesVA.promedio$U.PF.Class, main = 'u punto final' , ylim = c(0,0.5))
barplot(volumenesVA.promedio$u_buretasVA, main = 'u bureta', ylim = c(0,0.5))
barplot(volumenesVA.promedio$u_V_EDTA_VA, main = 'u volumen EDTA' , ylim = c(0,0.5))
u_V_EDTA_VB <- vector('numeric',5)
u_V_EDTA_VB <- sqrt(volumenesVB.promedio$U.PF.Class^2+volumenesVB.promedio$u_buretasVB^2)
volumenesVB.promedio$u_V_EDTA_VB <- u_V_EDTA_VB
par(mfrow = c(1,3))
barplot(volumenesVB.promedio$U.PF.Class, main = 'u punto final' , ylim = c(0,0.5))
barplot(volumenesVB.promedio$u_buretasVB, main = 'u bureta', ylim = c(0,0.5))
barplot(volumenesVB.promedio$u_V_EDTA_VB, main = 'u volumen EDTA' , ylim = c(0,0.5))
u_V_EDTA_VC <- vector('numeric',5)
u_V_EDTA_VC <- sqrt(volumenesVC.promedio$U.PF.Class^2+volumenesVC.promedio$u_buretasVC^2)
volumenesVC.promedio$u_V_EDTA_VC <- u_V_EDTA_VC
par(mfrow = c(1,3))
barplot(volumenesVC.promedio$U.PF.Class, main = 'u punto final' , ylim = c(0,0.5))
barplot(volumenesVC.promedio$u_buretasVC, main = 'u bureta', ylim = c(0,0.5))
barplot(volumenesVC.promedio$u_V_EDTA_VC, main = 'u volumen EDTA' , ylim = c(0,0.5))
promedioVA <- mean(protocoloVA$`masa muestra`)
promedioVA
## [1] 1.199967
promedioVB <-mean(protocoloVB$`masa muestra`)
promedioVB
## [1] 1.199987
promedioVC <- mean(protocoloVC$`masa muestra`)
promedioVC
## [1] 2.999967
#Protocolo VA
library(uLPAQ)
masas.corregidasVA <- vector('numeric',5)
u_masasVA <- vector('numeric',5)
for(i in 1:5){
masas.corregidasVA[i] <- u_masa(lectura= promedioVA,
densidad = 2211,
balanza = "ME204")$m_s$ms
}
for(i in 1:5){
u_masasVA[i] <- u_masa(lectura=promedioVA,
densidad = 2211,
balanza = "ME204")$m_s$u_ms
}
volumenesVA.promedio$masas_corregidasVA <- masas.corregidasVA
volumenesVA.promedio$u_masasVA <- u_masasVA
#Protocolo VB
masas.corregidasVB <- vector('numeric',5)
u_masasVB <- vector('numeric',5)
for(i in 1:5){
masas.corregidasVB[i] <- u_masa(lectura=promedioVB,
densidad = 2211,
balanza = "ME204")$m_s$ms
}
for(i in 1:5){
u_masasVB[i] <- u_masa(lectura=promedioVB,
densidad = 2211,
balanza = "ME204")$m_s$u_ms
}
volumenesVB.promedio$masas_corregidasVB <- masas.corregidasVB
volumenesVB.promedio$u_masasVB <- u_masasVB
#Protocolo VC
masas.corregidasVC <- vector('numeric',5)
u_masasVC <- vector('numeric',5)
for(i in 1:5){
masas.corregidasVC[i] <- u_masa(lectura=promedioVC,
densidad = 2211,
balanza = "ME204")$m_s$ms
}
for(i in 1:5){
u_masasVC[i] <- u_masa(lectura=promedioVC,
densidad = 2211,
balanza = "ME204")$m_s$u_ms
}
volumenesVC.promedio$masas_corregidasVC <- masas.corregidasVC
volumenesVC.promedio$u_masasVC <- u_masasVC
Protocolo VA. Balón: 50. Pipeta 5 mL tipo A Protocolo VB. Balón: 100. Pipeta 10 mL tipo B Protocolo VC. Balón: 150. Pipeta 10 mL tipo A
# Protocolo VA
balon50 <- instVolumetrico(nominal =50,
tipo="balon",
clase="A",
temp=18.1)
pipeta5 <- instVolumetrico(nominal=5 ,tipo="pipeta",clase="A_AS",temp=18.1)
u_dilucionVA <- sqrt(balon50$u_V^2 + pipeta5$u_V^2)
volumenesVA.promedio$u_dilucionVA <- rep(u_dilucionVA, 5)
# Protocolo VB
balon100 <- instVolumetrico(nominal =100,
tipo="balon",
clase="A",
temp=18.1)
pipeta10 <- instVolumetrico(nominal=10 ,tipo="pipeta",clase="B",temp=18.1)
u_dilucionVB <- sqrt(balon100$u_V^2 + pipeta10$u_V^2)
volumenesVB.promedio$u_dilucionVB <- rep(u_dilucionVB, 5)
# Protocolo VC
balon150 <- instVolumetrico(nominal =100,
tipo="balon",
clase="A",
temp=18.1)
pipeta10 <- instVolumetrico(nominal=10 ,tipo="pipeta",clase="A_AS",temp=18.1)
u_dilucionVC <- sqrt(balon50$u_V^2 + pipeta5$u_V^2)
volumenesVC.promedio$u_dilucionVC <- rep(u_dilucionVC, 5)
u_C_EDTA <- 0.002/2
volumenesVA.promedio$u_C_EDTA <- rep(u_C_EDTA,5)
volumenesVB.promedio$u_C_EDTA <- rep(u_C_EDTA,5)
volumenesVC.promedio$u_C_EDTA <- rep(u_C_EDTA,5)
volumenesVA.promedio$u_R <- sd.volumenVA/sqrt(3)
volumenesVB.promedio$u_R <- sd.volumenVB/sqrt(3)
volumenesVC.promedio$u_R <- sd.volumenVC/sqrt(3)
volumenesVA.promedio
## volumenesVA.promedio U.PF.Class u_buretasVA u_V_EDTA_VA masas_corregidasVA
## 1 10.23000 0.04330127 0.01247211 0 1.200267
## 2 10.10333 0.04330127 0.01246663 0 1.200267
## 3 10.27000 0.04330127 0.01247386 0 1.200267
## 4 10.24333 0.04330127 0.01247211 0 1.200267
## 5 10.05667 0.04330127 0.01247211 0 1.200267
## u_masasVA u_dilucionVA u_C_EDTA u_R
## 1 0.0002556896 0.02777578 0.001 0.04509250
## 2 0.0002556896 0.02777578 0.001 0.02027588
## 3 0.0002556896 0.02777578 0.001 0.06244998
## 4 0.0002556896 0.02777578 0.001 0.04841946
## 5 0.0002556896 0.02777578 0.001 0.01333333
library(Deriv)
c_i_VA = Deriv(CaOH2_p.pVA,c('FD_VA',
'V_EDTA_VA',
'W_CaOH2_VA',
'C_EDTA_VA',
' R_VA',
'm_muestra_vA'))
c_i_VA
## function (FD_VA, V_EDTA_VA, W_CaOH2_VA, C_EDTA_VA, R_VA, m_muestra_VA)
## {
## .e2 <- C_EDTA_VA * FD_VA * R_VA
## c(FD_VA = 0.1 * (C_EDTA_VA * R_VA * V_EDTA_VA * W_CaOH2_VA/m_muestra_VA),
## V_EDTA_VA = 0.1 * (.e2 * W_CaOH2_VA/m_muestra_VA), W_CaOH2_VA = 0.1 *
## (.e2 * V_EDTA_VA/m_muestra_VA), C_EDTA_VA = 0.1 *
## (FD_VA * R_VA * V_EDTA_VA * W_CaOH2_VA/m_muestra_VA),
## ` R_VA` = 0, m_muestra_vA = 0)
## }
library(Deriv)
c_i_VB = Deriv(CaOH2_p.pVB,c('FD_VB',
'V_EDTA_VB',
'W_CaOH2_VB',
'C_EDTA_VB',
' R_VB',
'm_muestra_vB'))
c_i_VB
## function (FD_VB, V_EDTA_VB, W_CaOH2_VB, C_EDTA_VB, R_VB, m_muestra_VB)
## {
## .e2 <- C_EDTA_VB * FD_VB * R_VB
## c(FD_VB = 0.1 * (C_EDTA_VB * R_VB * V_EDTA_VB * W_CaOH2_VB/m_muestra_VB),
## V_EDTA_VB = 0.1 * (.e2 * W_CaOH2_VB/m_muestra_VB), W_CaOH2_VB = 0.1 *
## (.e2 * V_EDTA_VB/m_muestra_VB), C_EDTA_VB = 0.1 *
## (FD_VB * R_VB * V_EDTA_VB * W_CaOH2_VB/m_muestra_VB),
## ` R_VB` = 0, m_muestra_vB = 0)
## }
library(Deriv)
c_i_VC = Deriv(CaOH2_p.pVC,c('FD_VC',
'V_EDTA_VC',
'W_CaOH2_VC',
'C_EDTA_VC',
' R_VC',
'm_muestra_vC'))
c_i_VC
## function (FD_VC, V_EDTA_VC, W_CaOH2_VC, C_EDTA_VC, R_VC, m_muestra_VC)
## {
## .e2 <- C_EDTA_VC * FD_VC * R_VC
## c(FD_VC = 0.1 * (C_EDTA_VC * R_VC * V_EDTA_VC * W_CaOH2_VC/m_muestra_VC),
## V_EDTA_VC = 0.1 * (.e2 * W_CaOH2_VC/m_muestra_VC), W_CaOH2_VC = 0.1 *
## (.e2 * V_EDTA_VC/m_muestra_VC), C_EDTA_VC = 0.1 *
## (FD_VC * R_VC * V_EDTA_VC * W_CaOH2_VC/m_muestra_VC),
## ` R_VC` = 0, m_muestra_vC = 0)
## }
coef.matrixVA <- matrix(nrow = 5, ncol = 6)
for(i in 1:5){
coef.matrixVA[i,] <- c_i_VA(FD_VA = 50/5,
V_EDTA_VA = volumenesVA.promedio$volumenesVA.promedio[i],
W_CaOH2_VA = W_CaOH2$MM,
C_EDTA_VA = 0.060,
R_VA = 1,
m_muestra_VA = promedioVA)
}
coef.matrixVB <- matrix(nrow = 5, ncol = 6)
for(i in 1:5){
coef.matrixVB[i,] <- c_i_VB(FD_VB = 100/10,
V_EDTA_VB = volumenesVB.promedio$volumenesVB.promedio[i],
W_CaOH2_VB = W_CaOH2$MM,
C_EDTA_VB = 0.060,
R_VB = 1,
m_muestra_VB = promedioVB)
}
coef.matrixVC <- matrix(nrow = 5, ncol = 6)
for(i in 1:5){
coef.matrixVC[i,] <- c_i_VC(FD_VC = 250/10,
V_EDTA_VC = volumenesVC.promedio$volumenesVC.promedio[i],
W_CaOH2_VC = W_CaOH2$MM,
C_EDTA_VC = 0.060,
R_VC = 1,
m_muestra_VC = promedioVC)
}
u_matrixVA = data.frame(FD_VA = volumenesVA.promedio$u_dilucionVA,
V_EDTA_VA = volumenesVA.promedio$u_V_EDTA_VA,
W_CaOH2_VA = rep(W_CaOH2$u_MM,5),
C_EDTA_VA = volumenesVA.promedio$u_C_EDTA,
R_VA = volumenesVA.promedio$u_R,
m_muestra_VA = volumenesVA.promedio$u_masasVA)
u_matrixVB = data.frame(FD_VB = volumenesVB.promedio$u_dilucionVB,
V_EDTA_VB = volumenesVB.promedio$u_V_EDTA_VB,
W_CaOH2_VB = rep(W_CaOH2$u_MM,5),
C_EDTA_VB = volumenesVB.promedio$u_C_EDTA,
R_VB = volumenesVB.promedio$u_R,
m_muestra_VB = volumenesVB.promedio$u_masasVB)
u_matrixVC = data.frame(FD_VC = volumenesVC.promedio$u_dilucionVC,
V_EDTA_VC = volumenesVC.promedio$u_V_EDTA_VC,
W_CaOH2_VC = rep(W_CaOH2$u_MM,5),
C_EDTA_VC = volumenesVC.promedio$u_C_EDTA,
R_VC = volumenesVC.promedio$u_R,
m_muestra_VC = volumenesVC.promedio$u_masasVC)
u_c_VA <- vector('numeric',5)
for(i in 1:5){
u_c_VA[i] <- sqrt(sum((coef.matrixVA[i,]*u_matrixVA[i,])^2))
}
u_c_VB <- vector('numeric',5)
for(i in 1:5){
u_c_VB[i] <- sqrt(sum((coef.matrixVB[i,]*u_matrixVB[i,])^2))
}
u_c_VC <- vector('numeric',5)
for(i in 1:5){
u_c_VC[i] <- sqrt(sum((coef.matrixVC[i,]*u_matrixVC[i,])^2))
}
k=2
U_VA=k*u_c_VA
U_VB=k*u_c_VB
U_VC=k*u_c_VC
u_matrixVA
## FD_VA V_EDTA_VA W_CaOH2_VA C_EDTA_VA R_VA m_muestra_VA
## 1 0.02777578 0 0.004008732 0.001 0.04509250 0.0002556896
## 2 0.02777578 0 0.004008732 0.001 0.02027588 0.0002556896
## 3 0.02777578 0 0.004008732 0.001 0.06244998 0.0002556896
## 4 0.02777578 0 0.004008732 0.001 0.04841946 0.0002556896
## 5 0.02777578 0 0.004008732 0.001 0.01333333 0.0002556896
u_matrixVB
## FD_VB V_EDTA_VB W_CaOH2_VB C_EDTA_VB R_VB m_muestra_VB
## 1 0.04969215 0.04506015 0.004008732 0.001 0.02905933 0.0002556896
## 2 0.04969215 0.04506015 0.004008732 0.001 0.06333333 0.0002556896
## 3 0.04969215 0.04505987 0.004008732 0.001 0.04041452 0.0002556896
## 4 0.04969215 0.04506015 0.004008732 0.001 0.04371626 0.0002556896
## 5 0.04969215 0.04506015 0.004008732 0.001 0.05507571 0.0002556896
u_matrixVC
## FD_VC V_EDTA_VC W_CaOH2_VC C_EDTA_VC R_VC m_muestra_VC
## 1 0.02777578 0.04506344 0.004008732 0.001 0.07535103 0.0002592034
## 2 0.02777578 0.04506130 0.004008732 0.001 0.02309401 0.0002592034
## 3 0.02777578 0.04506150 0.004008732 0.001 0.04055175 0.0002592034
## 4 0.02777578 0.04506344 0.004008732 0.001 0.03844188 0.0002592034
## 5 0.02777578 0.04506344 0.004008732 0.001 0.06173420 0.0002592034
contribuciones.vol_VA <- matrix(nrow = 5, ncol = 6)
for(i in 1:5){
for(j in 1:6){
contribuciones.vol_VA[i,j] <- ((coef.matrixVA[i,j]*u_matrixVA[i,j])^2)/u_c_VA[i]^2
}
}
colnames(contribuciones.vol_VA) <- colnames(u_matrixVA)
contribuciones.vol_VB <- matrix(nrow = 5, ncol = 6)
for(i in 1:5){
for(j in 1:6){
contribuciones.vol_VB[i,j] <- ((coef.matrixVB[i,j]*u_matrixVB[i,j])^2)/u_c_VB[i]^2
}
}
colnames(contribuciones.vol_VB) <- colnames(u_matrixVB)
contribuciones.vol_VC <- matrix(nrow = 5, ncol = 6)
for(i in 1:5){
for(j in 1:6){
contribuciones.vol_VC[i,j] <- ((coef.matrixVC[i,j]*u_matrixVC[i,j])^2)/u_c_VC[i]^2
}
}
colnames(contribuciones.vol_VC) <- colnames(u_matrixVC)
Con el calculo de todas las fuentes de incertidumbre, y la incertidumbre combinada, podemos graficar y compararlas entre muestras:
par(las=2)
par(mfrow = c(2,5))
for(i in 1:5){
barplot(contribuciones.vol_VA[i,]*100,
xlab="(%)",
ylab=" ",
main= paste('contribuciones #', as.character(i)),
horiz =T)
}
for(i in 1:5){
barplot(contribuciones.vol_VB[i,]*100,
xlab="(%)",
ylab=" ",
main= paste('contribuciones #', as.character(i)),
horiz =T)
}
for(i in 1:5){
barplot(contribuciones.vol_VC[i,]*100,
xlab="(%)",
ylab=" ",
main= paste('contribuciones #', as.character(i)),
horiz =T)
}
concentracionesVA <- vector('numeric', 5)
for (i in 1:5){
concentracionesVA[i] <- CaOH2_p.pVA(FD_VA = 50/5,
V_EDTA_VA = volumenesVA.promedio$volumenesVA.promedio[i],
W_CaOH2_VA = W_CaOH2$MM,
C_EDTA_VA =0.060,
R_VA = 1,
m_muestra_VA = promedioVA
)
}
mesurando.volumenVA <- data.frame(`CaOH2_p.pVA` = concentracionesVA, `U_VA` )
colnames(mesurando.volumenVA) <- c('CaOH2_(%p.pVA)', "U_VA")
knitr::kable(mesurando.volumenVA, align = 'c')
| CaOH2_(%p.pVA) | U_VA |
|---|---|
| 29.71557 | 1.0041885 |
| 29.34764 | 0.9917548 |
| 29.83176 | 1.0081150 |
| 29.75430 | 1.0054974 |
| 29.21208 | 0.9871739 |
concentracionesVB <- vector('numeric', 5)
for (i in 1:5){
concentracionesVB[i] <- CaOH2_p.pVB(FD_VB = 100/10,
V_EDTA_VB = volumenesVB.promedio$volumenesVB.promedio[i],
W_CaOH2_VB = W_CaOH2$MM,
C_EDTA_VB =0.060,
R_VB = 1,
m_muestra_VB = promedioVB
)
}
mesurando.volumenVB <- data.frame(`CaOH2_p.pVB` = concentracionesVB, `U_VB` )
colnames(mesurando.volumenVB) <- c('CaOH2_(%p.pVB)', "U_VB")
knitr::kable(mesurando.volumenVB, align = 'c')
| CaOH2_(%p.pVB) | U_VB |
|---|---|
| 29.34715 | 1.053831 |
| 29.34715 | 1.053831 |
| 29.27937 | 1.051547 |
| 29.47302 | 1.058072 |
| 29.65698 | 1.064274 |
concentracionesVC <- vector('numeric', 5)
for (i in 1:5){
concentracionesVC[i] <- CaOH2_p.pVC(FD_VC = 250/10,
V_EDTA_VC = volumenesVC.promedio$volumenesVC.promedio[i],
W_CaOH2_VC = W_CaOH2$MM,
C_EDTA_VC =0.060,
R_VC = 1,
m_muestra_VC = promedioVC
)
}
mesurando.volumenVC <- data.frame(`CaOH2_p.pVC` = concentracionesVC, `U_VC` )
colnames(mesurando.volumenVC) <- c('CaOH2_(%p.pVC)', "U_VC")
knitr::kable(mesurando.volumenVC, align = 'c')
| CaOH2_(%p.pVC) | U_VC |
|---|---|
| 30.14110 | 1.040417 |
| 29.62794 | 1.023831 |
| 29.67635 | 1.025394 |
| 29.52143 | 1.020394 |
| 29.78286 | 1.028838 |
Para el caso de la calcinación final luego de la precipitación, se puede revisar el análisis termo-gravimétrico para el oxalato de calcio, con el objetivo de saber la especie de calcio a la cual le vamos a determinar la masa luego de su calcinación:
Según el análisis termo-gravimétrico para los métodos GA - GB - GC y GD, se tiene:
GA: Temperatura de calcinación: 250 °C. Especie de calcio: \(CaC_{2}O_{4}\)
GB: Temperatura de calcincación: 500 °C. Especie de calcio: \(CaCO_{3}\)
GC: Temperatura de calcincación: 1000 °C. Especie de calcio: \(CaO\)
GD: Temperatura de calcincación: 500 °C. Especie de calcio: \(CaCO_{3}\)
# GA SE CALCINARON A 250 °. En forma de CaC2O4
masasGA1 <- filter(protocoloGA, replicas ==1) %>% select( `masas finales`)%>% unlist()
masasGA2 <- filter(protocoloGA, replicas ==2) %>% select( `masas finales`)%>% unlist()
masasGA3 <- filter(protocoloGA, replicas ==3) %>% select( `masas finales`)%>% unlist()
masasGA1 <- as.numeric(masasGA1)
masasGA2 <- as.numeric(masasGA2)
masasGA3<- as.numeric(masasGA3)
masasGA.promedio.CaC2O4 <- (masasGA1+masasGA2+masasGA3)/3
sd.masaGA <- vector('numeric',5)
for(i in 1:5){
sd.masaGA[i] <- sd(c(masasGA1[i],masasGA2[i],masasGA3[i]))
}
sd.masaGA
## [1] 1.000000e-04 0.000000e+00 5.773503e-05 0.000000e+00 5.773503e-05
masasGA.promedio <- data.frame(masasGA.promedio.CaC2O4 = masasGA.promedio.CaC2O4)
# GB SE CALCINARON A 500 °. En forma de CaCO3
masasGB1 <- filter(protocoloGB, replicas ==1) %>% select( `masas finales`)%>% unlist()
masasGB2 <- filter(protocoloGB, replicas ==2) %>% select( `masas finales`)%>% unlist()
masasGB3 <- filter(protocoloGB, replicas ==3) %>% select( `masas finales`)%>% unlist()
masasGB1 <- as.numeric(masasGB1)
masasGB2 <- as.numeric(masasGB2)
masasGB3<- as.numeric(masasGB3)
masasGB.promedio.CaCO3 <- (masasGB1+masasGB2+masasGB3)/3
sd.masaGB <- vector('numeric',5)
for(i in 1:5){
sd.masaGB[i] <- sd(c(masasGB1[i],masasGB2[i],masasGB3[i]))
}
sd.masaGB
## [1] 5.773503e-05 5.773503e-05 5.773503e-05 0.000000e+00 5.773503e-05
masasGB.promedio <- data.frame(masasGB.promedio.CaCO3 = masasGB.promedio.CaCO3)
# GC SE CALCINARON A 1000 °. En forma de CaO
masasGC1 <- filter(protocoloGC, replicas ==1) %>% select( `masas finales`)%>% unlist()
masasGC2 <- filter(protocoloGC, replicas ==2) %>% select( `masas finales`)%>% unlist()
masasGC3 <- filter(protocoloGC, replicas ==3) %>% select( `masas finales`)%>% unlist()
masasGC1 <- as.numeric(masasGC1)
masasGC2 <- as.numeric(masasGC2)
masasGC3<- as.numeric(masasGC3)
masasGC.promedio.CaO <- (masasGC1+masasGC2+masasGC3)/3
sd.masaGC <- vector('numeric',5)
for(i in 1:5){
sd.masaGC[i] <- sd(c(masasGC1[i],masasGC2[i],masasGC3[i]))
}
sd.masaGC
## [1] 5.773503e-05 1.527525e-04 0.000000e+00 1.000000e-04 5.773503e-05
masasGC.promedio <- data.frame(masasGC.promedio.CaO = masasGC.promedio.CaO)
CaOH2_grav_GA <- function(W_CaOH2_GA,
W_CaC2O4_GA,
FD_GA,
m_muestra_GA,
R_GA,
m_final_GA)
{
( m_final_GA * W_CaOH2_GA * FD_GA * 100 * R_GA )/ (W_CaC2O4_GA * m_muestra_GA)
}
CaOH2_grav_GB <- function(W_CaOH2_GB,
W_CaCO3_GB,
FD_GB,
m_muestra_GB,
R_GB,
m_final_GB)
{
( m_final_GB * W_CaOH2_GB * FD_GB * 100 * R_GB )/ (W_CaCO3_GB * m_muestra_GB)
}
CaOH2_grav_GC <- function(W_CaOH2_GC,
W_CaO_GC,
FD_GC,
m_muestra_GC,
R_GC,
m_final_GC)
{
( m_final_GC * W_CaOH2_GC * FD_GC * 100 * R_GC )/ (W_CaO_GC * m_muestra_GC)
}
Primero determinamos las masas corregidas del sólido resultante después de la calcinación
masa_corregida_CaC2O4 <- vector('list',5)
for (i in 1:5) {
masa_corregida_CaC2O4[[i]] <- u_masa( masasGA.promedio$masasGA.promedio.CaC2O4[i],
densidad = 2120,
balanza= 'ME204')$m_s$ms
}
masasGA.promedio$masa_corregida_CaC2O4 <- unlist(masa_corregida_CaC2O4)
masa_corregida_CaCO3 <- vector('list',5)
for (i in 1:5) {
masa_corregida_CaCO3[[i]] <- u_masa( masasGB.promedio$masasGB.promedio.CaCO3[i],
densidad = 2710,
balanza= 'ME204')$m_s$ms
}
masasGB.promedio$masa_corregida_CaCO3 <- unlist(masa_corregida_CaCO3)
masa_corregida_CaO <- vector('list',5)
for (i in 1:5) {
masa_corregida_CaO[[i]] <- u_masa( masasGC.promedio$masasGC.promedio.CaO[i],
densidad = 3340,
balanza= 'ME204')$m_s$ms
}
masasGC.promedio$masa_corregida_CaO <- unlist(masa_corregida_CaO)
u_masa_CaC2O4 <- vector('list',5)
for(i in 1:5){
u_masa_CaC2O4[[i]] <- u_masa(lectura = masasGA.promedio$masasGA.promedio.CaC2O4[i],
densidad = 2120,
balanza= 'ME204')$m_s$u_ms
}
masasGA.promedio$u_masa_CaC2O4 <- unlist(u_masa_CaC2O4)
u_masa_CaCO3 <- vector('list',5)
for(i in 1:5){
u_masa_CaCO3[[i]] <- u_masa(lectura = masasGB.promedio$masasGB.promedio.CaCO3[i],
densidad = 2710,
balanza= 'ME204')$m_s$u_ms
}
masasGB.promedio$u_masa_CaCO3 <- unlist(u_masa_CaCO3)
u_masa_CaO <- vector('list',5)
for(i in 1:5){
u_masa_CaO[[i]] <- u_masa(lectura = masasGC.promedio$masasGC.promedio.CaO[i],
densidad = 3340,
balanza= 'ME204')$m_s$u_ms
}
masasGC.promedio$u_masa_CaO <- unlist(u_masa_CaO)
library(AtomicWeights)
W_CaCO3<- getMolarMass(atomsType = c('Ca','C',"O"),
c(1,1,3)
)
W_CaCO3
## MM u_MM
## 1 100.0868 0.004091947
library(AtomicWeights)
W_CaO <- getMolarMass(atomsType = c('Ca','O'),
c(1,1)
)
W_CaO
## MM u_MM
## 1 56.0774 0.0040057
W_CaC2O4 <- getMolarMass(atomsType = c('Ca','C',"O"),
c(1,2,4)
)
W_CaC2O4
## MM u_MM
## 1 128.0968 0.004250114
W_CaOH2 <- getMolarMass(atomsType = c('Ca','O',"H"),
c(1,1,2)
)
W_CaOH2
## MM u_MM
## 1 58.09335 0.004008732
masasGA.promedio$u_W_CaC2O4 <- W_CaC2O4$u_MM
masasGB.promedio$u_W_CaCO3 <- W_CaCO3$u_MM
masasGC.promedio$u_W_CaO <- W_CaO$u_MM
masasGA.promedio$u_W_CaOH2 <- W_CaOH2$u_MM
masasGB.promedio$u_W_CaOH2 <- W_CaOH2$u_MM
masasGC.promedio$u_W_CaOH2 <- W_CaOH2$u_MM
u_dilucionGA <- u_dilucionVA
u_dilucionGB <- u_dilucionVB
u_dilucionGC <- u_dilucionVC
masasGA.promedio$u_dilucion <- u_dilucionGA
masasGB.promedio$u_dilucion <- u_dilucionGB
masasGC.promedio$u_dilucion <- u_dilucionGC
promedioGA <-mean(protocoloGA$`masa muestra`)
promedioGA
## [1] 1.19974
promedioGB <-mean(protocoloGB$`masa muestra`)
promedioGB
## [1] 1.200273
promedioGC <-mean(protocoloGC$`masa muestra`)
promedioGC
## [1] 3.00026
#Protocolo GA
masas.corregidasGA <- vector('numeric',5)
u_masasGA <- vector('numeric',5)
for(i in 1:5){
masas.corregidasGA[i] <- u_masa(lectura=1.200,
densidad = 2211,
balanza = "ME204")$m_s$ms
}
masasGA.promedio$masas_corregidasGA <- masas.corregidasGA
for(i in 1:5){
u_masasGA[i] <- u_masa(lectura=1.200,
densidad = 2211,
balanza = "ME204")$m_s$u_ms
}
masasGA.promedio$u_masasGA_corregidas <- u_masasGA
#Protocolo GB
masas.corregidasGB <- vector('numeric',5)
u_masasGB <- vector('numeric',5)
for(i in 1:5){
masas.corregidasGB[i] <- u_masa(lectura=promedioGB,
densidad = 2211,
balanza = "ME204")$m_s$ms
}
masasGB.promedio$masas_corregidasGB <- masas.corregidasGB
for(i in 1:5){
u_masasGB[i] <- u_masa(lectura= promedioGB,
densidad = 2211,
balanza = "ME204")$m_s$u_ms
}
masasGB.promedio$u_masasGB_corregidas <- u_masasGB
#Protocolo GC
masas.corregidasGC <- vector('numeric',5)
u_masasGC <- vector('numeric',5)
for(i in 1:5){
masas.corregidasGC[i] <- u_masa(lectura=promedioGC
,
densidad = 2211,
balanza = "ME204")$m_s$ms
}
masasGC.promedio$masas_corregidasGC <- masas.corregidasGC
for(i in 1:5){
u_masasGC[i] <- u_masa(lectura=promedioGC,
densidad = 2211,
balanza = "ME204")$m_s$u_ms
}
masasGC.promedio$u_masasGC_corregidas <- u_masasGC
masasGA.promedio$u_R <- sd.masaGA/sqrt(3)
R = 1
masasGB.promedio$u_R <- sd.masaGB/sqrt(3)
R = 1
masasGC.promedio$u_R <- sd.masaGC/sqrt(3)
R = 1
masasGA.promedio
## masasGA.promedio.CaC2O4 masa_corregida_CaC2O4 u_masa_CaC2O4 u_W_CaC2O4
## 1 0.07660000 0.07662049 0.0002550222 0.004250114
## 2 0.07020000 0.07021878 0.0002550217 0.004250114
## 3 0.08036667 0.08038817 0.0002550225 0.004250114
## 4 0.07960000 0.07962129 0.0002550224 0.004250114
## 5 0.07776667 0.07778747 0.0002550223 0.004250114
## u_W_CaOH2 u_dilucion masas_corregidasGA u_masasGA_corregidas u_R
## 1 0.004008732 0.02777578 1.2003 0.0002556896 5.773503e-05
## 2 0.004008732 0.02777578 1.2003 0.0002556896 0.000000e+00
## 3 0.004008732 0.02777578 1.2003 0.0002556896 3.333333e-05
## 4 0.004008732 0.02777578 1.2003 0.0002556896 0.000000e+00
## 5 0.004008732 0.02777578 1.2003 0.0002556896 3.333333e-05
masasGB.promedio
## masasGB.promedio.CaCO3 masa_corregida_CaCO3 u_masa_CaCO3 u_W_CaCO3
## 1 0.05556667 0.05557648 0.0002549970 0.004091947
## 2 0.05663333 0.05664334 0.0002549970 0.004091947
## 3 0.06076667 0.06077740 0.0002549972 0.004091947
## 4 0.06600000 0.06601166 0.0002549974 0.004091947
## 5 0.05896667 0.05897708 0.0002549971 0.004091947
## u_W_CaOH2 u_dilucion masas_corregidasGB u_masasGB_corregidas u_R
## 1 0.004008732 0.04969215 1.200574 0.0002556899 3.333333e-05
## 2 0.004008732 0.04969215 1.200574 0.0002556899 3.333333e-05
## 3 0.004008732 0.04969215 1.200574 0.0002556899 3.333333e-05
## 4 0.004008732 0.04969215 1.200574 0.0002556899 0.000000e+00
## 5 0.004008732 0.04969215 1.200574 0.0002556899 3.333333e-05
masasGC.promedio
## masasGC.promedio.CaO masa_corregida_CaO u_masa_CaO u_W_CaO u_W_CaOH2
## 1 0.02966667 0.02967008 0.0002549805 0.0040057 0.004008732
## 2 0.02056667 0.02056903 0.0002549804 0.0040057 0.004008732
## 3 0.03660000 0.03660421 0.0002549806 0.0040057 0.004008732
## 4 0.03630000 0.03630417 0.0002549806 0.0040057 0.004008732
## 5 0.04063333 0.04063801 0.0002549806 0.0040057 0.004008732
## u_dilucion masas_corregidasGC u_masasGC_corregidas u_R
## 1 0.02777578 3.001011 0.0002592042 3.333333e-05
## 2 0.02777578 3.001011 0.0002592042 8.819171e-05
## 3 0.02777578 3.001011 0.0002592042 0.000000e+00
## 4 0.02777578 3.001011 0.0002592042 5.773503e-05
## 5 0.02777578 3.001011 0.0002592042 3.333333e-05
library(Deriv)
c_i_gravGA = Deriv(CaOH2_grav_GA,c('W_CaOH2_GA',
'W_Cac2O4_GA',
'FD_GA',
'm_muestra_GA',
'R_GA',
'm_final_GA'))
c_i_gravGB = Deriv(CaOH2_grav_GB,c('W_CaOH2_GB',
'W_CaCO3_GB',
'FD_GB',
'm_muestra_GB',
'R_GB',
'm_final_GB'))
c_i_gravGC = Deriv(CaOH2_grav_GC,c('W_CaOH2_GC',
'W_CaO_GC',
'FD_GC',
'm_muestra_GC',
'R_GC',
'm_final_GC'))
coef.matrix.gravGA <- matrix(nrow = 5, ncol = 6)
for(i in 1:5){
coef.matrix.gravGA[i,] <- c_i_gravGA(W_CaOH2_GA = W_CaOH2$MM,
W_CaC2O4_GA = W_CaC2O4$MM,
FD_GA = 50/5,
m_muestra_GA = masasGA.promedio$masas_corregidasGA[i],
R = 1,
m_final_GA = masasGA.promedio$masa_corregida_CaC2O4[i])
}
coef.matrix.gravGB <- matrix(nrow = 5, ncol = 6)
for(i in 1:5){
coef.matrix.gravGB[i,] <- c_i_gravGB(W_CaOH2_GB = W_CaOH2$MM,
W_CaCO3_GB = W_CaCO3$MM,
FD_GB = 100/10,
m_muestra_GB = masasGB.promedio$masas_corregidasGB[i],
R = 1,
m_final_GB = masasGB.promedio$masa_corregida_CaCO3[i])
}
coef.matrix.gravGC <- matrix(nrow = 5, ncol = 6)
for(i in 1:5){
coef.matrix.gravGC[i,] <- c_i_gravGC(W_CaOH2_GC = W_CaOH2$MM,
W_CaO_GC = W_CaO$MM,
FD_GC = 250/10,
m_muestra_GC = masasGC.promedio$masas_corregidasGC[i],
R = 1,
m_final_GC = masasGC.promedio$masa_corregida_CaO[i])
}
W_CaOH2
## MM u_MM
## 1 58.09335 0.004008732
u_matrix_gravGA <- data.frame(u_W_CaOH2_GA = rep(W_CaOH2$u_MM,5),
u_W_CaC2O4_GA = rep(W_CaC2O4$u_MM,5),
u_FD_GA = masasGA.promedio$u_dilucion,
u_m_muestra_GA = masasGA.promedio$u_masasGA_corregidas,
u_R_GA = masasGA.promedio$u_R,
u_m_final_GA = masasGA.promedio$u_masa_CaC2O4)
u_matrix_gravGB <- data.frame(u_W_CaOH2_GB = rep(W_CaOH2$u_MM,5),
u_W_CaCO3_GB = rep(W_CaCO3$u_MM,5),
u_FD_GB = masasGB.promedio$u_dilucion,
u_m_muestra_GB = masasGB.promedio$u_masasGB_corregidas,
u_R_GB = masasGB.promedio$u_R,
u_m_final_GB = masasGB.promedio$u_masa_CaCO3)
u_matrix_gravGC <- data.frame(u_W_CaOH2_GC = rep(W_CaOH2$u_MM,5),
u_W_CaO_GC = rep(W_CaO$u_MM,5),
u_FD_GC = masasGC.promedio$u_dilucion,
u_m_muestra_GC = masasGC.promedio$u_masasGC_corregidas,
u_R_GC = masasGC.promedio$u_R,
u_m_final_GC = masasGC.promedio$u_masa_CaO)
Teniendo las dos matrices, una de coeficientes de sensibilidad y otra de incertidumbres, podemos calcular el valor de incertidumbre combinada para cada uno de los 9 grupos de laboratorio, y guardarla cada posición del vector u_c_grav.
u_c_gravGA <- vector('numeric', 5)
# Ahora, se calcula fila por fila, la incertidumbre combinada
for(i in 1:5){
u_c_gravGA[i] <- sqrt(sum((coef.matrix.gravGA[i,]*u_matrix_gravGA[i,])^2))
}
u_c_gravGB <- vector('numeric', 5)
for(i in 1:5){
u_c_gravGB[i] <- sqrt(sum((coef.matrix.gravGB[i,]*u_matrix_gravGB[i,])^2))
}
u_c_gravGC <- vector('numeric', 5)
for(i in 1:5){
u_c_gravGC[i] <- sqrt(sum((coef.matrix.gravGC[i,]*u_matrix_gravGC[i,])^2))
}
k=2
U_gravGA=k*u_c_gravGA
U_gravGB=k*u_c_gravGB
U_gravGC=k*u_c_gravGC
contribuciones.gravGA <- matrix(nrow = 5, ncol = 6)
for(i in 1:5){
for(j in 1:6){
contribuciones.gravGA[i,j] <- ((coef.matrix.gravGA[i,j]*u_matrix_gravGA[i,j])^2)/u_c_gravGA[i]^2
}
}
colnames(contribuciones.gravGA) <- colnames(u_matrix_gravGA)
contribuciones.gravGB <- matrix(nrow = 5, ncol = 6)
for(i in 1:5){
for(j in 1:6){
contribuciones.gravGB[i,j] <- ((coef.matrix.gravGB[i,j]*u_matrix_gravGB[i,j])^2)/u_c_gravGB[i]^2
}
}
colnames(contribuciones.gravGB) <- colnames(u_matrix_gravGB)
contribuciones.gravGC <- matrix(nrow = 5, ncol = 6)
for(i in 1:5){
for(j in 1:6){
contribuciones.gravGC[i,j] <- ((coef.matrix.gravGC[i,j]*u_matrix_gravGC[i,j])^2)/u_c_gravGC[i]^2
}
}
colnames(contribuciones.gravGC) <- colnames(u_matrix_gravGC)
par(las=2)
par(mfrow = c(2,5))
for(i in 1:5){
barplot(contribuciones.gravGA[i,]*100,
xlab="(%)",
ylab=" ",
main= paste('contribuciones #', as.character(c(1:5))[i]),
horiz =T)
}
for(i in 1:5){
barplot(contribuciones.gravGB[i,]*100,
xlab="(%)",
ylab=" ",
main= paste('contribuciones #', as.character(c(1:5))[i]),
horiz =T)
}
for(i in 1:5){
barplot(contribuciones.gravGC[i,]*100,
xlab="(%)",
ylab=" ",
main= paste('contribuciones #', as.character(c(1:5))[i]),
horiz =T)
}
Primero, se calcula las concentraciones de cada una de las muestras, a partir de los volumenes promediados:
concentraciones_gravGA <- vector('numeric', 5)
for (i in 1:5){
concentraciones_gravGA[i] <- CaOH2_grav_GA(W_CaOH2_GA = W_CaOH2$MM,
W_CaC2O4 = W_CaC2O4$MM,
FD_GA = 50/5,
m_muestra_GA = masasGA.promedio$masas_corregidasGA[i],
R = 1,
m_final_GA = masasGA.promedio$masa_corregida_CaC2O4[i])
}
mesurando.grav_GA <- data.frame(`CaOH2_grav_GA` = concentraciones_gravGA, `U_gravGA`)
colnames(mesurando.grav_GA) <- c('CaOH2_(%p.pGA)',"U_GA")
knitr::kable(mesurando.grav_GA)
| CaOH2_(%p.pGA) | U_GA |
|---|---|
| 28.94964 | 0.2513558 |
| 26.53087 | 0.2428997 |
| 30.37318 | 0.2565068 |
| 30.08344 | 0.2554360 |
| 29.39056 | 0.2529257 |
concentraciones_gravGB <- vector('numeric', 5)
for (i in 1:5){
concentraciones_gravGB[i] <- CaOH2_grav_GB(W_CaOH2_GB = W_CaOH2$MM,
W_CaCO3 = W_CaCO3$MM,
FD_GB = 100/10,
m_muestra_GB = masasGB.promedio$masas_corregidasGB[i],
R = 1,
m_final_GB = masasGB.promedio$masa_corregida_CaCO3[i])
}
mesurando.grav_GB <- data.frame(`CaOH2_grav_GB` = concentraciones_gravGB, `U_gravGB`)
colnames(mesurando.grav_GB) <- c('CaOH2_(%p.pGB)',"U_GB")
knitr::kable(mesurando.grav_GB)
| CaOH2_(%p.pGB) | U_GB |
|---|---|
| 26.86902 | 0.3636669 |
| 27.38480 | 0.3674555 |
| 29.38346 | 0.3824322 |
| 31.91401 | 0.4020000 |
| 28.51307 | 0.3758541 |
concentraciones_gravGC <- vector('numeric', 5)
for (i in 1:5){
concentraciones_gravGC[i] <- CaOH2_grav_GC(W_CaOH2_GC = W_CaOH2$MM,
W_CaO = W_CaO$MM,
FD_GC = 250/10,
m_muestra_GC = masasGC.promedio$masas_corregidasGC[i],
R = 1,
m_final_GC = masasGC.promedio$masa_corregida_CaO[i])
}
mesurando.grav_GC <- data.frame(`CaOH2_grav_GC` = concentraciones_gravGC, `U_gravGC`)
colnames(mesurando.grav_GC) <- c('CaOH2_(%p.pGC)',"U_GC")
knitr::kable(mesurando.grav_GC)
| CaOH2_(%p.pGC) | U_GC |
|---|---|
| 25.60529 | 0.4438136 |
| 17.75108 | 0.4418962 |
| 31.58945 | 0.4457369 |
| 31.33052 | 0.4456601 |
| 35.07061 | 0.4470445 |
GD: Temperatura de calcincación: 500 °C. Especie de calcio: \(CaCO_{3}\)
protocoloGD
## # A tibble: 15 x 13
## ...1 id `masa muestra` `balanza muestr~ `volumen aforo` `masa alicuota`
## <dbl> <chr> <dbl> <chr> <dbl> <dbl>
## 1 1 116d 1.20 ME204 0.1 10.0
## 2 2 117d 1.20 ME204 0.1 10.0
## 3 3 118d 1.20 ME204 0.1 10.0
## 4 4 119d 1.20 ME204 0.1 10.0
## 5 5 120d 1.20 ME204 0.1 10.0
## 6 6 116d 1.20 ME204 0.1 10.0
## 7 7 117d 1.20 ME204 0.1 10.0
## 8 8 118d 1.20 ME204 0.1 10.0
## 9 9 119d 1.20 ME204 0.1 10.0
## 10 10 120d 1.20 ME204 0.1 10.0
## 11 11 116d 1.20 ME204 0.1 10.0
## 12 12 117d 1.20 ME204 0.1 10.0
## 13 13 118d 1.20 ME204 0.1 10.0
## 14 14 119d 1.20 ME204 0.1 10.0
## 15 15 120d 1.20 ME204 0.1 10.0
## # ... with 7 more variables: `clase pipeta` <chr>, `clase bureta` <chr>,
## # `temperatura calcinado` <dbl>, `balanza calcinado` <chr>, `volumen
## # EDTA` <chr>, `masas finales` <dbl>, `replica 2` <dbl>
# Modelo para el protocolo GD
CaOH2_grav_GD <- function(W_CaOH2_GD,
W_CaCO3_GD,
FD_GD,
m_muestra_GD,
R_GD,
m_final_GD)
{
( m_final_GD * W_CaOH2_GD * FD_GD * 100 * R_GD )/ (W_CaCO3_GD * m_muestra_GD)
}
Para el caso de este protocolo el factor de dilución no es von volumen sino con masa, en este caso se toman alícuotas de aproximadamente 10 g de un balón aforado de 100 mL que pesó 110.1023g.
FD = 100.1023/mean(protocoloGD$`masa alicuota`)
FD
## [1] 10.0099
# GD SE CALCINARON A 500 °. En forma de CaCO3
masasGD1 <- filter(protocoloGB, replicas ==1) %>% select( `masas finales`)%>% unlist()
masasGD2 <- filter(protocoloGB, replicas ==2) %>% select( `masas finales`)%>% unlist()
masasGD3 <- filter(protocoloGB, replicas ==3) %>% select( `masas finales`)%>% unlist()
masasGD1 <- as.numeric(masasGD1)
masasGD2 <- as.numeric(masasGD2)
masasGD3<- as.numeric(masasGD3)
masasGD.promedio.CaCO3 <- (masasGD1+masasGD2+masasGD3)/3
sd.masaGD <- vector('numeric',5)
for(i in 1:5){
sd.masaGD[i] <- sd(c(masasGD1[i],masasGD2[i],masasGD3[i]))
}
sd.masaGD
## [1] 5.773503e-05 5.773503e-05 5.773503e-05 0.000000e+00 5.773503e-05
masasGD.promedio <- data.frame(masasGD.promedio.CaCO3 = masasGD.promedio.CaCO3)
masa_corregida_CaCO3_GD <- vector('list',5)
for (i in 1:5) {
masa_corregida_CaCO3_GD[[i]] <- u_masa( masasGD.promedio$masasGD.promedio.CaCO3[i],
densidad = 2710,
balanza= 'ME204')$m_s$ms
}
masasGD.promedio$masa_corregida_CaCO3_GD <- unlist(masa_corregida_CaCO3_GD)
u_masa_CaCO3_GD <- vector('list',5)
for(i in 1:5){
u_masa_CaCO3_GD[[i]] <- u_masa(lectura = masasGD.promedio$masasGD.promedio.CaCO3[i],
densidad = 2710,
balanza= 'ME204')$m_s$u_ms
}
masasGD.promedio$u_masa_CaCO3_GD <- unlist(u_masa_CaCO3_GD)
W_CaOH2
## MM u_MM
## 1 58.09335 0.004008732
W_CaCO3
## MM u_MM
## 1 100.0868 0.004091947
masasGD.promedio$u_W_CaCO3 <- W_CaCO3$u_MM
masasGD.promedio$u_W_CaOH2 <- W_CaOH2$u_MM
Para hallar la incertidumbre del factor de dilución se va a hallar la incertidumbre asociada a la medición de la masa tanto para la alícuota como para la masa del balón, y luego se hará suma de cuadrados para la incertidumbre del factor de dilución.
promedio_masa_alicuota <- mean(protocoloGD$`masa alicuota`)
promedio_masa_alicuota
## [1] 10.00033
masas.alicuota.corregidasGD <- vector('numeric',5)
u_masas_alicuotaGD <- vector('numeric',5)
for(i in 1:5){
masas.alicuota.corregidasGD[i] <- u_masa(lectura=promedio_masa_alicuota,
densidad = 2211,
balanza = "ME204")$m_s$ms
}
for(i in 1:5){
u_masas_alicuotaGD[i] <- u_masa(lectura=promedio_masa_alicuota,
densidad = 2211,
balanza = "ME204")$m_s$u_ms
}
masa.balon.corregidaGD <- vector('numeric',5)
u_masa_balonGD <- vector('numeric',5)
for(i in 1:5){
masa.balon.corregidaGD[i] <- u_masa(lectura=110.1023,
densidad = 2211,
balanza = "ME204")$m_s$ms
}
for(i in 1:5){
u_masa_balonGD[i] <- u_masa(lectura=110.1023,
densidad = 2211,
balanza = "ME204")$m_s$u_ms
}
u_dilucionGD <- sqrt(u_masas_alicuotaGD^2 + u_masa_balonGD^2)
masasGD.promedio$u_dilucionGD <- u_dilucionGD
promedioGD <- mean(protocoloGD$`masa muestra`)
promedioGD
## [1] 1.20012
masas.corregidasGD <- vector('numeric',5)
u_masasGD <- vector('numeric',5)
for(i in 1:5){
masas.corregidasGD[i] <- u_masa(lectura=promedioGD,
densidad = 2211,
balanza = "ME204")$m_s$ms
}
masasGD.promedio$masas_corregidasGD <- masas.corregidasGD
for(i in 1:5){
u_masasGD[i] <- u_masa(lectura=promedioGD,
densidad = 2211,
balanza = "ME204")$m_s$u_ms
}
masasGD.promedio$u_masasGD_corregidas <- u_masasGD
masasGD.promedio$u_R <- sd.masaGD/sqrt(1)
R = 1
library(Deriv)
c_i_gravGD = Deriv(CaOH2_grav_GD,c('W_CaOH2_GD',
'W_CacO3_GD',
'FD_GD',
'm_muestra_GD',
'R_GD',
'm_final_GD'))
coef.matrix.gravGD<- matrix(nrow = 5, ncol = 6)
for(i in 1:5){
coef.matrix.gravGD[i,] <- c_i_gravGD(W_CaOH2_GD = W_CaOH2$MM,
W_CaCO3_GD = W_CaCO3$MM,
FD_GD = 100.1023/10.00033,
m_muestra_GD = masasGD.promedio$masas_corregidasGD[i],
R = 1,
m_final_GD = masasGD.promedio$masa_corregida_CaCO3[i])
}
u_matrix_gravGD <- data.frame(u_W_CaOH2_GD = rep(W_CaOH2$u_MM,5),
u_W_CaCO3_GD = rep(W_CaCO3$u_MM,5),
u_FD_GD = masasGD.promedio$u_dilucion,
u_m_muestra_GD = masasGD.promedio$u_masasGD_corregidas,
u_R_GD = masasGD.promedio$u_R,
u_m_final_GD = masasGD.promedio$u_masa_CaCO3)
Teniendo las dos matrices, una de coeficientes de sensibilidad y otra de incertidumbres, podemos calcular el valor de incertidumbre combinada para cada muestra, y guardarla cada posición del vector u_c_grav.
u_c_gravGD <- vector('numeric', 5)
for(i in 1:5){
u_c_gravGD[i] <- sqrt(sum((coef.matrix.gravGD[i,]*u_matrix_gravGD[i,])^2))
}
k=2
U_gravGD=k*u_c_gravGD
contribuciones.gravGD <- matrix(nrow = 5, ncol = 6)
for(i in 1:5){
for(j in 1:6){
contribuciones.gravGD[i,j] <- ((coef.matrix.gravGD[i,j]*u_matrix_gravGD[i,j])^2)/u_c_gravGD[i]^2
}
}
colnames(contribuciones.gravGD) <- colnames(u_matrix_gravGD)
par(las=2)
par(mfrow = c(1,5))
for(i in 1:5){
barplot(contribuciones.gravGD[i,]*100,
xlab="(%)",
ylab=" ",
main= paste('contribuciones #', as.character(c(1:5))[i]),
horiz =T)
}
concentraciones_gravGD <- vector('numeric', 5)
for (i in 1:5){
concentraciones_gravGD[i] <- CaOH2_grav_GD(W_CaOH2_GD = W_CaOH2$MM,
W_CaCO3 = W_CaCO3$MM,
FD_GD = 100.1023/10.00033,
m_muestra_GD = masasGD.promedio$masas_corregidasGD[i],
R = 1,
m_final_GD = masasGD.promedio$masa_corregida_CaCO3[i])
}
mesurando.grav_GD <- data.frame(`CaOH2_grav_GD` = concentraciones_gravGD, `U_gravGD`)
colnames(mesurando.grav_GD) <- c('CaOH2_(%p.pGD)',"U_GD")
knitr::kable(mesurando.grav_GD)
| CaOH2_(%p.pGD) | U_GD |
|---|---|
| 26.89905 | 0.2473291 |
| 27.41541 | 0.2473482 |
| 29.41630 | 0.2474255 |
| 31.94969 | 0.2475037 |
| 28.54495 | 0.2473912 |
Finalmente, se pueden unir por columnas los objetos de los mesurandos tanto para volumetría como para gravimetría. Para esto se utiliza la función cbind.
tabla.final <- cbind(mesurando.volumenVA, mesurando.volumenVB, mesurando.volumenVC, mesurando.grav_GA, mesurando.grav_GB, mesurando.grav_GC, mesurando.grav_GD)
knitr::kable(tabla.final)
| CaOH2_(%p.pVA) | U_VA | CaOH2_(%p.pVB) | U_VB | CaOH2_(%p.pVC) | U_VC | CaOH2_(%p.pGA) | U_GA | CaOH2_(%p.pGB) | U_GB | CaOH2_(%p.pGC) | U_GC | CaOH2_(%p.pGD) | U_GD |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 29.71557 | 1.0041885 | 29.34715 | 1.053831 | 30.14110 | 1.040417 | 28.94964 | 0.2513558 | 26.86902 | 0.3636669 | 25.60529 | 0.4438136 | 26.89905 | 0.2473291 |
| 29.34764 | 0.9917548 | 29.34715 | 1.053831 | 29.62794 | 1.023831 | 26.53087 | 0.2428997 | 27.38480 | 0.3674555 | 17.75108 | 0.4418962 | 27.41541 | 0.2473482 |
| 29.83176 | 1.0081150 | 29.27937 | 1.051547 | 29.67635 | 1.025394 | 30.37318 | 0.2565068 | 29.38346 | 0.3824322 | 31.58945 | 0.4457369 | 29.41630 | 0.2474255 |
| 29.75430 | 1.0054974 | 29.47302 | 1.058072 | 29.52143 | 1.020394 | 30.08344 | 0.2554360 | 31.91401 | 0.4020000 | 31.33052 | 0.4456601 | 31.94969 | 0.2475037 |
| 29.21208 | 0.9871739 | 29.65698 | 1.064274 | 29.78286 | 1.028838 | 29.39056 | 0.2529257 | 28.51307 | 0.3758541 | 35.07061 | 0.4470445 | 28.54495 | 0.2473912 |