Abstract

A titration experiment involves slowly adding a base (usually Sodium Chloride or NaOH). A titration curve allows us to see the point in time in which the acid is neutralized by the base during a titration experiment. This is used in many labs in order to determine the the pH of a substance, which then in turn can be used to determine the Ka and pKa which would allow the classification of the substance. This report contains two titration labs done in class, one of a monoprotic acid titrated manually and one containing a diprotic acid titrated with an autotitrator. A monoprotic acid is an acid that only contains and donated one Hydrogen atom (or proton), while a diprotic acid is an acid which donated two protons.

Introduction

In previous projects, i learned how to use R Studio and how to use data aquired to create plots to analyze data. The one i had trouble with the most was the Gaussian project, since it took me a while to get the graph right based on the data, but it also was the project in which i learned the most R. The Monoprotic and Diprotic labs were done in two separate projects, in which we made a graph for the titration curves and the fraction bound. The first experiment consisted of titrating a Standard solution of NaOH in order to determine the pH of the solution, which would then be used to determine the pH of acetic acid. The indicator used was Phenolphthalein, which has a range of 9.0 to 14. This indicator turns a bright purple in that range, and is standard use for many chemistry lab class titration experiments. The second experiment consisted of titrating an unknown diprotic acid, finding the pK and pH and using that to determine the acid being experimented on. Both acids are determined from the pKa values calculated from the lab data. The second experiment consists of titrating an unknown acid using an autotitrator, an advanced technological machine. This unknown was a diprotic acid, which was found to be Malonic Acid, by means of molar mass.

Monoprotic

In analytical chemistry, monoprotic titration is a crucial method for determining the concentrations of acids and bases in various substances. Monoprotic acids, such as acetic acid, nitric acid, and hydrochloric acid, donate only one proton when reacting with a standardized solution of a strong acid or base. This process involves measuring the pH of the solution and tracking the volume of titrant until the equivalence point is reached, indicating the precise balance between the added acid and base. Interestingly, the data collected during titration often shows reduced variation before and after the equivalence point, suggesting a notable presence of sodium hydroxide in the monoprotic acid solution.

mydata <- read.csv("Titration.csv")
mydata
##        pH volume
## 1   0.000   0.00
## 2   3.610   1.00
## 3   3.720   2.00
## 4   3.860   3.00
## 5   3.950   4.00
## 6   4.100   5.00
## 7   4.231   6.00
## 8   4.290   6.75
## 9   4.360   7.50
## 10  4.420   8.50
## 11  4.570   9.40
## 12  4.540  10.40
## 13  4.600  11.40
## 14  4.680  12.40
## 15  4.740  13.40
## 16  4.800  14.40
## 17  4.870  15.40
## 18  4.930  16.40
## 19  5.000  17.40
## 20  5.070  18.40
## 21  5.140  19.40
## 22  5.240  20.40
## 23  5.320  21.40
## 24  5.420  22.40
## 25  5.540  23.40
## 26  5.720  24.40
## 27  5.920  25.40
## 28  6.230  26.40
## 29  6.340  27.10
## 30  6.560  27.35
## 31  6.900  27.60
## 32  7.150  27.70
## 33  7.320  27.80
## 34  7.800  27.90
## 35  8.240  28.00
## 36  8.700  28.10
## 37  9.100  28.20
## 38  9.570  28.30
## 39  9.670  28.40
## 40  9.780  28.50
## 41  9.840  28.60
## 42  9.930  28.70
## 43 10.090  28.80
## 44 10.200  28.90
## 45 10.300  29.00
## 46 11.070  31.00
## 47 11.280  32.00
## 48 11.430  33.00
## 49 11.530  34.00
## 50 11.620  35.00
## 51 11.680  36.00
## 52 11.730  37.00
## 53 11.730  38.00
## 54 11.810  39.00
## 55 11.840  40.00
## 56 11.870  41.00
## 57 11.900  42.00
## 58 11.930  43.00
## 59 11.950  44.00
## 60 11.970  45.00
## 61 11.990  46.00
## 62 12.010  47.00
pH <- mydata$pH

