{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "b288398e-411c-40d4-a1c1-6b6309ebb326", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "#Bisection Method\n", "def root_bisection(f, a, b, tol): \n", " if np.sign(f(a)) == np.sign(f(b)):\n", " # stop execution and signal an error\n", " raise Exception(\"The scalars a and b do not bound a root\") \n", "\n", " # get midpoint\n", " m = (a + b)/2\n", " \n", " if np.abs(f(m)) < tol:\n", " # stopping condition, report m as root\n", " return m\n", " elif np.sign(f(a)) == np.sign(f(m)):\n", " # case where m is an improvement on a. \n", " # Make recursive call with a = m\n", " return root_bisection(f, m, b, tol)\n", " elif np.sign(f(b)) == np.sign(f(m)):\n", " # case where m is an improvement on b. \n", " # Make recursive call with b = m\n", " return root_bisection(f, a, m, tol)" ] }, { "cell_type": "code", "execution_count": 2, "id": "ee5552a9-4ac9-4f67-b1e2-939c1c97383f", "metadata": {}, "outputs": [], "source": [ "#Squared Formula\n", "def root_quadratic(a, b, c):\n", " disc = np.sqrt(b**2 - 4*a*c)\n", " root_1 = (-b + disc) / (2*a)\n", " root_2 = (-b - disc) / (2*a)\n", " return root_1, root_2\n", "\n", "# Function weak acid concentration [H+] = x \n", "def f_H(x, Ka, Ca):\n", "# return x**2 / (Ca - x) - Ka\n", " return x**2+Ka*x-Ca*Ka" ] }, { "cell_type": "code", "execution_count": 3, "id": "8eea0010-a87f-4414-8833-b2b7178a3434", "metadata": {}, "outputs": [], "source": [ "# Acid parameters\n", "# Read parameters from input file\n", "inp_file=\"Ka_conc_data.dat\"\n", "def read_acid_params(inp_file):\n", " \"\"\"Reads Ka, number of concentrations, and each concentration from file.\"\"\"\n", " with open(inp_file) as f:\n", " lines = [float(line.strip()) for line in f if line.strip()and not line.strip().startswith('#')] # skip blank and comment lines\n", "\n", " Ka = lines[0]\n", " n_conc = int(lines[1])\n", " concs = lines[2:]\n", "\n", " if len(concs) != n_conc:\n", " raise ValueError(\"Number of concentrations does not match N in file.\")\n", " return Ka, concs\n", " \n", "Ka, concs = read_acid_params(inp_file) \n", "# check if concentrations were read \n", "#print(Ka) \n", "#print(concs) \n" ] }, { "cell_type": "code", "execution_count": 7, "id": "4d32f3ae-8c78-4c67-8cb7-2589c0c5de7a", "metadata": {}, "outputs": [], "source": [ "# Lists to store data for plotting\n", "valid_concs = []\n", "dissociation_quadratic = []\n", "\n", "for Ca in concs:\n", "# print(f\"\\nConcentration: {Ca} M\")\n", "\n", " # Bisection method\n", "# root = root_bisection(lambda x: f_H(x, Ka, Ca), 1e-15, Ca*0.99999999, 1e-15)\n", "# pH = -np.log10(root)\n", "# percent_dissociation = (root / Ca) * 100\n", "# print(\"Bisection method:\")\n", "# print(f\" [H+] = {root:.4e} M\")\n", "# print(f\" pH = {pH:.3f}\")\n", "# print(f\" % dissociation = {percent_dissociation:.2f}%\")\n", "\n", " # Quadratic formula\n", " roots_Q = root_quadratic(1, Ka, -Ka*Ca)\n", " valid_roots = [r for r in roots_Q if 0 < r < Ca] # only physically meaningful roots\n", " if valid_roots:\n", " root_q = valid_roots[0]\n", " pH_q = -np.log10(root_q)\n", " percent_dissociation_q = (root_q / Ca) * 100\n", "# print(\"Quadratic formula:\")\n", "# print(f\" [H+] = {root_q:.4e} M\")\n", "# print(f\" pH = {pH_q:.3f}\")\n", "# print(f\" % dissociation = {percent_dissociation_q:.2f}%\")\n", " valid_concs.append(Ca) #list\n", " dissociation_quadratic.append(percent_dissociation_q) #list\n", " else:\n", " print(\"Quadratic formula: no valid root found\")\n", "#\n", "#plt.plot(concs,percent_dissociation)\n", "#plt.show" ] }, { "cell_type": "code", "execution_count": 8, "id": "dccc6d78-08c7-4af4-b017-a64ef59a8cbe", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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zSYLth2RySv3mf96HQAAuN9LL70kjRo1ctn9t2/fXh599NE83z4xMVF69uxpYh6Nmzyx4sYdd9wh3bt3F0/i1mA3ISFBGjZsKB9//HGmy99++2358MMP5dNPP5VFixZJ4cKF5aqrrjK1+Cwa6K5bt06mTZsmv/32mwmg77nnHvFEU9cekDZvzZRbvlgoj/y40vzX6zrfkxGgA4Dvccdnv5Yfu/POO80gWHBwsFSsWFEeeeQROXLkiBQk//zzT6bB6MSJE+WVV17J8/1+++23MnfuXJk/f74cOHBAIiIinNBa7+fWagxXX321mTKjo7rDhw+X5557Trp162bmjR49WkqXLm1GgPv06SMbNmyQqVOnypIlS6RZs2ZmnREjRsg111wj7777rnmzeAoNaAd9t1wyflQcPJFk5o/s20S61nNemQ1ntnvor+vlwIn/fmCUiQiVF6+v45HtBQAUzM/+7du3y+WXXy41atSQH374QSpXrmwGs5544gn5888/ZeHChVKiRAlxJ60aoUF4Xl1q+7dt2ya1a9eWevXqXVLFDj8/P5+qfOGxpcd27NhhagVq6oJFf8G0bNlSFixYYIJd/a+pC1agq3R9fQF1JLhHjx6Z3veZM2fMZNGabtaRf64424z+Gn5pyroLAl1lzXtm4hoJC/STQsEBEhzoLyGBARJi/v83BQX4i79//h108Ne6WHnox1VZBugj+jSUq+qWztP2WLjtkCw77CcRW+LksqolJSAfnxc8g/VeKwhneILr0A+cS7ejDhZpGSed8mLq2oPywNgVWX72f3xrY+laL1qcRdurHnzwQRNI6iCWpi6q8uXLmz3A1atXl2eeeUY++eQTM19LUv3888/pdpdrIPn++++b3ejq6aefNoNje/fuNSetuPXWW+X555+XoKAg+23eeustM7Cm6QG9evWSkiVLmvnWthswYIAZnW3evLl57JCQEBNwjhkzxgyubdq0yex17tChgwwbNsyUy9q5c6e5rooXL27+9+vXT0aNGiVXXnmleT66rtJY5MUXXzTBfVxcnMTExMhTTz1lUjIz0tvOnj3bXNZgtV27djJz5kw5duyYSY3Qvdt6f23btpUPPvjAbDP1zTffyODBg81/3YabN282k96fPo5e/uWXX0ypOr1dq1atZODAgea+q1SpIl9++aU9zho6dKhMnjxZli9fbm+X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cXFxsmDBgnRB7FdffSUVKlRIt26hQoXMFBwcnC/tBVCwMLILwOvdf//9JvBbvHix9OzZU2rUqCF169aVwYMHy8KFC+3r7d69W7p162aCvKJFi8rNN98ssbGxF+zaHzNmjBlZjIiIkD59+sjJkyft66Slpcnbb78t1apVMyPIGpi99tpr9uV79uwx96sBXokSJczjaTBuueOOO6R79+7y7rvvSpkyZSQyMtIE5Bqcq/bt28uuXbvkscces++6t0ZD9T6nTJkiderUMY+tz2fJkiXSuXNniYqKMu1t166dLF++3P541ghpjx490o2YZkxj0Of18ssvS/ny5c1967KpU6fal+tz0NtPnDhROnToIGFhYdKwYUMTrOZFYGCg3HrrrfL111/b5+3du1f++ecfMx8AcopgF4BXO3r0qAnKNGDU0cKMrFxRDeY08NT1Z8+eLdOmTZPt27ebXeSOtm3bZnb5//bbb2bSdd9880378iFDhpjrzz//vKxfv17Gjh0rpUuXNss0YL3qqqskPDxc5s6dK//++68JrLt27SrJycn2+5g1a5Z5HP3/7bffmkBWJ6XBpAacGnjqrnudLImJifLWW2/Jl19+KevWrTOjpRqI9+/fX+bNm2cC++rVq8s111xjD9A1GLZSCfS+rOsZffDBB/Lee++ZIHz16tXmedxwww2yZcuWdOs9++yzJgVi5cqV5kfFLbfcImfPns3DKydy5513yvjx483zUroNdFtZ2xMAcsQGAF5s0aJFNv2omzhx4kXX+/vvv20BAQG23bt32+etW7fO3Hbx4sXm+osvvmgLCwuzxcfH29d54oknbC1btjSXdX5ISIjtiy++yPQxxowZY6tZs6YtLS3NPu/MmTO2QoUK2f766y9zvX///raKFSvazp49a1+nV69ett69e9uv6/Jhw4alu+9Ro0aZtq5cufKizzM1NdUWHh5u+/XXX+3z9Ha//PJLuvX0uTZs2NB+vWzZsrbXXnst3TrNmze33X///ebyjh07zP18+eWXF2y/DRs2ZNmezB5bn0tERIS53KhRI9u3335rtlnVqlVtkydPNs9dt0FG7dq1sz3yyCMXff4AfA8juwC82rl4KnsbNmwwB63pZNF0AB351WUW3c2vI7MWTTXQ3FLrPs6cOSMdO3bM9DFWrVolW7duNbe3cmI1lSEpKcmM5Fo0xSIgICDTx7gYzVlt0KBBunmahjFw4EAzoqtpDJqecerUKZPikFPx8fGyf/9+k/fsSK87bhvl+PjabpWTtl9sdFdHnXUEPSEhwYxKA0BucIAaAK+mQZ7mkjrrILSgoKB01/W+NQVC6UFSF6NBZtOmTeX777+/YFnJkiVz9BgXo49v5fBaNIXhyJEjJg2hYsWKJt9WD/hyTJtwJse2W23JSduzctttt8mTTz5pcohvv/12k8sLALnByC4Ar6Yjp5pf+vHHH5uRwYyOHz9u/muZKz14TCeL5tzqch3hzWlgrQFnViW7mjRpYnJcNZdWD2BznHTUNad0BFerLeSE5gU//PDDZkRUR4w12D18+PAFAerF7k9Hg8uWLWvuK+N953TbXMrrp7nBOrKro7wAkFsEuwC8nga6Gsy1aNFCfv75ZxNw6u73Dz/80F7WqlOnTqYkmY4karUCrdzQr18/U72gWbNmOXqc0NBQeeqpp8xI5OjRo01qgh4UpuWylN63VkXQA+H0ALUdO3aY6gIajGqlgZzSVIo5c+bIvn37LghcMwvAtXqEPt9FixaZNmQcgdb70wBdaxEfO3Ys0/t54oknzMFv48aNk02bNsnTTz9tDkJ75JFHxNX0wDR9nrVq1XL5YwHwPgS7ALyenkhCA1gtifW///1P6tWrZ8pxaYA3cuRI+y73yZMnS/HixaVt27Ym+NXbaXCXG1qFQR/jhRdeMKPFWs3BylnVclwapGo5shtvvNEsv+uuu0zOro6e5pRWYtBSX1WrVk2X/pAZDbQ1gNVRZU0D0MA6Y01brbKg1Sc0X7lx48aZ3o/eTku16XPTHwVa4ULLnGkw7WoanGsJNgDICz89Si1PtwQA4BLpj4xffvnF1Ba+VFqDWOv/OvPscgAKPkZ2AQBupbV4tXZwXukBf1rZQlNDACAjRnYBAG6jpdiUllqrXLlynu5DT5BhnelOS8VpXjQAWAh2AQAA4LVIYwAAAIDXItgFAACA1yLYBQAAgNci2AUAAIDXItgFAACA1yLYBQAAgNci2AUAAIDXItgFAACA1yLYBQAAgHir/wPI7VsFpZ+vxQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plotting\n", "plt.figure(figsize=(8,5))\n", "plt.plot(valid_concs, dissociation_quadratic, 'o-', label='Quadratic formula')\n", "plt.xlabel(\"Concentration [M]\")\n", "plt.ylabel(\"% Dissociation\")\n", "plt.title(\"Concentration vs % Dissociation (Weak Acid)\")\n", "plt.xscale('log') # optional - semi-logarithmi scale\n", "plt.grid(True)\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "id": "146b4cef-40cc-4615-9388-d425303da2d6", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.12.11" } }, "nbformat": 4, "nbformat_minor": 5 }