{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"ChEn-3170: Computational Methods in Chemical Engineering Fall 2018 UMass Lowell; Prof. V. F. de Almeida **19Nov2018**\n",
"\n",
"# 13. Non-Linear Equation Root Finding w/ Newton's Method\n",
"$ \n",
" \\newcommand{\\Amtrx}{\\boldsymbol{\\mathsf{A}}}\n",
" \\newcommand{\\Bmtrx}{\\boldsymbol{\\mathsf{B}}}\n",
" \\newcommand{\\Mmtrx}{\\boldsymbol{\\mathsf{M}}}\n",
" \\newcommand{\\Imtrx}{\\boldsymbol{\\mathsf{I}}}\n",
" \\newcommand{\\Pmtrx}{\\boldsymbol{\\mathsf{P}}}\n",
" \\newcommand{\\Lmtrx}{\\boldsymbol{\\mathsf{L}}}\n",
" \\newcommand{\\Umtrx}{\\boldsymbol{\\mathsf{U}}}\n",
" \\newcommand{\\Smtrx}{\\boldsymbol{\\mathsf{S}}}\n",
" \\newcommand{\\xvec}{\\boldsymbol{\\mathsf{x}}}\n",
" \\newcommand{\\avec}{\\boldsymbol{\\mathsf{a}}}\n",
" \\newcommand{\\bvec}{\\boldsymbol{\\mathsf{b}}}\n",
" \\newcommand{\\cvec}{\\boldsymbol{\\mathsf{c}}}\n",
" \\newcommand{\\rvec}{\\boldsymbol{\\mathsf{r}}}\n",
" \\newcommand{\\mvec}{\\boldsymbol{\\mathsf{m}}}\n",
" \\newcommand{\\gvec}{\\boldsymbol{\\mathsf{g}}}\n",
" \\newcommand{\\zerovec}{\\boldsymbol{\\mathsf{0}}}\n",
" \\newcommand{\\norm}[1]{\\bigl\\lVert{#1}\\bigr\\rVert}\n",
" \\newcommand{\\abs}[1]{\\left\\lvert{#1}\\right\\rvert}\n",
" \\newcommand{\\transpose}[1]{{#1}^\\top}\n",
" \\DeclareMathOperator{\\rank}{rank}\n",
"$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"## Table of Contents\n",
"* [Introduction](#intro)\n",
"* [Algorithm](#algo)\n",
"* [Input Data 1](#data1)\n",
" - [Plot Root Function](#prf1)\n",
" - [Plot Root 1](#prf11)\n",
" - [Plot Root 2](#prf12)\n",
"* [Input Data 2](#data2)\n",
" - [Plot Root Function](#prf2)\n",
" - [Plot Root 1](#prf21)\n",
" - [Plot Root 2](#prf22)\n",
"* [Inverse Problem (Forensics and/or Reverse Engineering)](#inv)\n",
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Introduction\n",
"Newton's method for computing roots of a single non-linear equation, $f(x)=0$, is described in the course notes OneNote [ChEn-3170-nonlinalg-a](https://studentuml-my.sharepoint.com/:o:/g/personal/valmor_dealmeida_uml_edu/El7oNQ3QOR9Br59guJvS0SkBzt1vnDhQ_79tDR58GC-HtQ?e=MT5fBL),\n",
"\n",
"\\begin{equation*}\n",
"\\text{A} + \\text{B} \\overset{K_x}{\\longleftrightarrow} \\text{C} ,\n",
"\\end{equation*}\n",
"\n",
"that is, compute $x_A$, $x_B$, $x_C$ for the given stoichiometry and molar equilibrium reaction constant $K_x$. Note that this information is not sufficient for computing the equilibrium molar fraction. In addition, it is required that the molar fraction of **any two species is known** at some point in time or as a reference, say $x_{A_0}$, and $x_{B_0}$; note $x_{A_0} + x_{B_0} + x_{C_0} = 1$.\n",
"\n",
"The normalized extent of reaction, $\\widehat{\\varepsilon}$, at equilibrium, satisfies the equilibrium condition\n",
"\n",
"\\begin{equation*}\n",
"\\bigl(K_x+1\\bigr) {\\widehat{\\varepsilon}}^2 - \n",
"\\bigl(1-x_{C_0}\\bigr) \\bigl(K_x+1\\bigr) \\widehat{\\varepsilon} + x_{A_0}\\,x_{B_0}\\,K_x - x_{C_0} = 0 ,\n",
"\\end{equation*}\n",
"\n",
"*for this particular stoichiometry*. Therefore this can be casted as $f_\\text{eq} (\\widehat{\\varepsilon}) = 0$, thus \n",
"\n",
"\\begin{equation*}\n",
"f_\\text{eq} (\\widehat{\\varepsilon}) = \n",
"\\bigl(K_x+1\\bigr) {\\widehat{\\varepsilon}}^2 - \n",
"\\bigl(1-x_{C_0}\\bigr) \\bigl(K_x+1\\bigr) \\widehat{\\varepsilon} + x_{A_0}\\,x_{B_0}\\,K_x - x_{C_0} = 0 .\n",
"\\end{equation*}\n",
"\n",
"Note that if the stoichiometry changes, this function will be different.\n",
"\n",
"Once the values of $\\widehat{\\varepsilon}$ are found, the equilibrium molar fractions are computed from\n",
"\n",
"\\begin{equation*}\n",
"x_A = \\frac{x_{A_0} - \\widehat{\\varepsilon}}{1 - \\widehat{\\varepsilon}} \\ \\qquad ; \\qquad \\\n",
"x_B = \\frac{x_{B_0} - \\widehat{\\varepsilon}}{1 - \\widehat{\\varepsilon}} \\ \\qquad ; \\qquad \\\n",
"x_C = \\frac{x_{C_0} + \\widehat{\\varepsilon}}{1 - \\widehat{\\varepsilon}}.\n",
"\\end{equation*}\n",
"\n",
"Note that $\\widehat{\\varepsilon} \\le \\min(x_{A_0},x_{B_0})$."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"'''Equilibrium function at values or array values'''\n",
"\n",
"def f_eq( ext_hat, x_a_0, x_b_0, x_c_0, eq_kx_cte ):\n",
" '''\n",
" Root function f(ext_hat) for A + B <=> C.\n",
"\n",
" Parameters\n",
" ----------\n",
" ext_hat: float or numpy.ndarray, required\n",
" Normalized extent of reaction. If `ext_hat` is an array, \n",
" the return value is also an array of values.\n",
" x_a_0: float, required\n",
" Mole fraction of species A.\n",
" x_b_0: float, required\n",
" Mole fraction of species B.\n",
" x_c_0: float, required\n",
" Mole fraction of species B.\n",
" eq_kx_cte: float, required\n",
" Mole equilibrium reaction constant.\n",
" \n",
" Returns\n",
" -------\n",
" value: float or numpy.ndarray\n",
" Value or array of values of the equilibrium function \n",
" evaluated at `ext_hat`.\n",
"\n",
" Examples\n",
" --------\n",
" '''\n",
" assert x_a_0 >= 0. and x_b_0 >= 0. and x_b_0 >= 0.\n",
" assert abs(x_a_0 + x_b_0 + x_c_0 - 1.0) <= 1e-12\n",
" \n",
" value = (eq_kx_cte+1)*ext_hat**2 \\\n",
" - (1-x_c_0)*(eq_kx_cte+1)*ext_hat \\\n",
" + x_a_0 * x_b_0 * eq_kx_cte - x_c_0\n",
" \n",
" return value"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"'''Equilibrium function derivative'''\n",
"\n",
"def f_eq_prime( ext_hat, x_c_0, eq_kx_cte ):\n",
" '''\n",
" Derivative of equilibrium function f'(ext_hat) for A + B <=> C.\n",
"\n",
" Parameters\n",
" ----------\n",
" ext_hat: float or numpy.ndarray, required\n",
" Normalized extent of reaction\n",
" x_c_0: float, required\n",
" Mole fraction of species B\n",
" eq_kx_cte: float, required\n",
" Mole equilibrium reaction constant.\n",
" \n",
" Returns\n",
" -------\n",
" value: float or numpy.ndarray\n",
" Value or values of the root function evaluated at `ext_hat`.\n",
"\n",
" Examples\n",
" --------\n",
" '''\n",
" # value = (eq_kx_cte+1)*ext_hat**2 - (1-x_c_0)*(eq_kx_cte+1)*ext_hat + x_a_0 * x_b_0 * eq_kx_cte - x_c_0 \n",
" value = 2.0*(eq_kx_cte+1)*ext_hat - (1-x_c_0)*(eq_kx_cte+1)\n",
" \n",
" return value"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Algorithm\n",
"\n",
"Given $f(\\cdot)$, find the roots \n",
"\n",
"\\begin{equation*}\n",
"f(x) = 0 ,\n",
"\\end{equation*}\n",
"\n",
"using an iterative method based on the initial guess $x_0$. Compute the updates\n",
"\n",
"\\begin{equation*}\n",
"\\delta x_k = - \\frac{f(x_{k-1})}{f'(x_{k-1})} \\ \\qquad \\ \\forall \\ \\qquad \\ k = 1,\\ldots,k_\\text{max} , \n",
"\\end{equation*}\n",
"\n",
"then compute the approximation to the root\n",
"\n",
"\\begin{equation*}\n",
" x_k = x_{k-1} + \\delta x_k \\ \\qquad \\ \\forall \\ \\qquad\\ \\ k = 1,\\ldots,k_\\text{max} ,\n",
"\\end{equation*}\n",
"\n",
"until convergence, say, $\\abs{x_k} \\le 10^{-8}$ and $\\abs{f(x_k)} \\le 10^{-8}$, or no convergence achieved , say $k>k_\\text{max}$. "
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"\"\"\"Newton's method\"\"\"\n",
"\n",
"def newton_solve( x_a_0, x_b_0, x_c_0, eq_kx_cte,\n",
" ext_hat_0=0.0, k_max=30, tolerance=1.0e-10, verbose=True ):\n",
"\n",
" # Other initialization\n",
" delta_k = 1e+10\n",
" f_k = 1e+10\n",
" ext_hat = ext_hat_0\n",
"\n",
" if verbose is True:\n",
" print('\\n')\n",
" print('******************************************************')\n",
" print(\" Newton's Method Iterations \")\n",
" print('******************************************************')\n",
" print(\"k | f(e_k) | f'(e_k) | |del e_k| | e_k |convg|\")\n",
" print('------------------------------------------------------')\n",
"\n",
" import math\n",
" k = 0\n",
" \n",
" while (abs(delta_k) > tolerance or abs(f_k) > tolerance) and k <= k_max:\n",
" \n",
" f_k = f_eq( ext_hat, x_a_0, x_b_0, x_c_0, eq_kx_cte )\n",
" f_prime_k = f_eq_prime( ext_hat, x_c_0, eq_kx_cte )\n",
" \n",
" delta_k_old = delta_k\n",
" delta_k = -f_k / f_prime_k\n",
" \n",
" ext_hat += delta_k\n",
" \n",
" if k > 0:\n",
" if delta_k != 0.0 and delta_k_old != 0.0:\n",
" convergence_factor = math.log(abs(delta_k),10) / math.log(abs(delta_k_old),10)\n",
" else:\n",
" convergence_factor = 0.0 \n",
" else:\n",
" convergence_factor = 0.0\n",
" \n",
" k = k + 1\n",
" \n",
" if verbose is True:\n",
" print('%2i %+5.3e %+5.3e %+5.3e %+5.3e %5.2f'%\\\n",
" (k,f_k,f_prime_k,abs(delta_k),ext_hat,convergence_factor))\n",
"\n",
" if verbose is True:\n",
" print('******************************************************') \n",
" print('Root = %8.5e'%ext_hat)\n",
" \n",
" return ext_hat"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Input Data 1\n",
"\n",
"Reversible reaction: \n",
"$\\text{A} + \\text{B} \\overset{K_x}{\\longleftrightarrow} \\text{C}$\n",
"\n",
"Name | Parameter | Value |\n",
"----------------------------|--------------|-------| \n",
"initial mole fraction of A | $x_{A_0}$ | 0.5 | \n",
"initial mole fraction of B | $x_{B_0}$ | 0.5 |\n",
"initial mole fraction of C | $x_{C_0}$ | 0.0 |\n",
"mole equilibrium constant | $K_\\text{x}$ | 108 | "
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Max. ext_hat = 0.50\n"
]
}
],
"source": [
"'''Parameters for chemical equilibrium of A + B <-> C'''\n",
"\n",
"x_a_0 = 0.5\n",
"x_b_0 = 0.5\n",
"x_c_0 = 0.0\n",
"\n",
"assert abs(x_a_0 + x_b_0 + x_c_0 - 1.0) <= 1e-12\n",
"assert x_a_0 >= 0. and x_b_0 >= 0. and x_c_0 >= 0.\n",
"\n",
"eq_kx_cte = 108.0\n",
"\n",
"print('Max. ext_hat = %5.2f'%min(x_a_0,x_b_0))"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"'''Function: plot equilibrium function'''\n",
"\n",
"def plot_function( ex_min, ex_max, n_pts,\n",
" x_a_0, x_b_0, x_c_0, eq_kx_cte,\n",
" ext_hat_root=None ):\n",
" \n",
" import matplotlib.pyplot as plt\n",
" plt.figure(1, figsize=(6, 6))\n",
" \n",
" import numpy as np\n",
" ex_vec = np.linspace(ex_min, ex_max, n_pts)\n",
" \n",
" plt.plot(ex_vec, f_eq(ex_vec, x_a_0, x_b_0, x_c_0, eq_kx_cte),'b-',label='$f_{eq}$')\n",
" \n",
" plt.xlabel(r'$\\hat{\\varepsilon}$',fontsize=18)\n",
" plt.ylabel(r'$f_{eq}(\\hat{\\varepsilon})$',fontsize=18)\n",
" plt.title('Computing the Roots of $f(x)$',fontsize=20)\n",
" plt.legend(loc='best',fontsize=12)\n",
" plt.xticks(fontsize=16)\n",
" plt.yticks(fontsize=16)\n",
" \n",
" (x_min,x_max) = plt.xlim()\n",
" dx = abs(x_max-x_min)\n",
" x_text = (x_max+x_min)/2\n",
" \n",
" (y_min,y_max) = plt.ylim()\n",
" dy = abs(y_max-y_min)\n",
" y_text = y_max - dy*0.05\n",
" \n",
" plt.text(x_text, y_text, r'$x_{A_0}=$%8.2e'%x_a_0,fontsize=16)\n",
" y_text -= dy*0.06\n",
" plt.text(x_text, y_text, r'$x_{B_0}=$%8.2e'%x_b_0,fontsize=16)\n",
" y_text -= dy*0.06\n",
" plt.text(x_text, y_text, r'$x_{C_0}=$%8.2e'%x_c_0,fontsize=16)\n",
" y_text -= dy*0.06\n",
" plt.text(x_text, y_text, r'$K_x=$%8.2e'%eq_kx_cte,fontsize=16)\n",
" \n",
" \n",
" if ext_hat_root is not None:\n",
" \n",
" plt.plot(ext_hat_root, 0.0,'r*',label='root',markersize=14)\n",
" \n",
" (x_min,x_max) = plt.xlim()\n",
" dx = abs(x_max-x_min)\n",
" x_text = ext_hat_root + dx*0.01\n",
" \n",
" (y_min,y_max) = plt.ylim()\n",
" dy = abs(y_max-y_min)\n",
" y_text = 0.0 + dy*0.01\n",
" \n",
" plt.text(x_text, y_text, r'$\\hat{\\varepsilon}^*=$%8.2e'%ext_hat_root,fontsize=16)\n",
" \n",
" \n",
" plt.grid(True)\n",
" plt.show()\n",
" print('')\n",
" \n",
" return"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Plot Root Function"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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jMrpSRiHFt26d4fXXoOUlPDrw0iFpx07dgAwefJkqlevzpYtW6hSpUqBtxeIQdL8kZyc7HGEyssvv5xTp05lPK9bty5JSUncdtttTJ48GYCiRYvy5ptvcuedd2aUGzFiBFWrVmX16tXExcUB0LVrV+rWrcuYMWNYuHAh8HtP09mlp6dnJFiwI5HGZupXytt4s/vxxx957rnnSExM9Hv8HE9274Yffwzz6zVosnFMt27wj3/AmjXQq5fT0ahIsH37dgDuvPNO5s6dyzfffONXsnEPkpabrVu3kpCQkGUY5EDzNLS0ZGs5s2/fPvr160edOnV48803KV68OIsWLeKhhx6iWLFiDBo0iAsXLrB27VpGjRpFTExMRsIASExMZMaMGRnPc0uy2YeO9pRkvYk3s5SUFPr06UORIkV49913cy3nj3Bv8uymycYhrVpByZL2jaLJRnljx44dVK9enWnTpnHgwAHuuOMONm/eXODWZ6VKlaJhHv2anDlzhoYNG3r8gg2E8uXLk5ycnGP+qVOnspxBjBo1iqJFi7JkyRKKFi0KQKdOnTh58iSPPvood911F8nJyaSlpeVIGJmlp6cTExPjMcn27t2bW265hYSEBBISEgByJFlv43W7ePEivXv3Zv/+/axdu5arr746n1ekYD75xFbLB2nzAaPJxiGXXQadOsGyZbbONUifZxVFduzYQcuWLYmLi2PevHkkJCRw6623smHDBkqWLJlR7sEHH6R06dK8+uqrHDlyhMTERCZOnEhiYmKW7TldjVanTh12796dY/6ePXu46aabMp7v2rWLBg0aZCQat6ZNm/Lhhx/y008/Ua5cOWJiYhg2bBj33nuvx/25GzOULl06R3VWXFwcV111FTfeeGOuVV3exgvw22+/0a9fPzZt2sTKlSupV6+ex236KyUF1q2DRx4JyuYDSpONg7p3h8WL4ZtvoFYtp6NR4ez48eMcO3Ys40zkqquuYu7cuXTo0IH77ruP2bNnZ5yBjBkzhrp16zJw4EAGDx7MK6+8kiPRgPPVaL179+bJJ59k//79XHfddQAcOHCA9evXM27cuIxylStXZseOHfz6668Z12IAvvzyS4oVK8bll19OXFwcbdq0YefOnTRu3DgoLfO8jTc9PZ1BgwaxatUqli5dSvMgNhFbtQp+/RV69AjaLgLH2zbS0T6F8j4btwMH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\n",
"text/plain": [
"