Abstract

The purpose of this paper is to use titration curve and binding curve analysis to determine the ka values of a monoprotic and a diprotic acid. By plotting pH against titrant volume, Ka values can be derived. Subsequently, this data is converted into binding curves, allowing us to compare Ka values determined through both methods. Both forms of analysis, however, have their own flaws. Titration curve analysis, though straightforward, is time consuming and is not precise in its determination of the ka value. Binding curve analysis provides a more accurate determination of ka, however, is very complex and follows the assumption of a 1:1 binding stoichiometry which may not always hold true. Converting the titration curves for both monoprotic and diprotic acids into binding curves, we determined Ka values. For oxalic acid dihydrate, the lab- determined Ka values differed from those derived from binding curve analysis. Both forms of analysis proved to be inaccurate, each yielding a high error value.

Introduction

Throughout this course, we have completed a variety of projects that have allowed us to analyze experimental data in different ways. For example, the Gaussian project served to analyze data that follows a random distribution curve. By plotting a Gaussian distribution curve and performing a t-test, we were able to determine whether or not the two data sets were significantly different. The linear regression project allowed us to analyze data that follows a linear model. Using the linear model, we created a line of best fit and determined the values of the y-intercept and the slope. The purpose of this paper is to use titration curve and binding curve analysis to determine the ka values of a monoprotic and a diprotic acid. Potentiometric titration is a form of titration that monitors a solution’s pH throughout the titration process. A diprotic acid is a type of acid that donates two protons. Unlike monoprotic acids, diprotic acids will have two Ka values, signifying the dissociation of each proton. By plotting the graph of pH vs Volume of titrant, in this case NaOH, we can determine the ka values of the monoprotic and diprotic acids. We will then convert this data into a binding curve and compare the ka values to those determined from the titration curve.

Monoprotic Acid Analysis

Titration typically uses a commercial standard solution of sodium hydroxide which contains impurities and easily absorbs carbon dioxide and water. During titration, Sodium hydroxide reacts with the acid and dissociates into OH-. The acid, a proton donor, releases H+ ions which react with the OH- ions to form H2O. As more NaOH is added, the acid neutralizes and the equivalence point is reached.

mydata <- read.csv("Monoprotic Data.csv")

mydata
##       pH Volume.NaOH
## 1  3.000         0.0
## 2  3.440         2.0
## 3  3.770         4.0
## 4  4.020         6.0
## 5  4.210         8.0
## 6  4.390        10.0
## 7  4.600        12.0
## 8  4.800        14.0
## 9  5.060        16.0
## 10 5.120        16.5
## 11 5.200        17.0
## 12 5.310        17.5
## 13 5.440        18.0
## 14 5.550        18.5
## 15 5.710        19.0
## 16 6.060        19.5
## 17 6.280        20.0
## 18 7.170        20.5
## 19 7.480        20.6
## 20 7.981        20.7
## 21 8.693        20.9
pH <- read.csv("Monoprotic Data.csv")

Vol <- read.csv("Monoprotic Data.csv")

length(Vol)
## [1] 2
VolVect <- Vol$Vol
#this extracts a vector from dataframe column

length(VolVect)
## [1] 21
pHVect <- pH$pH

length(pHVect)
## [1] 21
plot(VolVect,pHVect, main= "Monoprotic Acid Titration Curve")
 Figure 1: Titration Curve of Monoprotic Acid Using Potentiometric Titration

Figure 1: Titration Curve of Monoprotic Acid Using Potentiometric Titration

To convert the monoprotic acid titration curve, shown above, into a binding curve, we used the equation \(F=\frac {H}{H+KD}\). This equation allowed us to determine the fraction bound, F, for each data point. By plotting F against pH, we get a binding curve that allows us to determine the ka value for the monoprotic acid, which in this case was acetic acid.

H <- 10^-(pHVect)

VE <- 20.2 #Volume of NaOH added at Endpoint (mL)

VI <- 25 #Initial Volume of Unknown Acid (mL)

CB <- 0.10 #Concentration of the Base NaOH

CB
## [1] 0.1
VA <- VolVect

F <- (1-(((VA*CB)+((H)*(VI+VA)))/(VE*CB))) #Fraction Bound for Each Data Point

tF <- F

length(pHVect)
## [1] 21
length(F)
## [1] 21
tryfit <- nls(F ~ H/(KD+H), start = c(KD=0.0001))

tryfit
## Nonlinear regression model
##   model: F ~ H/(KD + H)
##    data: parent.frame()
##       KD 
## 3.75e-05 
##  residual sum-of-squares: 0.006598
## 
## Number of iterations to convergence: 6 
## Achieved convergence tolerance: 1.33e-06
length((predict(tryfit)))
## [1] 21
plot(pHVect,F, main = "Monoprotic Binding Curve")

lines(pHVect,predict(tryfit),col="blue")
 Figure 2: Binding Curve of Monoprotic Acid Using Potentiometric Titration

Figure 2: Binding Curve of Monoprotic Acid Using Potentiometric Titration

Titration curve analysis involves the addition of a titrant to a solution until the endpoint is reached. This endpoint is then used to determine the ka value(s) for the acid. While titration curve analysis is a straightforward approach, it is time consuming and is not precise in its determination of the ka value. Binding curve analysis provides a more accurate determination of ka, however, is very complex and follows the assumption of a 1:1 binding stoichiometry which is not seen in every reaction.

Diprotic Acid Analysis

mydata <- read.csv("Diprotic Data.csv")