volume <- mydata$volume

volume
##  [1]  0.00  1.00  2.00  3.00  4.00  5.00  6.00  6.75  7.50  8.50  9.40 10.40
## [13] 11.40 12.40 13.40 14.40 15.40 16.40 17.40 18.40 19.40 20.40 21.40 22.40
## [25] 23.40 24.40 25.40 26.40 27.10 27.35 27.60 27.70 27.80 27.90 28.00 28.10
## [37] 28.20 28.30 28.40 28.50 28.60 28.70 28.80 28.90 29.00 31.00 32.00 33.00
## [49] 34.00 35.00 36.00 37.00 38.00 39.00 40.00 41.00 42.00 43.00 44.00 45.00
## [61] 46.00 47.00
pH
##  [1]  0.000  3.610  3.720  3.860  3.950  4.100  4.231  4.290  4.360  4.420
## [11]  4.570  4.540  4.600  4.680  4.740  4.800  4.870  4.930  5.000  5.070
## [21]  5.140  5.240  5.320  5.420  5.540  5.720  5.920  6.230  6.340  6.560
## [31]  6.900  7.150  7.320  7.800  8.240  8.700  9.100  9.570  9.670  9.780
## [41]  9.840  9.930 10.090 10.200 10.300 11.070 11.280 11.430 11.530 11.620
## [51] 11.680 11.730 11.730 11.810 11.840 11.870 11.900 11.930 11.950 11.970
## [61] 11.990 12.010
plot(volume , pH, main = "titration curve", xlab = "volume" , ylab ="pH")

#binding curve for data
H <- 10^-(pH)
CB <- 0.01
Vadd <- volume
Vini <- 25 #intial volume of base
Vend <- 19.5

Equation

\(Fb = \frac {H}{H+KD}\) This equation represents the fundamental relationship between the dissociation constant (KD) and the number of protons (H), serving as the basis for understanding binding interactions. KD, synonymous with the acidic dissociation constant (KA) in this context, denotes the extent of dissociation of an acid into its ions. The construction of a binding curve relies on this equation, plotting the fraction bound (Fb) against pH.

Throughout the experimental procedure, pH measurements were systematically recorded and computed. The determination of KA is pivotal in assessing the adequacy of the titration process. The equation \(KA = exp(10-pKA)\) facilitates the calculation of KA, revealing its inverse correlation with pKA. This inverse relationship enables the establishment of connections between the two parameters, facilitating the determination of the acid’s KA or pKA value.

Utilizing potentiometric titration employing NaOH, we discerned the mole quantities of an unidentified acid. This method entailed meticulous titration of the sample, noting the precise volume of NaOH requisite to reach the inflection point, and leveraging the known molarity of NaOH. Employing stoichiometry, we then elucidated the mole equivalents of the unknown acid. These determined moles, coupled with the undisclosed acid’s mass, facilitated the computation of its molar mass. Subsequent scrutiny revealed that the pKa values of the unknown acid were meticulously calculated for each of the three titrations, harnessing the pivotal data points of the half-equivalence point and the corresponding pH from the titration curve. Upon meticulous analysis, the average pKa of the mysterious acid was unveiled to be 14.25.

#equation
fb <-  1 - ((CB * Vadd) + H * (Vini + Vadd)) / (CB *  Vend) 
fb
##  [1] -127.20512821    0.91598850    0.87105260    0.82633294    0.77818537
##  [6]    0.73136931    0.68296812    0.64549572    0.60810935    0.55757111
## [11]    0.51320057    0.46143104    0.41069576    0.36009540    0.30923710
## [16]    0.25833616    0.20746164    0.15647996    0.10551795    0.05451593
## [21]    0.00347872   -0.04749359   -0.09857479   -0.14964210   -0.20071583
## [26]   -0.25176477   -0.30287484   -0.35400137   -0.38986571   -0.40263804
## [31]   -0.41541857   -0.42053195   -0.42565399   -0.43077353   -0.43589900
## [36]   -0.44102618   -0.44615406   -0.45128212   -0.45641031   -0.46153851
## [41]   -0.46666671   -0.47179490   -0.47692310   -0.48205130   -0.48717950
## [46]   -0.58974359   -0.64102564   -0.69230769   -0.74358974   -0.79487180
## [51]   -0.84615385   -0.89743590   -0.94871795   -1.00000000   -1.05128205
## [56]   -1.10256410   -1.15384615   -1.20512821   -1.25641026   -1.30769231
## [61]   -1.35897436   -1.41025641
plot(pH,fb, main= "Binding analysis of monoprotic titration")

