Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Functions for Generating & Plotting Titration Curves: Acid-Base, Complexation, Redox, Lecture notes of Stoichiometry

Functions for generating and plotting normal, first derivative, and second derivative titration curves for various types of titrations, including acid-base, complexation, redox, and precipitation. The functions include equations for calculating the volume of titrant needed to achieve a particular pH, pM, or potential, as well as plots of the titration curves. The document also includes examples of using the functions for different types of titrations.

Typology: Lecture notes

2021/2022

Uploaded on 09/27/2022

fredk
fredk 🇬🇧

3.7

(12)

285 documents

1 / 14

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Functions for Generating and Plotting Titration Curves
David T. Harvey
2016-02-10
Gathered here are functions for generating and plotting normal, first derivative, and second derivative titration
curves, including acid-base titrations, complexation titrations, redox titrations, and precipitation titrations.
This document provides a basic introduction to the functions and worked examples.
Acid-Base Titrations
The following 10 functions are available for the titration of acids and bases.
function analyte(s) titrant
sa_sb monoprotic strong acid strong base
sb_sa monoprotic strong base strong acid
wa_sb monoprotic weak acid strong base
wb_sa monoprotic weak base strong acid
diwa_sb diprotic weak acid strong base
diwb_sa diprotic weak base strong acid
triwa_sb triprotic weak acid strong base
triwb_sa triprotic weak base strong acid
wamix_sb mixture of two monoprotic weak acids strong base
wbmix_sa mixture of two monoprotic weak bases strong acid
Each function uses the general approach outlined in Principles of Quantitative Chemical Analysis by Robert
de Levie (McGraw-Hill, 1997) in which a single master equation is used to calculate the progress of a titration.
For example, the function
wa_sb
calculates the volume of strong base needed to achieve a particular pH using
this equation
volume =Va×Ca×α
Cb+
where
Va
and
Ca
are, respectively, the initial volume and the initial concentration of the weak acid analyte,
Cb
is the initial concentration of the strong base titrant, is defined as
H+OH
, and
α
, which is
defined as
α=Ka
H++Ka
is the fraction of weak acid present in its conjugate weak base form.
The function calculates the volume of titrant needed to achieve a particular pH over a range that extends
from a pH of 1 to a pH equal to
pKw
. Because some of the calculated volumes are negative—equivalent
to adding a strong acid to achieve a pH less than that of the original solution—and some of the calculated
volumes are quite large, prior to returning results the function removes all negative volumes and all volumes
greater than twice the volume of the titration curve’s last equivalence point.
The function’s arguments, each of which has a default value, are intuitive; a representative example of a
function is shown here for the titration of a weak base with a strong acid
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe

Partial preview of the text

Download Functions for Generating & Plotting Titration Curves: Acid-Base, Complexation, Redox and more Lecture notes Stoichiometry in PDF only on Docsity!

Functions for Generating and Plotting Titration Curves

David T. Harvey

Gathered here are functions for generating and plotting normal, first derivative, and second derivative titration curves, including acid-base titrations, complexation titrations, redox titrations, and precipitation titrations. This document provides a basic introduction to the functions and worked examples.

Acid-Base Titrations

The following 10 functions are available for the titration of acids and bases.

function analyte(s) titrant sa_sb monoprotic strong acid strong base sb_sa monoprotic strong base strong acid wa_sb monoprotic weak acid strong base wb_sa monoprotic weak base strong acid diwa_sb diprotic weak acid strong base diwb_sa diprotic weak base strong acid triwa_sb triprotic weak acid strong base triwb_sa triprotic weak base strong acid wamix_sb mixture of two monoprotic weak acids strong base wbmix_sa mixture of two monoprotic weak bases strong acid

Each function uses the general approach outlined in Principles of Quantitative Chemical Analysis by Robert de Levie (McGraw-Hill, 1997) in which a single master equation is used to calculate the progress of a titration. For example, the function wa_sb calculates the volume of strong base needed to achieve a particular pH using this equation

volume = Va ×

Ca × α − ∆ Cb + ∆

where Va and Ca are, respectively, the initial volume and the initial concentration of the weak acid analyte, Cb is the initial concentration of the strong base titrant, ∆ is defined as

[

H+

]

[

OH−

]

, and α , which is defined as

α =

Ka [ H+

]

  • Ka