mydata
##      pH Volume
## 1  1.82  0.000
## 2  1.82  0.005
## 3  1.81  0.010
## 4  1.81  0.023
## 5  1.80  0.054
## 6  1.80  0.132
## 7  1.80  0.328
## 8  1.81  0.528
## 9  1.81  0.728
## 10 1.82  0.928
## 11 1.83  1.128
## 12 1.84  1.328
## 13 1.86  1.528
## 14 1.87  1.728
## 15 1.89  1.928
## 16 1.90  2.128
## 17 1.92  2.328
## 18 1.94  2.528
## 19 1.96  2.728
## 20 1.99  2.928
## 21 2.01  3.129
## 22 2.03  3.329
## 23 2.06  3.529
## 24 2.09  3.729
## 25 2.12  3.929
## 26 2.15  4.129
## 27 2.19  4.329
## 28 2.23  4.529
## 29 2.28  4.729
## 30 2.33  4.929
## 31 2.39  5.129
## 32 2.45  5.329
## 33 2.52  5.529
## 34 2.60  5.729
## 35 2.67  5.929
## 36 2.77  6.129
## 37 2.85  6.329
## 38 2.97  6.529
## 39 3.07  6.729
## 40 3.15  6.929
## 41 3.25  7.129
## 42 3.33  7.329
## 43 3.39  7.529
## 44 3.48  7.729
## 45 3.54  7.929
## 46 3.61  8.129
## 47 3.67  8.329
## 48 3.73  8.529
## 49 3.79  8.729
## 50 3.85  8.929
## 51 3.91  9.129
## 52 3.96  9.329
## 53 4.02  9.529
## 54 4.07  9.730
## 55 4.14  9.930
## 56 4.19 10.130
## 57 4.26 10.330
## 58 4.32 10.530
## 59 4.39 10.730
## 60 4.46 10.930
## 61 4.54 11.130
## 62 4.62 11.330
## 63 4.72 11.530
## 64 4.83 11.730
## 65 4.96 11.930
## 66 5.12 12.130
## 67 5.30 12.330
## 68 5.53 12.521
## 69 5.67 12.638
## 70 5.81 12.788
## 71 5.93 12.988
## 72 6.05 13.188
## 73 6.22 13.388
## 74 6.49 13.588
## 75 6.69 13.677
## 76 6.90 13.728
## 77 7.01 13.751
## 78 7.06 13.783
## 79 7.34 13.864
## 80 7.54 13.890
## 81 7.57 13.901
## 82 7.73 13.929
## 83 7.84 13.943
## 84 7.96 13.962
## 85 8.09 13.998
## 86 8.38 14.084
## 87 8.65 14.139
## 88 8.83 14.166
## 89 8.86 14.184
## 90 8.98 14.230
## 91 9.08 14.278
pH <- read.csv("Diprotic Data.csv")

Vol <- read.csv("Diprotic Data.csv")

length(Vol)
## [1] 2
VolVect <- Vol$Volume #this extracts a vector from dataframe column

length(VolVect)
## [1] 91
pHVect <- pH$pH

length(pHVect)
## [1] 91
plot(VolVect,pHVect, main = "Diprotic Acid Titration Curve")
 Figure 3: Titration Curve of Diprotic Acid Using Auto-Potentiometric Titration

Figure 3: Titration Curve of Diprotic Acid Using Auto-Potentiometric Titration

To convert the diprotic acid titration curve, shown above, into a binding curve, we used the equation \(F=\frac{{\left(\frac{H}{{KD1}} + 2 \cdot \frac{{H^2}}{{KD1 \cdot KD2}}\right)}}{{1 + \frac{H}{{KD1}} + \frac{{H^2}}{{KD1 \cdot KD2}}}}\). This equation allowed us to determine the fraction bound, F, for each data point. By plotting F against pH, we get a binding curve that allows us to determine the ka values for the diprotic acid, which in this case was determined to be oxalic acid dihydrate.

H <- 10^-(pHVect)

VE= 7 # volume added at the 1st endpoint
  
VI= 0 # initial volume of unknown acid

CB=0.10 #concentration of the base NaOH

CB
## [1] 0.1
VA <- VolVect

F <- (2-(((VA*CB)+((H)*(VI+VA)))/(VE*CB))) 
# Fraction bound for each data point

tF <- F

length(pHVect)
## [1] 91
length(F)
## [1] 91
library(nls2)
## Loading required package: proto
tryfit <-nls(F ~ (H/KD1 + 2*H^2/(KD1*KD2))/(1+H/KD1 + H^2/(KD1*KD2) ),
             start = c(KD1=0.0001,KD2=0.01))
             
tryfit
## Nonlinear regression model
##   model: F ~ (H/KD1 + 2 * H^2/(KD1 * KD2))/(1 + H/KD1 + H^2/(KD1 * KD2))
##    data: parent.frame()
##       KD1       KD2 
## 4.859e-05 6.326e-03 
##  residual sum-of-squares: 1.163
## 
## Number of iterations to convergence: 7 
## Achieved convergence tolerance: 3.685e-06
length(predict(tryfit))
## [1] 91
plot(pHVect,F, main = "Diprotic Binding Curve")

lines(pHVect,predict(tryfit),col = "blue")
 Figure 4: Binding Curve of Diprotic Acid Using Auto-Potentiometric Titration

Figure 4: Binding Curve of Diprotic Acid Using Auto-Potentiometric Titration

In our experiment, the diprotic acid was determined to be oxalic acid dihydrate, which has a ka1 of 5.6E-02 and a ka2 of 1.5E-04. Using binding curve analysis, we determined ka1 to be 4.859E-05 (100% error) and ka2 to be 6.326E-03(4117% error). These values differ from the lab determined values 9.33E-03 (83% error) and 1.23E-04 (18% error) for ka1 and ka2 respectively. Based on these results, it cannot be determined which of the two methods is most accurate as both have a high error percent.