mydata <- read.csv("Titration Trial 1.csv", header = TRUE, )
mydata
## Volume.of.NaOH..ml. pH X
## 1 0.00 3.17 NA
## 2 1.00 3.47 NA
## 3 2.00 3.47 NA
## 4 3.00 3.90 NA
## 5 4.00 4.06 NA
## 6 5.00 4.18 NA
## 7 6.00 4.27 NA
## 8 7.00 4.37 NA
## 9 8.00 4.47 NA
## 10 8.45 4.49 NA
## 11 9.00 4.54 NA
## 12 9.60 4.61 NA
## 13 10.00 4.64 NA
## 14 11.00 4.71 NA
## 15 12.00 4.80 NA
## 16 13.00 4.88 NA
## 17 14.00 4.97 NA
## 18 14.50 5.03 NA
## 19 14.90 5.06 NA
## 20 15.10 5.08 NA
## 21 15.20 5.08 NA
## 22 15.60 5.12 NA
## 23 16.10 5.19 NA
## 24 16.60 5.25 NA
## 25 17.00 5.32 NA
## 26 17.50 5.40 NA
## 27 18.10 5.50 NA
## 28 18.50 5.59 NA
## 29 19.10 5.74 NA
## 30 19.50 5.86 NA
## 31 20.00 6.39 NA
## 32 21.10 9.55 NA
## 33 21.50 10.51 NA
## 34 22.00 10.89 NA
## 35 25.00 11.50 NA
# data(package = .packages(all.available = TRUE))
volume<-mydata$Vol ## volume vector
pH<-mydata$pH ## pH vector
plot(volume,pH, xlab= "Volume (mL)", ylab= "pH", main= "Titration", xlim=c(0,25),ylim=c(3,12))

OH<-0.1 ## [Base]
OH
## [1] 0.1
Veq<-21.5
Veq
## [1] 21.5
H <- 10^(-pH)
H
## [1] 6.760830e-04 3.388442e-04 3.388442e-04 1.258925e-04 8.709636e-05
## [6] 6.606934e-05 5.370318e-05 4.265795e-05 3.388442e-05 3.235937e-05
## [11] 2.884032e-05 2.454709e-05 2.290868e-05 1.949845e-05 1.584893e-05
## [16] 1.318257e-05 1.071519e-05 9.332543e-06 8.709636e-06 8.317638e-06
## [21] 8.317638e-06 7.585776e-06 6.456542e-06 5.623413e-06 4.786301e-06
## [26] 3.981072e-06 3.162278e-06 2.570396e-06 1.819701e-06 1.380384e-06
## [31] 4.073803e-07 2.818383e-10 3.090295e-11 1.288250e-11 3.162278e-12
Vi<-25 ## Initial volume
Vi
## [1] 25
fb<-1-(OH*volume+H*(Vi+volume))/(OH*Veq)
fb
## [1] 9.921386e-01 9.493907e-01 9.027215e-01 8.588256e-01 8.127787e-01
## [6] 7.665200e-01 7.201559e-01 6.737837e-01 6.273869e-01 6.064733e-01
## [11] 5.809393e-01 5.530933e-01 5.345108e-01 4.880456e-01 4.415877e-01
## [16] 3.951158e-01 3.486428e-01 3.254099e-01 3.068151e-01 2.975193e-01
## [21] 2.928677e-01 2.742754e-01 2.510394e-01 2.277982e-01 2.092088e-01
## [26] 1.859678e-01 1.580761e-01 1.394829e-01 1.115906e-01 9.299469e-02
## [31] 6.975892e-02 1.860465e-02 -6.683663e-10 -2.325581e-02 -1.627907e-01
plot(pH,fb,main="Fraction Bound vs pH",xlab = "pH",xlim = c(3,7.11),ylab = "Fraction Bound")
tryfit <- nls(fb ~ H/(Kd+H), start=c(Kd = 0.0001))
summary(tryfit)
##
## Formula: fb ~ H/(Kd + H)
##
## Parameters:
## Estimate Std. Error t value Pr(>|t|)
## Kd 1.983e-05 6.310e-07 31.43 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.03253 on 34 degrees of freedom
##
## Number of iterations to convergence: 6
## Achieved convergence tolerance: 3.333e-07
lines(pH, predict(tryfit), col="hotpink")
