# Argumentos para uma função
args(curve)
function (expr, from = NULL, to = NULL, n = 101, add = FALSE,
type = "l", xname = "x", xlab = xname, ylab = NULL, log = NULL,
xlim = NULL, ...)
NULL
\[\begin{equation} pH = pKa + log\frac{[A^-]}{[HA]} \label{hender-hassel} \end{equation}\]
\[\begin{equation} fa+fb=1 \label{frac-tit} \end{equation}\]
\[\begin{equation} pH = pKa + log\frac{fb}{1-fb} \label{HH-frac} \end{equation}\]
A partir dessa dedução, pode-se facilmente relacionar que:
\[\begin{equation} fb = \frac{10^{(pH-pKa)}} {1+10^{(pH-pKa)}} \label{HH-fb} \end{equation}\]
E, da mesma forma, pode-se encontrar fa como
\[\begin{equation} fa = 1- fb \label{HH-fb2} \end{equation}\]
Resultando em
\[\begin{equation} fa = \frac{1}{1+10^{(pH-pKa)}} \label{eq-HH-fa} \end{equation}\]
curve
a partir de seus argumentos (args
), como segue:# Argumentos para uma função
args(curve)
function (expr, from = NULL, to = NULL, n = 101, add = FALSE,
type = "l", xname = "x", xlab = xname, ylab = NULL, log = NULL,
xlim = NULL, ...)
NULL
Ou, de forma mais simples:
# Curva de titulação para o sistema acetato/ácido acético
= 4.75
pKa curve((1/(1 + 10^(x - pKa))), 0, 14)
# Curva de titulação para o sistema acetato/ácido acético
= 4.75
pKa curve(((10^(x - pKa))/(1 + 10^(x - pKa))), 0, 14)
\[\begin{equation} fa = \frac{1}{1+10^{(pH-pKa1)}}+ \frac{1}{1+10^{(pH-pKa2)}} \label{HHbic} \end{equation}\]
Assim,
= 6.37
pKa1 = 10.2
pKa2 curve((1/(1 + 10^(x - pKa1))) + 1/(1 + 10^(x - pKa2)), 0, 14)
dev.copy
:dev.copy(pdf, "titBicarb.pdf", width = 6, height = 3) # alternativamente, bmp,
# jpeg, tiff, svg, png
curve
acima, e da flexibilidade que o pacote interno Graphics do R possibilita, pode-se elaborar uma curva mais complexa, como segue:= 6.37
pKa1 = 10.2
pKa2 curve((1/(1 + 10^(x - pKa1))) + 1/(1 + 10^(x - pKa2)), 0, 14, xlab = "pH", ylab = "fa",
main = "Titulação de Ácido carbônico, H2CO3/HCO3-", type = "o", n = 50, lwd = 2,
lty = "dotted", pch = 3, col = "blue", cex = 1.2) # gráfico de titulação
text(4.7, 1.3, "pKa = 6,37") # inserção de texto no gráfico
text(9, 0.3, "pKa = 10,20")
abline(0.5, 0, lty = "dotted") # linha pontilhada em intercepto
# e inclinação específicos
abline(1.5, 0, lty = "dotted")
locator()
. Como trata-se de um ponto apenas no gráfico, basta digitar o código locator(1)
e clicar com o botão esquerdo do mouse no ponto da curva correpondente à fração de 0,5 para fa.locator(1) # para mais pontos no gráfico, basta aumentar o valor entre parênteses
\[\begin{equation} fa = \frac{1}{1+10^{(pH-pKa1)}}+ \frac{1}{1+10^{(pH-pK2)}}+\frac{1}{1+10^{(pH-pKa3)}} \label{eq-HHfosf} \end{equation}\]
No R isso pode ser feito como abaixo: \(\eqref{eq-HHfosf}\)
= 2.2
pKa1 = 7.2
pKa2 = 12.7
pKa3
curve((1/(1 + 10^(x - pKa1))) + (1/(1 + 10^(x - pKa2))) + (1/(1 + 10^(x - pKa3))),
xlim = c(1, 14), xlab = "pH", ylab = "fa", main = "Titulação de tampão fosfato",
sub = " As linhas pontilhadas cruzam os valores de pKa")
abline(v = c(2.2, 7.2, 12.7), col = c("blue", "red", "green"), lty = "dotted") # adição de
# linhas verticais marcando os valores de pKa
text(1.6, 2.5, "pKa1")
text(6.5, 1.5, "pKa2")
text(11.8, 0.5, "pKa3")
<- function( arg1, arg2, arg3 )
função.X
{
comandos de execuçãoreturn( objeto da função )
}
# Função para conversão de graus Celsius a Kelvin
<- function(tC) {
CtoK <- tC + 273.15
tK return(tK)
}
# Executando CtoK:
CtoK(37)
[1] 310.15
Definir uma função do R que contenha os parâmetros e a operação desejada.
Incluir na função uma estrutura de laço ou loop que permita repetir a operação até exaurido o número de prótons do composto.
Definir um vetor do R contendo os valores dos pKas do composto.
Definir a expressão de curva que viabilize a simulação.
Abaixo é apresentado um modelo de código que permite a simulação para o tampão fosfato.
# Define função e plot de titulação
= function(pH, pKa) {
fa = 0
x for (i in 1:length(pKa)) {
= x + 1/(1 + 10^(pH - pKa[i]))
x
}return(x)
}= c(2.2, 7.2, 12.7)
pKa curve(fa(x, pKa), 1, 14, xlab = "pH", ylab = "fa", col = 2)
Obs: o valor de pKa do sistema bicarbonato é de 6,8 quando considerado o \(CO_2\) como fonte de ácido carbônico \(H_2CO_3\) em sua reação com \(H_2O\), como por exemplo, para determinação de parâmetros arteriais em analisador hospitalar (\(CO_2\), \(HCO_3^-\), \(O_2\)).↩︎