is the fraction of weak acid present in its conjugate weak base form.

The function calculates the volume of titrant needed to achieve a particular pH over a range that extends from a pH of 1 to a pH equal to p Kw. Because some of the calculated volumes are negative—equivalent to adding a strong acid to achieve a pH less than that of the original solution—and some of the calculated volumes are quite large, prior to returning results the function removes all negative volumes and all volumes greater than twice the volume of the titration curve’s last equivalence point.

The function’s arguments, each of which has a default value, are intuitive; a representative example of a function is shown here for the titration of a weak base with a strong acid

wb_sa = function(conc.acid = 0.1, conc.base = 0.1, pka = 9, pkw = 14, vol.base = 50, plot = TRUE, eqpt = FALSE, overlay = FALSE, ...)

Note that the equilibrium constant for a weak base is provided using the p Ka value for the base’s conjugate weak acid, and that you can adjust p Kw when using a solvent other than water. The option plot creates a plot of the titration curve with axes fixed to display the pH from 0 to 14 and to display the volume of titrant from 0 to 1.5× the titration curve’s final equivalence point. The option eqpt adds a vertical line at the equivalence point and the option overlay allows for displaying two or more titration curves on the same plot; you can pass other plot options, such as color and a main title.

wb_sa (eqpt = TRUE, main = "Titration of WB w/ SA") wb_sa (pka = 7, col = "blue", overlay = TRUE)

Titration of WB w/ SA

volume of strong acid (mL)

pH

When the function is assigned to an object, it returns to the object a data frame with volumes in the first column and pH values in the second column; we can use the function head to examine the object’s first six values.

wb1 = wb_sa (pka = 8) wb2 = wb_sa (pka = 6) head (wb1)

volume ph

1 0.006739371 10.

2 0.013979345 10.

3 0.021226851 10.

4 0.028485659 10.

5 0.035759545 10.

6 0.043052291 10.

We can use this object to prepare a customized plot, as demonstrated here where we use the plot command’s options to adjust the limits of the x -axis and the y -axis from their default values. We also add a line for the equivalence point and a legend.

arguments; for example, Table 9.12 in Analytical Chemistry 2.1 provides values for several metal ions in the presence of a variety of concentrations of NH 3. The function calculates the volume of titrant needed to achieve a particular p M over a range that extends from 0 to logKf + 2. Because some of the calculated volumes are negative—equivalent to adding analyte instead of titrant to achieve a pM less than that for the initial solution—and some of the calculated volumes are quite large, prior to returning results the function removes all negative volumes and all volumes greater than twice the volume of the titration curve’s equivalence point. The function’s arguments, each of which has a default value, are intuitive

metal_edta = function(conc.metal = 0.1, conc.edta = 0.1, vol.metal = 50, ph = 10, logkf = 8.79, alpha.metal = 1, eqpt = TRUE, overlay = FALSE, ...)

and include, through alpha.metal, the ability to consider the presence of an auxiliary complexing agent. As shown below, the function produces a plot of the titration curve with options to overlay two or more titration curves and to add a marker for the equivalence point. The limits for the x -axis and for the y -axis are fixed, but you can pass along other plot options.

metal_edta (eqpt = TRUE) metal_edta (logkf = 6, col = "blue", overlay = TRUE)

volume of titrant (ml)

pMetal

Redox Titrations

The function redox_titration calculates and plots the titration curve for the analysis of a reducing agent using an oxidizing agent as the titrant. The function uses the general approach outlined in Principles of Quantitative Analysis by Robert de Levie (McGraw-Hill, 1997) in which a single master equation

volume = Va ×

naCaαa ntCtαt

is used to calculate the progress of a titration, where Va and Ca are, respectively, the initial volume and the initial concentration of the analyte, Ct is the initial concentration of the titrant, na and nt are, respectively,

the number of electrons in the analyte’s and the titrant’s half-reaction, αa is the fraction of the analyte in its final, oxidized form, and αt is the fraction of the titrant in its final reduced form; the latter two values are given by

αa = kn aa hna^ + kn aa

αt =

hnt hnt^ + kn tt

where ka and kt are functions of the analyte’s and the titrant’s standard state or formal reduction potential

ka = 10− E

oa / 0_._ 05916

kt = 10− E to /^0_._^05916

