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.
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.
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
\(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")
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")
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.