library(nls2)
## Loading required package: proto
fit <- nls2((fb ~ H/(KD+H)), start = c(KD=0.0003))
summary(fit)
## 
## Formula: fb ~ H/(KD + H)
## 
## Parameters:
##     Estimate Std. Error t value Pr(>|t|)
## KD 4.089e-05  7.211e-04   0.057    0.955
## 
## Residual standard error: 16.43 on 61 degrees of freedom
## 
## Number of iterations to convergence: 5 
## Achieved convergence tolerance: 7.598e-06
lines(pH,predict(fit), col="blue")

Diprotic data

This diprotic acid can give away two protons during titration when it reacts with a base, creating a curve on a graph. We’ll see two peaks in pH on this graph, each representing the donation of one proton. To plot this curve, we use a formula similar to the one for monoprotic acids, but it’s adjusted to handle the two protons. library(readr)

mydata <- read.csv("Diprotic.csv")
mydata
##      pH Volume
## 1  2.46  0.000
## 2  2.46  0.005
## 3  2.42  0.010
## 4  2.41  0.015
## 5  2.41  0.028
## 6  2.39  0.059
## 7  2.41  0.138
## 8  2.38  0.335
## 9  2.39  0.535
## 10 2.38  0.735
## 11 2.38  0.935
## 12 2.40  1.135
## 13 2.42  1.335
## 14 2.44  1.536
## 15 2.49  1.736
## 16 2.49  1.936
## 17 2.51  2.136
## 18 2.57  2.336
## 19 2.61  2.536
## 20 2.63  2.736
## 21 2.62  2.936
## 22 2.70  3.136
## 23 2.75  3.336
## 24 2.77  3.536
## 25 2.81  3.736
## 26 2.84  3.936
## 27 2.89  4.136
## 28 2.93  4.336
## 29 2.97  4.536
## 30 3.02  4.736
## 31 3.06  4.936
## 32 3.10  5.136
## 33 3.13  5.336
## 34 3.23  5.536
## 35 3.25  5.736
## 36 3.31  5.936
## 37 3.38  6.136
## 38 3.47  6.336
## 39 3.56  6.536
## 40 3.67  6.736
## 41 3.78  6.936
## 42 3.94  7.136
## 43 4.05  7.336
## 44 4.24  7.536
## 45 4.35  7.710
## 46 4.41  7.910
## 47 4.51  8.110
## 48 4.62  8.310
## 49 4.70  8.510
## 50 4.77  8.710
## 51 4.84  8.910
## 52 4.92  9.110
## 53 4.98  9.311
## 54 5.05  9.511
## 55 5.06  9.711
## 56 5.14  9.911
## 57 5.19 10.111
## 58 5.24 10.311
## 59 5.28 10.511
## 60 5.33 10.711
## 61 5.38 10.911
## 62 5.42 11.111
## 63 5.45 11.311
## 64 5.51 11.511
## 65 5.55 11.711
## 66 5.59 11.911
## 67 5.63 12.111
## 68 5.69 12.311
## 69 5.73 12.511
## 70 5.77 12.711
## 71 5.83 12.911
## 72 5.88 13.111
## 73 5.92 13.311
## 74 5.99 13.511
## 75 6.03 13.711
## 76 6.10 13.911
## 77 6.17 14.111
## 78 6.25 14.311
## 79 6.30 14.511
## 80 6.39 14.711
## 81 6.53 14.911
## 82 6.66 15.111
## 83 6.74 15.311
## 84 6.90 15.511
## 85 7.30 15.711
## 86 7.03 15.754
## 87 7.02 15.762
## 88 7.04 15.785
## 89 7.11 15.840
## 90 7.27 15.937
## 91 7.41 16.025
Volume <- mydata$Volume