adjusted, as needed, for other species that participate in the redox reaction (see last section of this document for a worked example), and where h is a function of the solution’s potential

h = 10− E/^0_._^05916

The function calculates the volume of titrant needed to achieve a particular potential over a range from − 3 to +3 volts (vs. SHE). Because some of the calculated volumes are negative—equivalent to adding analyte instead of titrant to achieve a potential that is more negative (or less positive) than the original potential—and some of the calculated volumes are quite large, prior to returning results the function removes all negative volumes and all volumes greater than twice the volume of the titration curve’s equivalence point. The function’s arguments, each of which has a default value, are intuitive

redox_titration = function(conc.analyte = 0.01, vol.analyte = 25, pot.analyte = 0.77, elec.analyte = 1, conc.titrant = 0.01, pot.titrant = 1.7, elec.titrant = 1, eqpt = FALSE, overlay = FALSE, ...)

As shown below, the functions produce a plot of the titration curve, with options to overlay two or more titration curves and to add a marker for the equivalence point. The limits for the x -axis and for the y -axis are fixed, but you can pass along other plot options.

redox_titration (eqpt = TRUE) redox_titration (pot.analyte = 0.5, pot.titrant = 1.5, col = "blue", overlay = TRUE)

As shown below, the functions produce a plot of the titration curve, with options to overlay two or more titration curves and to add a marker for the equivalence point. The limits for the x -axis and the y -axis are fixed, but you can pass along other plot options.

ppt_mixture (eqpt = TRUE) ppt_mixture (pksp1 = 12, pksp2 = 8, col = "blue", overlay = TRUE)

volume of titrant (ml)

pTitrant

Deriviative Titration Curves

The function derivative accepts an object created by any of the titration functions described above and returns a plot of the titration curve’s first derivative and its second derivative, and a data frame that contains the values used to prepare the two titration curves.

wbd = derivative (wb1)

volume of titrant (mL)

first derivative

volume of titrant (mL)

second derivative

As shown below, the object returned by derivative consists of two data frames, which, in this case, are identified as wbd$first_deriv and wbd$second_deriv.

str (wbd)

List of 2

$ first_deriv :'data.frame': 901 obs. of 2 variables:

..$ x1: num [1:901] 0.0104 0.0176 0.0249 0.0321 0. ...

..$ y1: num [1:901] -1.38 -1.38 -1.38 -1.37 -1. ...

$ second_deriv:'data.frame': 900 obs. of 2 variables:

..$ x2: num [1:900] 0.014 0.0212 0.0285 0.0358 0. ...

..$ y2: num [1:900] 0.198 0.296 0.393 0.488 0. ...

You can plot a customized derivative titration curve by sending its object to the plot function with options of your choosing; this is particularly useful, as shown below, if you wish to highlight the portion of the titration curve that contains the equivalence point.

plot (wbd$first_deriv, xlim = c (48, 52), col = "blue", type = "l", lwd = 2, xlab = "volume of titrant in mL", ylab = "first derivative") abline (v = 50, col = "red", lty = 2)

volume of titrant in mL

first derivative

Additional Examples

Gathered here are several worked examples, each adapted from an end-of-chapter problem in Chapter 9 of Analytical Chemistry 2..

Problem 9.1e. Plot the titration curve for the analysis of 50.0 mL of 0.0400 M citric acid using 0.120 M NaOH as a titrant. Citric acid is a triprotic weak acid with p Ka values of 3.128, 4.761, and 6.396. To calculate the titration curve, we use the function triwa_sb, entering only those values that differ from the function’s default values.

volume of strong base (mL)

pH

non−aqueous

aqueous

Note that the change in pH at the equivalence point is much greater for the non-aqueous solvent.

Problem 9.31. Plot the titration curve for the analysis of 50.0 mL of 0.100 Mg2+^ using 0.100 M EDTA as the titrant at a pH of 7 and at a pH of 10.

For a complexation titration of a metal ion using EDTA as a titrant, we use the function metal_edta, entering only those values that differ from the function’s default values (note that the default value for logkf is for the Mg2+-EDTA complex).

metal_edta (col = "blue", eqpt = TRUE) metal_edta (ph = 7, col = "green", overlay = TRUE) legend (x = "topleft", legend = c ("pH = 10", "pH = 7"), col = c ("blue", "green"), lty = 1, lwd =2)

