Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Finding $K_C$ for Esterification"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "$\\begin{aligned}\n",
- "\\text{C}_2\\text{H}_4\\text{O}_2 + \\text{C}_2\\text{H}_6\\text{O} &\\rightleftharpoons \\text{C}_4\\text{H}_{10}\\text{O}_2 + \\text{H}_2\\text{O} \\\\\n",
- "\\text{HA} + \\text{NaOH} &\\rightarrow \\text{NaA} + \\text{H}_2\\text{O}\n",
- "\\end{aligned}$"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Procedure\n",
- "1. Find the mass of a clean, dry, stoppered boiling tube.\n",
- "2. Using a shared class burette, put 5 cm$^3$ of 3 mol/dm$^3$ hydrochloric acid in the tube, and then reweigh it.\n",
- "3. Using a shared class burette, add 2 cm$^3$ of ethanoic acid into the tube.\n",
- "4. Using a shared class burette, add 3 cm$^3$ of ethanol into the tube.\n",
- "5. Stopper the tube, shake it well, and then leave it in the class rack in the water bath for a few days.\n",
- "\n",
- "6. Fill a burette with 1 mol dm$^{-3}$ sodium hydroxide ready for the titration.\n",
- "7. Transfer the equilibrium mixture to a conical flask, washing all the contents into the flask.\n",
- "8. Add a few drops of phenol red indicator (yellow to pink endpoint)\n",
- "9. Titrate the equilibrium mixture against the sodium hydroxide."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Raw Data\n",
- "### Start\n",
- "| Mass of Tube (g ± 0.01 g) | 1 | 2 | 3 | 4 | 5 |\n",
- "|:-------------------------:|:-----:|:-----:|:-----:|:-----:|:-----:|\n",
- "| empty | 30.15 | 27.91 | 31.59 | 27.89 | 27.85 |\n",
- "| with 5 cm³ of 3M HCl | 35.36 | 33.18 | 36.79 | 33.20 | 32.86 |\n",
- "| with everything | 39.86 | 37.71 | 41.22 | 37.57 | 36.94 |\n",
- "\n",
- "### End - Titration\n",
- "| Volume of 1M NaOH (mL ± 0.25 mL) | 1 | 2 | 3 | 4 | 5 |\n",
- "|:--------------------------------:|:-----:|:-----:|:-----:|:-----:|:-----:|\n",
- "| Start | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |\n",
- "| End | 25.0 | 25.0 | 25.0 | 25.0 | 22.8 |\n",
- "| Start | 0.0 | 0.0 | 0.0 | 0.0 | |\n",
- "| End | 3.5 | 3.3 | 2.7 | 3.0 | |\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Number of moles of CH3COOH at the start\n",
- "mass_CH3COOH = 2 * 1.05 # density: 1.05 g cm^-3\n",
- "RFM_CH3COOH = 2 * 12.01 + 4 * 1.01 + 2 * 16.00\n",
- "n_CH3COOH = mass_CH3COOH / RFM_CH3COOH\n",
- "n_CH3COOH, n_H2O = 0.8 * n_CH3COOH, 0.2 * n_CH3COOH # 80% by mass"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Number of moles of CH3CH2OH at the start\n",
- "mass_CH3CH2OH = 3 * 0.79 # density: 0.79 g cm^-3\n",
- "RFM_CH3CH2OH = 2 * 12.01 + 6 * 1.01 + 1 * 16.00\n",
- "n_CH3CH2OH = mass_CH3CH2OH / RFM_CH3CH2OH"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Number of moles of CH3COOHCH2CH# at the start\n",
- "n_CH3COOCH2CH3 = 0"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Number of moles of water at the start \n",
- "import numpy as np\n",
- "\n",
- "mass_empty_tube_ = np.array([30.15, 27.91, 31.59, 27.89, 27.85]) # recorded using digital balance\n",
- "mass_with_HCl_ = np.array([35.36, 33.18, 36.79, 33.20, 32.86]) # recorded using digital balance\n",
- "mass_solution_ = mass_with_HCl_ - mass_empty_tube_\n",
- "\n",
- "n_HCl = 5 / 1000 * 3 # n = c * V, 5 cm^3 of 3M HCl\n",
- "RFM_HCl = 1 * 1.01 + 1 * 35.45\n",
- "mass_HCl = n_HCl * RFM_HCl\n",
- "\n",
- "mass_H2O_ = mass_solution_ - mass_HCl\n",
- "RFM_H2O = 2 * 1.01 + 16.00\n",
- "n_H2O_ = mass_H2O_ / RFM_H2O + n_H2O"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Titration\n",
- "V_NaOH_ = np.array([25.0, 25.0, 25.0, 25.0, 22.8]) \\\n",
- " + np.array([3.5, 3.3, 2.7, 3.0, 0.0]) # measured using burette, in cm^3\n",
- "V_NaOH_ /= 1000 # convert to dm^3"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Initial moles:\n",
- "[0.02797203 0.05143229 0. 0.26576659]\n",
- "Equilibrium moles:\n",
- "[0.0135 0.03696026 0.01447203 0.28023862]\n",
- "Kc: 8.128090850173335\n",
- "\n",
- "Initial moles:\n",
- "[0.02797203 0.05143229 0. 0.26909623]\n",
- "Equilibrium moles:\n",
- "[0.0133 0.03676026 0.01467203 0.28376825]\n",
- "Kc: 8.515765519449703\n",
- "\n",
- "Initial moles:\n",
- "[0.02797203 0.05143229 0. 0.26521165]\n",
- "Equilibrium moles:\n",
- "[0.0127 0.03616026 0.01527203 0.28048368]\n",
- "Kc: 9.327580358680224\n",
- "\n",
- "Initial moles:\n",
- "[0.02797203 0.05143229 0. 0.27131598]\n",
- "Equilibrium moles:\n",
- "[0.013 0.03646026 0.01497203 0.28628801]\n",
- "Kc: 9.043168667672404\n",
- "\n",
- "Initial moles:\n",
- "[0.02797203 0.05143229 0. 0.25466781]\n",
- "Equilibrium moles:\n",
- "[0.0078 0.03126026 0.02017203 0.27483984]\n",
- "Kc: 22.737463245954366\n",
- "\n"
- ]
- }
- ],
- "source": [
- "# Number of moles at equilibrium\n",
- "for V_NaOH, n_H2O in zip(V_NaOH_, n_H2O_):\n",
- " # Number of moles at the start\n",
- " initial_moles = np.array([n_CH3COOH, n_CH3CH2OH, n_CH3COOCH2CH3, n_H2O])\n",
- " \n",
- " # Number of moles of acid at equilibrium\n",
- " # We measured the amount of NaOH needed to titrate the acid at equlibrium,\n",
- " # which consists of ethanoic acid and the catalyst hydrochloric acid.\n",
- " moles_acid_total = V_NaOH * 1.0 # n = V * c, 1M NaOH\n",
- " moles_acid = moles_acid_total - n_HCl\n",
- " moles_reacted = n_CH3COOH - moles_acid\n",
- " equilibrium_moles = np.array([n_CH3COOH - moles_reacted, n_CH3CH2OH - moles_reacted, n_CH3COOCH2CH3 + moles_reacted, n_H2O + moles_reacted])\n",
- " \n",
- " # Calculate the equilibrium constant\n",
- " # K_c = ([CH3COOCH2CH3] * [H2O]) / ([CH3COOH] * [CH3CH2OH])\n",
- " K_c = (equilibrium_moles[2] * equilibrium_moles[3]) / (equilibrium_moles[0] * equilibrium_moles[1])\n",
- " print(f\"Initial moles:\\n{initial_moles}\")\n",
- " print(f\"Equilibrium moles:\\n{equilibrium_moles}\")\n",
- " print(f\"Kc: {K_c}\")\n",
- " print()\n"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.6.4"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 2
- }
Add Comment
Please, Sign In to add comment