Volume
##  [1]  0.000  0.005  0.010  0.015  0.028  0.059  0.138  0.335  0.535  0.735
## [11]  0.935  1.135  1.335  1.536  1.736  1.936  2.136  2.336  2.536  2.736
## [21]  2.936  3.136  3.336  3.536  3.736  3.936  4.136  4.336  4.536  4.736
## [31]  4.936  5.136  5.336  5.536  5.736  5.936  6.136  6.336  6.536  6.736
## [41]  6.936  7.136  7.336  7.536  7.710  7.910  8.110  8.310  8.510  8.710
## [51]  8.910  9.110  9.311  9.511  9.711  9.911 10.111 10.311 10.511 10.711
## [61] 10.911 11.111 11.311 11.511 11.711 11.911 12.111 12.311 12.511 12.711
## [71] 12.911 13.111 13.311 13.511 13.711 13.911 14.111 14.311 14.511 14.711
## [81] 14.911 15.111 15.311 15.511 15.711 15.754 15.762 15.785 15.840 15.937
## [91] 16.025
pH <- mydata$pH

pH
##  [1] 2.46 2.46 2.42 2.41 2.41 2.39 2.41 2.38 2.39 2.38 2.38 2.40 2.42 2.44 2.49
## [16] 2.49 2.51 2.57 2.61 2.63 2.62 2.70 2.75 2.77 2.81 2.84 2.89 2.93 2.97 3.02
## [31] 3.06 3.10 3.13 3.23 3.25 3.31 3.38 3.47 3.56 3.67 3.78 3.94 4.05 4.24 4.35
## [46] 4.41 4.51 4.62 4.70 4.77 4.84 4.92 4.98 5.05 5.06 5.14 5.19 5.24 5.28 5.33
## [61] 5.38 5.42 5.45 5.51 5.55 5.59 5.63 5.69 5.73 5.77 5.83 5.88 5.92 5.99 6.03
## [76] 6.10 6.17 6.25 6.30 6.39 6.53 6.66 6.74 6.90 7.30 7.03 7.02 7.04 7.11 7.27
## [91] 7.41
length(Volume)
## [1] 91
length(pH)
## [1] 91
H <- 10^(-pH)
H
##  [1] 3.467369e-03 3.467369e-03 3.801894e-03 3.890451e-03 3.890451e-03
##  [6] 4.073803e-03 3.890451e-03 4.168694e-03 4.073803e-03 4.168694e-03
## [11] 4.168694e-03 3.981072e-03 3.801894e-03 3.630781e-03 3.235937e-03
## [16] 3.235937e-03 3.090295e-03 2.691535e-03 2.454709e-03 2.344229e-03
## [21] 2.398833e-03 1.995262e-03 1.778279e-03 1.698244e-03 1.548817e-03
## [26] 1.445440e-03 1.288250e-03 1.174898e-03 1.071519e-03 9.549926e-04
## [31] 8.709636e-04 7.943282e-04 7.413102e-04 5.888437e-04 5.623413e-04
## [36] 4.897788e-04 4.168694e-04 3.388442e-04 2.754229e-04 2.137962e-04
## [41] 1.659587e-04 1.148154e-04 8.912509e-05 5.754399e-05 4.466836e-05
## [46] 3.890451e-05 3.090295e-05 2.398833e-05 1.995262e-05 1.698244e-05
## [51] 1.445440e-05 1.202264e-05 1.047129e-05 8.912509e-06 8.709636e-06
## [56] 7.244360e-06 6.456542e-06 5.754399e-06 5.248075e-06 4.677351e-06
## [61] 4.168694e-06 3.801894e-06 3.548134e-06 3.090295e-06 2.818383e-06
## [66] 2.570396e-06 2.344229e-06 2.041738e-06 1.862087e-06 1.698244e-06
## [71] 1.479108e-06 1.318257e-06 1.202264e-06 1.023293e-06 9.332543e-07
## [76] 7.943282e-07 6.760830e-07 5.623413e-07 5.011872e-07 4.073803e-07
## [81] 2.951209e-07 2.187762e-07 1.819701e-07 1.258925e-07 5.011872e-08
## [86] 9.332543e-08 9.549926e-08 9.120108e-08 7.762471e-08 5.370318e-08
## [91] 3.890451e-08
plot(Volume, pH, main = "Diprotic", xlab = "Volume" , ylab ="pH")