volume of titrant (ml)

pMetal

pH = 10

pH = 7

Note that the change in p M at the equivalence point is much greater at a pH of 10 because a greater fraction of the EDTA is in its fully unprotonated form at this pH.

Problem 9.32. Plot the titration curve for the analysis of 25.0 mL of 0.0500 M Cu2+^ with 0.025 M EDTA at a pH of 10 in the presence of 0.0010 M NH 3 and in the presence of 0.10 M NH 3.

In this case, NH 3 serves as an auxiliary complexing agent, so we need to find values for αM ; from Table 9. in Analytical Chemistry 2.1 , we find that the values are 0.00415 when the concentration of NH 3 is 0.0010 M and 4_._ 63 × 10 −^10 when the concentration of NH 3 is 0.10 M. The value for log Kf is 18.

metal_edta (conc.metal = 0.0500, conc.edta = 0.025, vol.metal = 25.0, alpha.metal = 0.00415, logkf = 18.80, col = "blue", eqpt = TRUE) metal_edta (conc.metal = 0.0500, conc.edta = 0.0250, vol.metal = 25.0, alpha.metal = 4.63e-10, logkf = 18.80, col = "green", overlay = TRUE) legend (x = "topleft", legend = c ( expression ( paste ("0.0010 M N", H[3])), expression ( paste ("0.10 M N", H[3]))), col = c ("blue", "green"), lty = 1, lwd = 2)

volume of titrant (ml)

pMetal

0.0010 M NH 3

0.10 M NH 3

Note that the change in p M at the equivalence point is much greater for the smaller concentration of NH 3 ; this is because a greater fraction of Cu2+^ remains free from complexation before the equivalence point.

Problem 43b. Plot the titration curve for the analysis of 25.0 mL of 0.0100 M Sn2+^ using 0.0100 M Ce4+ as the titrant.

For a redox titration we use the function redox_titration, entering only those values that differ from the function’s default value. To determine the number of electrons in the analyte’s and the titrant’s half-reactions, we need to know the reaction’s overall stoichiometry, which is

Sn2+^ + 2Ce4+^ → Sn4+^ + 2Ce3+

From this, we know that Sn2+^ undergoes a two-electron oxidation and that Ce4+^ undergoes a one-electron oxidation. The standard state reduction potential for Sn4+/Sn2+^ is 0.154 V and the standard state reduction potential for Ce4+/Ce3+^ is 1.72 V.

redox_titration (pot.analyte = 0.154, elec.analyte = 2, pot.titrant = 1.72, col = "blue", eqpt = TRUE)

volume of titrant (ml)

potential (V)

pH = 0

pH = 1

ph = 2

Note that the change in potential at the equivalence point decreases with an increase in pH because the potential for the titrant’s half-reaction decreases with an increase in pH.

Problem 9.55. Plot the titration curve for the analysis of 50.0 mL of 0.0250 M KI using 0.0500 M AgNO 3 as the titrant. Prepare the titration curve so that both pAg and pI are plotted on the y -axis.

For a precipitation titration we use the function ppt_analyte when we monitor the analyte’s concentration and ppt_titrant when we monitor the titrant, entering only those values that differ from the function’s default values (note that the default value for pksp is for AgI). So that we have control over the y -axis label, we will save the titration curves in separate objects and plot them outside of the titration functions.

p.a = ppt_analyte (eqpt = TRUE) p.t = ppt_titrant (overlay = TRUE)

plot (p.a, col = "blue", type = "l", lwd = 2, xlim = c (0,50), ylim = c (0,15), xlab = "volume of titrant (mL)", ylab = "pAg or pI") lines (p.t, col = "green", lwd = 2) legend (x = "left", legend = c ("pAg", "pI"), col = c ("blue", "green"), lty = 1, lwd = 2)

volume of titrant (mL)

pAg or pI

pAg

pI

Problem 9.56. Plot the titration curve for the analysis of 25.0 mL of a mixture that is 00500 M KI and 0.0500 KSCN using 0.0500 M AgNO 3 as the titrant.

For this problem we use the ppt_mixture function, for which the default values for pksp1 and for pksp2 are for AgI and for AgSCN.

ppt_mixture (col = "blue", eqpt = TRUE)

volume of titrant (ml)

pTitrant