The diprotic formula means each molecule of the acid can give away two protons in a reaction. It’s similar to the monoprotic formula but has some differences. In the diprotic formula, we divide the Vend by 2 or only use half of the data points. Also, there are two Kd values used in the line. When we look at the diprotic data, we see that it starts with the same initial volume as the monoprotic one, but it ends with a lower volume compared to the other data.

Vinital <- 25.00

Vadd <- Volume

Vend <- 14.278/2

CB <- 0.100

FB <-  2 -(CB * Vadd + H * (Vinital + Vadd)) / (CB *  Vend) 

FB
##  [1]  1.878576534  1.877851871  1.865407805  1.861577752  1.859685924
##  [6]  1.848738726  1.843678150  1.805135371  1.779346472  1.746769385
## [11]  1.717586392  1.695272014  1.672751257  1.649885989  1.635640846
## [16]  1.606719166  1.583333440  1.569721536  1.550087036  1.525676523
## [21]  1.494867914  1.482086146  1.462124492  1.436810364  1.414334228
## [26]  1.390075297  1.368070544  1.344352438  1.320285202  1.296823561
## [31]  1.272064482  1.247040376  1.221055628  1.199354350  1.172315278
## [36]  1.147287018  1.122314547  1.097607479  1.072299012  1.046946300
## [41]  1.021011267  0.995251847  0.968368190  0.941767402  0.917970161
## [46]  0.890208226  0.862553303  0.834852148  0.807019733  0.779139266
## [51]  0.751239461  0.723336472  0.695252444  0.667309736  0.639301975
## [56]  0.611356061  0.583377650  0.555395443  0.527403888  0.499415838
## [61]  0.471424987  0.443427244  0.415423958  0.387431251  0.359429240
## [66]  0.331426144  0.303422053  0.275422077  0.247415816  0.219408821
## [71]  0.191404854  0.163397899  0.135388626  0.107382815  0.079372283
## [76]  0.051364465  0.023355593 -0.004653462 -0.032665363 -0.060675413
## [81] -0.088684380 -0.116695301 -0.144708412 -0.172720409 -0.200731251
## [86] -0.206756974 -0.207877704 -0.211099201 -0.218802592 -0.232388568
## [91] -0.244714380
plot(pH,FB,main ="Fraction Bound vs. pH of Diprotic Acid ",xlim = c(2,10),ylim = c(0.0,2.5) )

library(nls2)

fit <- nls2(FB ~ (H/KD1+(2*H^2)/(KD1*KD2))/(1+H/KD1+H^2/(KD1*KD2)), start=c(KD1=0.000001,KD2=0.0001))

summary(fit)
## 
## Formula: FB ~ (H/KD1 + (2 * H^2)/(KD1 * KD2))/(1 + H/KD1 + H^2/(KD1 * 
##     KD2))
## 
## Parameters:
##      Estimate Std. Error t value Pr(>|t|)    
## KD1 5.513e-06  4.774e-07   11.55   <2e-16 ***
## KD2 1.722e-03  1.250e-04   13.78   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.09985 on 89 degrees of freedom
## 
## Number of iterations to convergence: 7 
## Achieved convergence tolerance: 2.74e-06
lines(pH,predict(fit),col="green")

Future

I can see the use of R for future chemistry students to learn how to analyze data and plot it for analyzing it to determine compounds. I would like to see R being used in other scientific fields other than chemistry. Data can be analyzed in Biology and Physics as well.