{ "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "KTnWsbe29I0d" }, "source": [ "# Parameter estimation\n", "\n", "Keywords: parameter estimation, ipopt usage, data fitting\n", "\n", "This notebook demonstrates parameter estimation for the catalytic oxidation experiment conducted in the senior Chemical Engineering Laboratory course at Notre Dame. The reaction can be modeled as\n", "\n", "$$\n", "\\begin{align*}\n", "\\cal{A} \\longrightarrow \\rm{Products}\n", "\\end{align*}\n", "$$\n", "\n", "where concentration of $\\cal{A}$ is measured in the reactor feed and effluent streams. This reactor, with high internal recycle, operates in the stirred tank reactor regime." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Imports" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "colab": {}, "colab_type": "code", "id": "REWafWBGCe-F" }, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "import random\n", "import scipy.stats as stats\n", "import scipy.optimize as optimize\n", "\n", "import shutil\n", "import sys\n", "import os.path\n", "\n", "if not shutil.which(\"pyomo\"):\n", " !pip install -q pyomo\n", " assert(shutil.which(\"pyomo\"))\n", "\n", "if not (shutil.which(\"ipopt\") or os.path.isfile(\"ipopt\")):\n", " if \"google.colab\" in sys.modules:\n", " !wget -N -q \"https://ampl.com/dl/open/ipopt/ipopt-linux64.zip\"\n", " !unzip -o -q ipopt-linux64\n", " else:\n", " try:\n", " !conda install -c conda-forge ipopt \n", " except:\n", " pass\n", "\n", "assert(shutil.which(\"ipopt\") or os.path.isfile(\"ipopt\"))\n", "\n", "from pyomo.environ import *" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "WqeEvbaV9I0l" }, "source": [ "## Steps in model fitting\n", "\n", "The goal of parameter estimation is to use experimental data to estimate values of the unknown parameters in model describing the system of interest, and to quantify uncertainty associated with those estimates.\n", "\n", "Following the outline in [\"Model Fitting and Error Estimation\", Costa, Kleinstein, Hershberg](http://clip.med.yale.edu/courses/brdu/Costa_ODE.pdf):\n", "\n", "1. Assemble the data in useful data structures. Plot the data. Be sure there is meaningful variations to enable parameter estimation.\n", "2. Select an appropriate model based on underlying theory. Identify the known and unknown parameters.\n", "3. Define a \"figure of merit\" function the measures the agreement of model to data for given value of the unknown parameters.\n", "4. Adjust the unknown parameters to find the best fit. Generally this involves minimizing the figure of merit function.\n", "5. Evaluate the \"Goodness of Fit\". Test assumptions of randomness, and for systematic deviations between the model and data. \n", "6. Estimate the accuracy of the best-fit parameters. Provide confidence intervals and covariance among unknown parameters.\n", "7. Determine whether a better fit is possible.\n", "\n", "This notebook uses the Pandas package to encapsulate and display experimental data. [Pandas](https://pandas.pydata.org/) is a comprehensive Python package for managing and displaying data. It provides many useful and time-saving tools for performing common operations on data." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "se45YsER9I0m" }, "source": [ "## Step 1. The data\n", "\n", "The following data is taken from [\"Lecture Notes for CBE 20258\" by Prof. David Leighton]. The data consists of measurements done for three different feed concentrations `C0`. For each feed concentration, students adjust reactor temperature `T` using an external heat source, then measure the reactor exit concentration `C`. \n", "\n", "For convenience, the data is first encoded as a nested Python dictionary. The first index refers to the name of the experiment. The data for each experiment is then encoded as a nested dictionary with name, value pairs. The values are strings, numbers, or lists of measured responses. The name of the experiment is repeated to facilitate conversion to a Pandas data frame." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": {}, "colab_type": "code", "id": "sUnPo-qw9I0n" }, "outputs": [], "source": [ "data = {\n", " 'Expt A': {\n", " 'Expt': 'A',\n", " 'C0' : 1.64E-4,\n", " 'T' : [423, 449, 471, 495, 518, 534, 549, 563],\n", " 'C' : [1.66e-4, 1.66e-4, 1.59e-4, 1.37e-4, 8.90e-5, 5.63e-5, 3.04e-5, 1.71e-5],\n", " },\n", " 'Expt B': {\n", " 'Expt': 'B',\n", " 'C0' : 3.69e-4 ,\n", " 'T' : [423, 446, 469, 490, 507, 523, 539, 553, 575],\n", " 'C' : [3.73e-4, 3.72e-4, 3.59e-4, 3.26e-4, 2.79e-4, 2.06e-4, 1.27e-4, 7.56e-5, 3.76e-5], \n", " },\n", " 'Expt C': {\n", " 'Expt': 'C',\n", " 'C0' : 2.87e-4,\n", " 'T' : [443, 454, 463, 475, 485, 497, 509, 520, 534, 545, 555, 568],\n", " 'C' : [2.85e-4, 2.84e-4, 2.84e-4, 2.74e-4, 2.57e-4, 2.38e-4, 2.04e-4, 1.60e-4, 1.12e-4,\n", " 6.37e-5, 5.07e-5, 4.49e-5], \n", " },\n", "}" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "6ogOe4UU9I0r" }, "source": [ "The following cell converts the data dictionary of experimental data to a Pandas dataframe then prints the result." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 544 }, "colab_type": "code", "id": "RUgNHhsD9I0r", "outputId": "2cba62b9-bedd-47d4-93d0-67f3fde64d21" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " C0 T C\n", "Expt \n", "A 0.000164 423 0.000166\n", "A 0.000164 449 0.000166\n", "A 0.000164 471 0.000159\n", "A 0.000164 495 0.000137\n", "A 0.000164 518 0.000089\n", "A 0.000164 534 0.000056\n", "A 0.000164 549 0.000030\n", "A 0.000164 563 0.000017\n", "B 0.000369 423 0.000373\n", "B 0.000369 446 0.000372\n", "B 0.000369 469 0.000359\n", "B 0.000369 490 0.000326\n", "B 0.000369 507 0.000279\n", "B 0.000369 523 0.000206\n", "B 0.000369 539 0.000127\n", "B 0.000369 553 0.000076\n", "B 0.000369 575 0.000038\n", "C 0.000287 443 0.000285\n", "C 0.000287 454 0.000284\n", "C 0.000287 463 0.000284\n", "C 0.000287 475 0.000274\n", "C 0.000287 485 0.000257\n", "C 0.000287 497 0.000238\n", "C 0.000287 509 0.000204\n", "C 0.000287 520 0.000160\n", "C 0.000287 534 0.000112\n", "C 0.000287 545 0.000064\n", "C 0.000287 555 0.000051\n", "C 0.000287 568 0.000045\n" ] } ], "source": [ "df = pd.concat([pd.DataFrame(data[expt]) for expt in data])\n", "df = df.set_index('Expt')\n", "print(df)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "5CmNc6u89I0x" }, "source": [ "It's generally a good idea to create some initial displays of the experimental data before attempting to fit a mathematical model. This provides an opportunity to identify potential problems with data, observe key features, and look for particular symmetries or patterns in the data." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 294 }, "colab_type": "code", "id": "3InLRsTb9I0z", "outputId": "2a26323e-5871-4275-d290-93d95cb10c86" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for expt in sorted(set(df.index)):\n", " plt.scatter(df['T'][expt], df['C'][expt])\n", " \n", "plt.ylim(0, 1.1*max(df['C']))\n", "plt.xlabel('temperature / K')\n", "plt.ylabel('concentration')\n", "plt.legend([\"Expt. \" + expt for expt in sorted(set(df.index))])\n", "plt.title('Effluent Concentrations');\n", "plt.grid(True)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "4L3jZrmB9I04" }, "source": [ "An initial plot of the data shows the effluent concentration decreases at higher operating temperatures. This indicates higher conversion at higher temperatures. A plot of conversion `X`\n", "\n", "$$\n", "\\begin{align*}\n", "X & = \\frac{C_0 - C}{C_0}\n", "\\end{align*}\n", "$$\n", "\n", "collapses the data into a what appears to be a single function of temperature. The following cell adds conversion as an additional column of the data set." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 294 }, "colab_type": "code", "id": "Yc4E75_M9I06", "outputId": "75513986-9094-4d5d-f8bc-446459457f09" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# add a column 'X' to the dataframe\n", "df['X'] = 1 - df['C']/df['C0']\n", "\n", "for expt in sorted(set(df.index)):\n", " plt.scatter(df['T'][expt], df['X'][expt])\n", "\n", "plt.xlabel('Temperature (K)')\n", "plt.ylabel('conversion ratios')\n", "plt.legend(['C0 = ' + str(list(df['C0'][expt])[0]) for expt in sorted(set(df.index))])\n", "plt.title('Conversion at different feed concentrations');\n", "plt.grid(True)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "3EwL_u_m9I09" }, "source": [ "## Step 2. Select a model\n", "\n", "A proposed steady-state model for the catalytic reactor is\n", "\n", "$$\n", "\\begin{align*}\n", "0 & = (C_0 - C) - \\frac{m}{q} k_0 C^n\\left(\\frac{T}{T_r}\\right)^n e^{-\\frac{E_a}{R T_r }\\frac{T_r}{T}}\n", "\\end{align*}\n", "$$\n", "\n", "The known parameters are the flow rate $q$, the mass of catalysit $m$, and a reference temperature $T_r$. The ratio $\\frac{T}{T_r}$ is the 'reduced temperature' and provides for a better conditioned equation. The unknown parameters are the reaction order $n$, the Arrhenius pre-exponental factor $k_0$, and the reduced activation energy $\\frac{E_a}{R T_r}$. Generally the pre-exponential factor is very large, therefore is combined within the exponential term as $\\ln k_0$.\n", "\n", "$$\n", "\\begin{align*}\n", "0 & = (C_0 - C) - \\frac{m}{q} C^n\\left(\\frac{T}{T_r}\\right)^n e^{\\ln k_0-\\frac{E_a}{R T_r }\\frac{T_r}{T}}\n", "\\end{align*}\n", "$$\n", "\n", "The unknown parameters are:\n", "\n", "|Parameter|Code|Description|\n", "|:-------|:---|:---|\n", "|$n$|`n`|reaction order|\n", "|$\\ln k_0$|`lnk0`| natural log of Arrenhius pre-exponential factor|\n", "|$\\frac{E_a}{R T_r}$|`ERTr`|reduced activation energy|" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "-sfGqx0s9I0_" }, "source": [ "## Step 3. Define a \"figure of merit\"\n", "\n", "Each experimental measure consists of values of the unknown parameters and experimental values $C_{0,k}$, $T_k$, and $C_k$. Given estimates for the unknown parameters, the model equation provides a convenient definition of a residual $r_k$ as\n", "\n", "$$\n", "\\begin{align*}\n", "r_k & = C_{0,k} - C_k - \\frac{m}{q} C^n\\left(\\frac{T_k}{T_r}\\right)^n e^{\\ln k_0-\\frac{E_a}{R T_r }\\frac{T_r}{T_k}}\n", "\\end{align*}\n", "$$\n", "\n", "If the model is an accurate depiction of the reaction processes then we expect the residuals to be small, random variates." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": {}, "colab_type": "code", "id": "gifW-Ac09I1A" }, "outputs": [], "source": [ "Tr = 298 # reference temperature.\n", "q = 0.1 # flow rate (liters/min)\n", "m = 1 # amount of catalyst (g)\n", "\n", "def residuals(parameters, df):\n", " n, lnk0, ERTr = parameters\n", " C0, C, T = df['C0'], df['C'], df['T']\n", " return C0 - C - (m/q) * C**n * (T/Tr)**n * np.exp(lnk0 - ERTr*Tr/T)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "RlXeZtx49I1D" }, "source": [ "To illustrate, the following cell calculates the residuals for an initial estimate for the unknown parameter values. The residuals are then plotted as a function of the experimental variables to see if the residuals behave as random variates." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 310 }, "colab_type": "code", "id": "U3TWE7dE9I1E", "outputId": "a6bb70f5-1d96-4d4c-87d2-638c19bd7055" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "parameter_names = ['n', 'lnk0', 'ERTr']\n", "parameter_guess = [1, 15, 38]\n", "\n", "def plot_residuals(r, df, ax=None):\n", " rmax = np.max(np.abs(r))\n", " if ax is None:\n", " fig, ax = plt.subplots(1, len(df.columns), figsize=(12,3))\n", " else:\n", " rmax = max(ax[0].get_ylim()[1], rmax)\n", " n = 0\n", " for c in df.columns:\n", " ax[n].scatter(df[c], r)\n", " ax[n].set_ylim(-rmax, rmax)\n", " ax[n].set_xlim(min(df[c]), max(df[c]))\n", " ax[n].plot(ax[n].get_xlim(), [0,0], 'r')\n", " ax[n].set_xlabel(c)\n", " ax[n].set_title('Residuals') \n", " ax[n].grid(True)\n", " n += 1\n", " plt.tight_layout()\n", "\n", "r = residuals(parameter_guess, df)\n", "plot_residuals(r, df)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "RdMFzrmV9I1I" }, "source": [ "## Step 4. Find a best fit\n", "\n", "A least squares 'figure of merit' for the fit of the model to the experimental data is given by\n", "\n", "$$\n", "\\begin{align*}\n", "SOS & = \\sum_k r_k^2\n", "\\end{align*}\n", "$$\n", "\n", "Our goal is to find values for the unknown parameters that minimize the sum of the squares of the residuals.\n", "\n", "The following cell defines two functions. The first is `sos` which calculates the sum of squares of the residuals. The `best_fit` function uses `scipy.optimize.fmin`" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 136 }, "colab_type": "code", "id": "NZb_BQDh9I1I", "outputId": "b9020420-26b0-4b9b-c262-66b0948e097b" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Optimization terminated successfully.\n", " Current function value: 0.000000\n", " Iterations: 140\n", " Function evaluations: 257\n", "n = 0.65\n", "lnk0 = 13.65\n", "ERTr = 34.21\n" ] } ], "source": [ "def sos(parameters, df):\n", " return sum(r**2 for r in residuals(parameters, df))\n", "\n", "def best_fit(fcn, df, disp=1):\n", " return optimize.fmin(fcn, parameter_guess, args=(df,), disp=disp)\n", "\n", "parameter_fit = best_fit(sos, df)\n", "\n", "for name,value in zip(parameter_names, parameter_fit):\n", " print(name, \" = \", round(value,2))" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "cNJUlaN19I1M" }, "source": [ "Let's compare how the residuals have been reduced as a result of minimizing the sum of squares." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 225 }, "colab_type": "code", "id": "sty1UERv9I1O", "outputId": "a4ec49b3-cc2e-42be-b277-6a478c2d794e" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = plot_residuals(residuals(parameter_guess, df), df)\n", "plot_residuals(residuals(parameter_fit, df), df, ax=ax);" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "T7ygk9KM9I1Q" }, "source": [ "## Step 5. Evaluate the goodness of fit" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "T7ygk9KM9I1Q" }, "source": [ "### Plotting residuals\n", "\n", "An important element of any parameter fitting exercise is to examine the residuals for systematic errors. The following cell plots the residuals as functions of ." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 225 }, "colab_type": "code", "id": "MmeNsEjN9I1S", "outputId": "4a2e17e3-a355-4435-8448-354eaa9d0dce" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1gAAADQCAYAAAAalMCAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAtJklEQVR4nO3df7RcVX338c83lxu4EMyNgoFcUGjRoEglXrQWbJvQYvghkqpd7ar95erT1D6tVVuiSX8s6NOuRWxqpV1WW/uLttrGViGPgjVSSdqK1ZqQYIh4H35WcwEV5VIDF3Jz833+mHPD3JtzZs7M2WfOnjPv11qzkpk7c85373O+e8+es8855u4CAAAAABS3qOoAAAAAAKAuGGABAAAAQCAMsAAAAAAgEAZYAAAAABAIAywAAAAACIQBFgAAAAAEwgCrz5nZm83sMy3+vtPM/leA9aw2swNFlwPEjpwCwiKngPDIq7gxwOoxM3vIzKbN7KCZPWpmN5rZkm6X5+4fcffXhowR6CfkFBAWOQWER14NFgZY1bjK3ZdIukDSKkmbqg0H6HvkFBAWOQWER14NCAZYFXL3RyVtVyPRZGavNrPPm9mUmd1lZqvn3mtmP29mD5jZd83sQTN7c9Prn2t636Vm9lUze8LM3i/Jmv52nZl9uOn5WWbmZnZc8vwtZnZPso4HzOyXsmI3s3eb2WTy3gkz+5FQ9QJ0i5wCwiKngPDIq/pjgFUhMztD0uWS7jOzMUm3Svp9Sc+VdI2kj5vZqWZ2kqQ/kXS5u58s6SJJe1OWd4qkj0v6bUmnSLpf0sUdhPRNSa+T9BxJb5H0PjN7Rcp6Vkr6VUmvTOJZK+mhDtYDlIKcAsIip4DwyKv6q2yAZWZ/bWbfNLO7Ay1v1sz2Jo9PhFhmibaZ2XclfV2NnfpaST8t6VPu/il3P+Lut0naJemK5DNHJL3MzEbc/RF335+y3CskfcXdP+buM5JukPRo3qDc/VZ3v98b/k3SZyT9YMpbZyUdL+mlZjbs7g+5+/1514NykFPkFMIb4Lwip1CKAc4pibwaGFUewbpR0mUBlzft7hckj9cHXG4Z1iUj/9WSzlXj14YXSvrx5PDwlJlNSXqNpNPd/UlJPyHprZIeMbNbzezclOWuUCNpJUnu7s3P2zGzy83sC2b2nWT9VySxzePu90l6h6TrJH3TzLaa2Yq860FpbhQ5tVrkFMK6UYOZV+QUynKjBjOnJPJqYFQ2wHL3f5f0nebXzOx7zezTZrbbzP4jYyeqjeRXghsl/aEaifD37j7a9DjJ3Tcn793u7pdKOl3SVyX9RcoiH5F05twTM7Pm55KelHRi0/PTmt57vBqHl/9Q0nJ3H5X0KTXN4V0Q+z+4+2vUaBhc0ns6KDpKQE6RUwhv0POKnEJog55TEnk1CGI7B+tDkt7m7uNqzEH9QAefPcHMdiUj8HWlRFeOGyRdKulzkq4ys7VmNmRmJ1jj3gNnmNlyM3u9NebiPiPpoBqHaRe6VdJ5ZvYGa5y4+GtqSiI15u3+kJm9wMyWav7Vaxarcdj3W5IOm9nlklIv/2lmK83skiQpn5Y0nREPqkdOkVMIb9Dy6gaRUyjXoOWURF7VWjQDLGvcC+AiSf9sZnsl/bkao3UlO8zdKY/tTYt4gbtfKOmnJN1gZt/b6zJ0w92/Jenv1DjkerWk31RjJ/+6pA1qbKNFkn5D0sNq/Orzw5L+d8qyHpP045I2S/q2pBdJuqPp77dJ+qikL0vaLemWpr99V42E/CdJj6tRj1lzmY9P1vGYGnN8n5/EjYiQU+QUwhvEvCKnUKZBzCmJvKo7a0zTrGjlZmdJusXdX2Zmz5E04e6nB1jujclyP1Z0WUA/IaeA8MgrICxyCnUXzREsd/8fSQ+a2Y9LjfmjZvbyPJ81s2XJ4cq5S1VeLOkrpQUL9AFyCgiPvALCIqdQR1Vepv0fJf2npJVmdsDMfkHSmyX9gpndJWm/GodM83iJpF3J53ZI2uzuJBgGCjkFhEdeAWGRUxgElU4RBAAAAIA6iWaKIAAAAAD0u+OqWOkpp5ziZ511VhWrliQ9+eSTOumkkypbf6eIt1wh4t29e/dj7n5qoJA6Rk711iCVt6qyVp1TUvV5lVdd9se6lEOKsywx5VSM9dOM+LoXc2xS+Pgy88rdCz8kjUr6mBo3QLtH0g+0ev/4+LhXaceOHZWuv1PEW64Q8Ura5QFyybvMK3KqtwapvFWVteqc8gjyKq+67I91KYd7nGWJKadirJ9mxNe9mGNzDx9fVl6FOoL1x5I+7e5vMrPFmn+3aADdIa+AsMgpICxyCkhReICV3L/ghyT9vCS5+yFJh4ouFxhk5BUQFjkFhEVOAdkKX0XQzC6Q9CE17jvwcjXuEP12d39ywfvWS1ovScuXLx/funVrofUWcfDgQS1ZsqSy9XeKeMsVIt41a9bs9sad5IPIk1fkVHUGqbxVlbWKnEreF01e5VWX/bEu5ZDiLEtMORVj/TQjvu7FHJsUPr7MvEqbN9jJQ9KFkg5L+v7k+R9L+r1Wn6l6Xnvs80MXIt5yxXgOVqd5RU711iCVty7nYPVjX5VXXfbHupTDPc6yxJRTMdZPM+LrXsyxuffuHKwQl2k/IOmAu38xef4xSa8IsFxgkJFXQFjkFBAWOQVkKDzAcvdHJX3dzFYmL/2IGoeLAXSJvALCIqeAsMgpIFuoqwi+TdJHkivIPCDpLYGWCwwy8goIi5wCwiKngBRBBljuvleNubgAAiGvgLDIKSAscgpIF+IcLAAAAACAGGABAAAAQDAMsAAAAAAgEAZYAAAAABBIqKsIooa27ZnUlu0TenhqWitGR7Rh7UqtWzVWdVgAAiLPe4v6BoDyVd3WMsBCqm17JrXppn2anpmVJE1OTWvTTfskiS8DQE2Q571FfQNA+Vq1taM9ioEpgki1ZfvE0R1zzvTMrLZsn6goIgChkee9RX0DQPliaGsZYCHVw1PTHb0OoP+Q571FfQNA+WJoaxlgIdWK0ZGOXgfQf8jz3qK+AaB8MbS1DLCQasPalRoZHpr32sjwkDasXVlRRABCI897i/oGgPLF0NZykQukmjvhmqtdAfVFnvcW9Q0A5WvV1u7ceW9PYmCAhUzrVo3R8QM1R573FvUNAOWruq1liiAAAAAABMIACwAAAAACCTbAMrMhM9tjZreEWiYwyMgpIDzyCgiLnAKOFfII1tsl3RNwecCgI6eA8MgrICxyClggyADLzM6QdKWkvwyxPGDQkVNAeOQVEBY5BaQLdRXBGyS9S9LJWW8ws/WS1kvS8uXLtXPnzkCr7tzBgwcrXX+niLdckcZ7g8ipaA1SeWtW1hvUR3mVV122UV3KIdWrLG3coC5yKvb6Ib7uxRyb1MP43L3QQ9LrJH0g+f9qSbe0+8z4+LhXaceOHZWuv1PEW64Q8Ura5QVzycmpvjFI5a2qrCFzyvs0r/Kqy/5Yl3K4x1mWmHIqxvppRnzdizk29/DxZeVViCmCF0t6vZk9JGmrpEvM7MMBlgsMKnIKCI+8AsIip4AMhacIuvsmSZskycxWS7rG3X+66HKBfrBtz6S2bJ/Q4tPOGQ+1THIKMZrb1x+emtaK0RFtWLuyr26YG3te9Xv9YvDEnlPAnOb2deMFRzS1Z7L09jXUOVjAwNm2Z1Kbbtqn6ZnZqkMBSrVwX5+cmtamm/ZJEoOAAKhfACjHwvb10OyRnrSvQW807O473f11IZcJxGrL9onSB1fkFGKQtq9Pz8xqy/aJiiIqJra8qlv9YvDEllPAnKra16ADLGCQPDw1XXUIQE9k7evkQBjULwCUo6r2lQEW0KUVoyNVhwD0RNa+Tg6EQf0CQDmqal8ZYAFd2rB2pUaGh6oOAyhd2r4+MjykDWtXVhRRvVC/AFCOqtpXLnIBdGnu5Mgt2yf0SMWxAGVq3te5yl141C8AlGNh+7p4aJGuf8P5XEUQiNm6VWNat2pMtum+3VXHApRpbl9HOahfAChHc/u6c+dOre5BW8sUQQAAAAAIhAEWAAAAAATCAAsAAAAAAmGABQAAAACBMMACAAAAgEAYYAEAAABAIAywAAAAACAQ7oOFTNv2THLjSwDz0C7kQz0BQNzKbKcZYCHVtj2T2nTTPk3PzEqSJqemtemmfZLEl4Qmc8m5+LRzxquOBcgSqhOhXcgn5npi4AegajG0Q2W300wRRKot2yeO7nRzpmdmtWX7REURxWcuOSenpqsOBcjUvJ+6nu1Etu2Z7HhZtAv5xFpPIfcFAOhGLO1Q2e104QGWmZ1pZjvM7B4z229mbw8RGKr1cMagIev1QZSWnKGQVwglZCfSz+1CL3Mq1nqKdeCH/kQ/hW7E0g6V3U6HOIJ1WNJvuPtLJL1a0q+Y2UsDLBcVWjE60tHrg6jkL0vkFYII2Yn0ebvQs5yKtZ5iHfihb9FPoWOxtENlt9OFB1ju/oi735n8/7uS7pHEhO4+t2HtSo0MD817bWR4SBvWrqwooviU+WWJvEIoITuRfm4XeplTsdZTrAM/9Cf6KXQjlnao7Hba3D3IgiTJzM6S9O+SXubu/7Pgb+slrZek5cuXj2/dujXYejt18OBBLVmypLL1d6qqeKemZ/SNJ57WodkjWjy0SMuXnqDRkeG2nxuU+p2antHk49M64q5rrrlGzzxyr5UQXmZekVPV6afyNu+ncxaZaWzZSFf53G270Kk1a9bsdvcLgy9YvemrelVPUv79sei+ULZ+yqt2YixLTDkVY/00I77utYut6naoOb4Q7XRmXrl7kIekJZJ2S3pDu/eOj497lXbs2FHp+jtFvOUqEu/Ndx7wi67/rC8+7Rz3QLnkXeQVOdVb/Vbeuf30rHff4hdd/1m/+c4DuT9bVVkl7fIKc8ojyKu8OtlGRfaFsvVbXrUSY1liyqkY66cZ8XUvT2xVtkOh6y4rr4Jcpt3MhiV9XNJH3P2mEMsE+sG6VWNat2pMtum+3aGXTV4hlLn9dNCRU+wLCIucQjcGoR0KcRVBk/RXku5x9z8qHhIA8goIi5wCwiKngGwhriJ4saSfkXSJme1NHlcEWC4wyMgrICxyCgiLnAIyFJ4i6O6fk1TKyf3AoCKvgLDIKSAscgrIFuIIFgAAAABADLAAAAAAIBgGWAAAAAAQSJDLtHdq3+QTunjz7dqwdmXtL9MIAP1m255Jbdk+oYenprXxgiOa2jNJW6359bJidIQ+DAD6UC/a8koGWJI0OTWtDf98lyTRQQFAJLbtmdSmm/ZpemZWknRo9og23bRPUmdtdR0GI80/BkqaVy+TU9Nd1QsAoDpT0zPa9NlibXlz/zZ86lnnp72n0imCM0dc131if5UhAACabNk+cbTjmTM9M6st2ydyL2NukDY5NS3Xsx3Ytj2TgaMt31zs131if+F6AQBU6xtPPF2oLV/Yv9nQcYvT3lf5OVhT0zNVhwAASDw8Nd3R62lCDNJiMj0zm9lXdVIvAIBqHZo9kvp63rY8rX9LU/kACwAQjxWjIx29nibEIK1fdFIvAIBqLR5KH/rkbcvz9mOVnYM1Z9mJw1WHgAx1OIcCGCQhcnbD2pXzzjWSpJHhoaPnIeWxYnREkymdUD8PRpadOKynZ44Uqpdeoe0GUJWp6RldvPn2aNuf5UtP0MjwbNdteVb/tlClR7CGh0zXXnVelSEgQ53OoQAGQaicXbdqTNe/4XyNjY7I1Pi17/o3nN9RB7lh7UqNDA/Ney3WwUgeI8NDuvaq8+bVy9joSMf10gu03QCqsm3PpCYfn466/RkdGS7Ulqf1b2kqO4I1FuGoFs9qdQ4F2wyIT8icXbdq7Ohndu7cqdVdfH4uplh/xcxrYV8VexlouwFUZcv2Cf3kmT7vtRjbn+Y+rpvPSs/2bz57+FDa+yoZYJ0/tlR3bLykilUjp0E6hwKog9hytkgHFot+7Kti2w8ADI6Hp6alMzNer5Hm/s3e87p9ae/hIhdIFeJEdwC9Q85CYj8AUB3an2cxwEKqDWtXanjI5r02PGR9ew4F0A+27ZnUxZtv19kbb9XFm2/vaN563c57Qnd6sR8U2U8BlKfq3NywdqUW2fzvjoPaDwUZYJnZZWY2YWb3mdnGEMtEBLzNc5SKvBosRS9OsPDiFLFehKFKg5BTZe8HXEQDzQYhp/pFDLm5btWYxpaN0A8pwDlYZjYk6U8lXSrpgKQvmdkn3P0rWZ/ZN/mELt58e9+e9DwItmyf0MyR+SOqmSMe3YmKddVNXqG/cXGCclWVU1VcMr3M89/YTzGHfiouseTm6Miw7ti4uu376n47iRAXuXiVpPvc/QFJMrOtkq6WlJlg3/PtA3rvB96uRR80PXbqSTplyfEBwsjvgqkpaXS0p+ssoop43/vAt7P/+Onntfws9RtEZ3k1MSGtXt2z4BaKtA5LU0Z5i+ScJD128Bmt+NaTeq8/+8NIiDa2Rtu2476qaF6VtU0W6uU2KrqftlKjfa1WZWmh65yKvX76Mb4yc7MTeequV21jt/GFEGKANSbp603PD0j6/oVvMrP1ktZL0kuPG9YZJ7kk16GnDmrqcG+vLjI7O6upqamerrOIKuJ9wRLpiB87J3CRWdtYqN8g2uZVc069bHi40jJEWoelKaO8RXJOkg4dmtWKE4+d11u0ja3Rtu24ryqaV2Vtk4V6uY2K7qet1Ghfq1VZWug6p2Kvn36Mr8zc7ESeuutV25imV9s2xADLUl47Zgu7+4ckfUiSjj/9Rf6aq99z9MMPbr4yQBj57dy5U6sr/LW/U1XEu3PPpDZ87C7NzD67KYeHTFve9PK2h3AHqX7nDnEv/sYvjYeNqn1eLcypK3/yj4IfYs97CL/ftnlRZZR3ZzJ/vnmKh6mx0fPcN3DVxltTT5Ms2sZWtm0tLQWKLTHltZZ91YUXXuiju3Z1vcKytslCvdxGRffTlsveuVNTS18U/bShPO1ilG1iBDk111f9yrnP6E+/eny02znK7dckLb4i39vKjm2hXrWNaYJv24y8CjHAOqD5V70/Q9LDeT88euJwgBBQCi5y0dK2lC8aAXWcV3MntEphboa6sHyhl4+G5i9rS0eGdcLwIj3+1MzRL61SvrpfMTqiyZR7jQzi5XEzFOqruhFqm8R0rkLzTTYnp6Y73k9bmZqe0abPxt3m0C7O01VOTU5N69tPHtbk1JGjzwe4DsNa8D1tZtb1jo/u1ZbtE1ENYgehvwpxFcEvSXqRmZ1tZosl/aSkT+T98NPlfDlFQa0ucoGGtBNKA+oqr+ZOaA2h1QmzCGPhVZ+mpmf09MwRLTtx+JjfM9rVPZdpb6tQX9WNENskhiuDLbRu1Zju2HiJxkZHOt5PW/nGE09H3+bQLs4TLKcGuA6DSfveNieGdqPZIPRXhQdY7n5Y0q9K2i7pHkn/5O77835+euZI0RBQgqy7btftbtxFlFkXRfIqVFzsA+XL+rL2+FMzqe9vVfdcpr21on1VN0Jsk5i/0IduIw7Npn8fiKnN6cd2ce7eSItPOyfoVPbQORVzHfaDdvUXS7shDUZ/FWKKoNz9U5I+FWJZiMMgHL4tavTE4cwvwiF0m1dLR8JMu+12H4hpOlPsOv1C0a7uy7w8dx1U0VcV3SYxf6EP3U8sHkr/zTemfmfpyLCmpo9t92OKsVnJU9mD5lSsddgvsvKxWQztxpy691dBbjRcxDLOwYrSmnNP7ej1QZRysZ4ohDqPud0h/OY7xk88+l1t2zMZ5XSmmGV9oRgdGa799Ankk7WPxPBldMPalRpeNL/BGV5kXe+ny5eeEPV+v23PpJ48dPiY14uUuWwlT2UPiu8XxaT12QvF0G4MisoHWFd+3+lVh4AUO776rY5eH0RPpPyKGYOpQEfVWh3CXziQOjR7RJtu2qff/eT+aKczxShrEHvd68+r/fQJ5BP9uQoLf9Ap8APP6Mhw1Pv9lu0T867QNmfJCcdFE+NCMR2xaIfvF8U099nSsakYVbsxAIJMESyChIpTzNNSYpHncHwVQv5ClXUIP+u8kKxfSqveb2Kdtth8Rba02GKIsdeO3vog8PkiZejFftVuH6lS2oBjZrZxMaRu4+vVtKFutl1WOxbqR60yxNpPpem2n4i1fa9Cc/5QL+Vq11dVPsCq+osX0mXNMw91fk8drDn3VH34C1+rOox5evULVehzh1op2knEflnlus9D70TZ54uE1Mv9KrZ9ZC4ns764x96vd7vt+vHc5A1rV/ZNTi0y09kbb+2onY+9fa9SbO1GneTpqyqfIsgX9jhlnccT/j6F/Su2o6+9mE4zd95V1ulnoc8dCnFOV8xXYcN8/XS+yKDuV805mSXmAYfU/baLfrpminWrxvTG8TEN9UHnPevecTs/qHmIauXpqyo/gtUHOT+QsqY8xDwVotdimnZx/thS3bHxklLX0e4Xm7lzh6T805naHZ1q1XnmHUhWNd2V6Rmdi/3IR7NBnUbd7otFkQHH1PSMLt58e+k50+22W7dqTLv++zv6xy9+XbPuGjLTG8fjPkqwbc+kPr57UrOxXpUpQ952PtY8pP2vtzz7V+UDLL6wx2lkeJGeSrlH2chw5Qc9ozFk1nedVhGtvlgtHlo07+hZqKkdITrPKqb1MG2lO/10vkg/ThcLoVXujRX4Irltz6QmH5/W5FTjCFGZOVPkFhTNg5VZd31896QufOFzo83rfjoqvFCedj7GPKT9r788fVXl35br3hn1q+nD6Td8zHp9EA3S4ErK7uxM0srTTu6442g3tWPbnkktyjjEvXRk+Ogl4i/efHvLqSTdTOtpvgR9u+WnYdpKd/JcZjgW/ThdLEsn+3tWnz02OqI7Nl7S9RfILdsndGRBm1pWzuTddgvr5bpPxHuV1KxtWPWRnCJcirJ9b4f2v/7y9FWVH8Hivgdxyho7DNiYoqXRjAuB1FXoXwpbHZ2a+wUwbRA7vMj05KHDR+u+3a+Dra7CljaNQ9Ixvz6+46N79buf3K9rrzov1xfIWKetxK55Wz1ScSztxHx1v050+mt72kUTQgwsH56als7MeL1D7aZn5dl2afXSMvYCyryQTz8dFU7TSfs+OTWtIbN5g5mFn0mrq3d+dK92/fd39Pvrzg8SM+1//eXpqyofYMV2oQAgr0OH+3PaRbdafrF64t6Ol9dqwJY1rWXITEtOOE6PL5ha3G6+ftrVlLK+lBx/3KLUdT/+1MzRjn60QNnQ2ty2sk337a46lnbqcJWuTs9zLGtg2ciN72a8nl/eAWO7bdfJ1LqiV0ktOp2s1Tbsp6sIZsnTvkvH/jCWVo9pdeWSPvKFrwWb6kn7Pxja9VWVTxFkRI9+lXaOWp21uvFwN1pN7chqF464Z5632WlbkvWlpNVRybzTPOo0fQz11s2v7etWjemOjZfowc1XFpoW2GzD2pXHTAnuJmdCTc/K254UzesQ8bbahgtvPlu14aHuvna22x556zFrOZ4sIwTaf0gRHMFiRA/0j5C/2Lf6JTzrHjtz7UWIXwe7/XGn8bmTUv/WPNVn6ciwThhepKmnZvp2+hjqL5Zf29etGtO2R7+isdGhQkfGQk3PajW1bu4CR0Uu6tEurpAX8onpqPC5p52sXZuv1LZ/ue3otl6U44JR7fbHvPXYarvmrfMQU1BRf5UOsBjRx2vZicPHTMOaex0NJ2ZcaRH5ZQ3Y2p3nEeIckKyOdtmJw3p65kjmlJqsjn7hVJ+p6RmNDA/pfT9xAR0rolXWOVXdGB0Z1h0bVxdaRqgBY6updbPuR+soxNTIovHGtA3zat7WeW4B0q4seetxw9qVeudH96beyzFPnYeagor6q2yKYC9uioruXXvVeRoemj9dY3jIdO1V51UUUXyO75OrnfWjVtMRQ01VzJrGce1V5+n6N5yv0ZSboLfq6LlyFPpR6Km/VQs1Pavd1LpQuR0i3n7fhgvjHx0Z1rIThzsqS956XLdqTG9+9Qu08Pq0eeucdh55FTqCZWZbJF0l6ZCk+yW9xd2n2n2uFzdFRTEc4m6vrHu4dZtXddPqF8AQvw6228ezrjK4btWYdu489qIeXDkqXuRUa3X6tT1k3zVXL2dvvDX1iEeI3A4Vb6+3YeicKhp/J/X4++vO14UvfG5XdU47j7yKThG8TdImdz9sZu+RtEnSu4uHhRjUqdMtQ4mXvyWveqTdPt5JDsRyLgtSkVMDJHTfVXZu92lfG11OdVKP3dY57TzyKjRF0N0/4+6Hk6dfkHRG8ZCA/lDWTVHJq/7ElaPiRU6hCHL7WIOaU+wLyMs80J1jzeyTkj7q7h/O+Pt6Seslafny5eNbt24Nst5uHDx4UEuWLKls/Z0i3nIViXdqekbfeOJp/do7f13PPHLvwmndhbXKK3KqOlnlndsfDs0e0eKhRVq+9ITUc7n6SVXbds2aNbvd/cLQy+2nviqvuuRfzOXoNLdjLEtMORVj/TRrFV8M7XzM9RdzbFL4+DLzyt1bPiT9q6S7Ux5XN73ntyTdrGTA1u4xPj7uVdqxY0el6+8U8ZYrRLySdnmOfd9LyityqrcGqbxVlbXqnPII8iqvuuyPdSmHe5xliSmnYqyfZsTXvZhjcw8fX1ZetT0Hy91/tNXfzeznJL1O0o8kKwLQBnkFhEVOAWGRU0D3il5F8DI1Tmr8YXd/KkxIwGAjr4CwyCkgLHIKaK3ofbDeL+lkSbeZ2V4z+7MAMQGDjrwCwiKngLDIKaCFQkew3P2cUIEAaCCvgLDIKSAscgporegRLAAAAABAggEWAAAAAATCAAsAAAAAAmGABQAAAACBMMACAAAAgEAYYAEAAABAIAywAAAAACAQBlgAAAAAEAgDLAAAAAAIhAEWAAAAAATCAAsAAAAAAmGABQAAAACBMMACAAAAgEAYYAEAAABAIAywAAAAACCQIAMsM7vGzNzMTgmxPADkFRAaOQWERU4B6QoPsMzsTEmXSvpa8XAASOQVEBo5BYRFTgHZQhzBep+kd0nyAMsC0EBeAWGRU0BY5BSQ4bgiHzaz10uadPe7zKzde9dLWi9Jy5cv186dO4usupCDBw9Wuv5OEW+5Yos3b16RU9UZpPLWoaz92lflVYdtJNWnHFK9ypKmaE7FXj/E172YY5N6GJ+7t3xI+ldJd6c8rpb0RUlLk/c9JOmUdstzd42Pj3uVduzYUen6O0W85QoRr6RdnmPf95LyipzqrUEqb1VlrTqnPIK8yqsu+2NdyuEeZ1liyqkY66cZ8XUv5tjcw8eXlVdtj2C5+4+mvW5m50s6W9LcrxdnSLrTzF7l7o+2Wy4wyMgrICxyCgiLnAK61/UUQXffJ+n5c8/N7CFJF7r7YwHiAgYSeQWERU4BYZFTQHvcBwsAAAAAAil0kYtm7n5WqGUBaCCvgLDIKSAscgo4FkewAAAAACAQBlgAAAAAEAgDLAAAAAAIhAEWAAAAAATCAAsAAAAAAmGABQAAAACBMMACAAAAgEAYYAEAAABAIAywAAAAACAQBlgAAAAAEAgDLAAAAAAIhAEWAAAAAATCAAsAAAAAAmGABQAAAACBFB5gmdnbzGzCzPab2R+ECAoYdOQVEBY5BYRFTgHZjivyYTNbI+lqSd/n7s+Y2fPDhAUMLvIKCIucAsIip4DWih7B+mVJm939GUly928WDwkYeOQVEBY5BYRFTgEtmLt3/2GzvZL+r6TLJD0t6Rp3/1LGe9dLWi9Jy5cvH9+6dWvX6y3q4MGDWrJkSWXr7xTxlitEvGvWrNnt7heGiCdvXpFT1Rmk8lZV1ipyKnlvNHmVV132x7qUQ4qzLDHlVIz104z4uhdzbFL4+DLzyt1bPiT9q6S7Ux5XJ//+iSST9CpJDyoZtLV6jI+Pe5V27NhR6fo7VVW8N995wC+6/rN+1rtv8Yuu/6zffOeBXJ8bxPqVtMvb7PdeYl6RU701SOUNXda87UrVOeVd5FW3bWZRddkf61IO9zjLElNOxVg/zYivezHH5t46vm7a8Ky8ansOlrv/aNbfzOyXJd2UrOC/zOyIpFMkfavdchG3bXsmtemmfZqemZUkTU5Na9NN+yRJ61aNVRlaLZBXGERltitV5xRtJuqm6pwCeil0G170HKxtki6RJDN7saTFkh4ruExEYMv2iaM72ZzpmVlt2T5RUUQDZZvIK9RQhe3KNpWcU7SZGDDbRD+FGgndhhc9B2uxpL+WdIGkQ2rMwb09x+e+Jem/u15xcaeovxqCnse7+LRzxrP+dujR+3a3+fgg1u8L3f3UEMF0k1fkVM8NUnmDlbXDdqXSnEo+lzuvCraZRdVlf6xLOaQ4yxJTTsVYP82Ir3sxxyZlxFegDU/Nq0IDrH5lZrs80ImevUC85eq3eGM0aHU4SOUdpLL2q7pso7qUQ6pXWcoQe/0QX/dijk3qXXyFbzQMAAAAAGhggAUAAAAAgQzqAOtDVQfQIeItV7/FG6NBq8NBKu8glbVf1WUb1aUcUr3KUobY64f4uhdzbFKP4hvIc7AAAAAAoAyDegQLAAAAAIJjgAUAAAAAgfTNAMvMLjOzCTO7z8w2pvzdzOxPkr9/2cxe0e6zZvZcM7vNzO5N/l2WvH6pme02s33Jv5c0fWY8ef2+ZH0Webw7k2XtTR7PjyDeVzXFc5eZ/Vjk9dsq3lz1WwdmNmRme8zsluT5dWY22VT2K5reuymp3wkzW1td1N0xs4eS/XCvme1KXkvdP5K/1bG8td2+selxe/Y8M9thZgfN7P19XpbMvq/PypHZx/S7IvUYSXxvTuL6spl93sxeHktsTe97pZnNmtmbehVb3vjMbHWyX+83s3+LKT4zW2pmn0xybr+ZvSVoAO4e/UPSkKT7JX2PGncLv0vSSxe85wpJ/yLJJL1a0hfbfVbSH0jamPx/o6T3JP9fJWlF8v+XSZpsWs9/SfqBZD3/IunyyOPdKenCyOr3REnHJf8/XdI3m57HWL+t4m1bv3V5SPp1Sf8g6Zbk+XVq3Fxy4ftemtTr8ZLOTup7qOr4OyzrQ5JOWfBa1v5R1/LWdvvG9KigPTtJ0mskvVXS+/u8LJl9X5+VI7OP6edHkXqMKL6LJC1L/n95r+LLE1vT+26X9ClJb4qs7kYlfUXSC5Lnz48svt9sysFTJX1H0uJQMfTLEaxXSbrP3R9w90OStkq6esF7rpb0d97wBUmjZnZ6m89eLelvk///raR1kuTue9z94eT1/ZJOMLPjk+U9x93/0xtb5O/mPhNjvBl1mabX8T7l7oeT10+Q5JIUcf2mxjtIzOwMSVdK+sscb79a0lZ3f8bdH5R0nxr13u9S9w/Vt7xZBq28Zet1e/aku39O0tM1KEvRvi+WctS1jylSj1HE5+6fd/fHk6dfkHRGLLEl3ibp42oMynspT3w/Jekmd/+aJLl7L2PME59LOtnMTNISNQZYhxVIvwywxiR9ven5geS1PO9p9dnl7v6IJCX/pk3veqOkPe7+TPK5A23iiCneOX+THKL9nWRHqjxeM/t+M9svaZ+ktyadS7T1mxHvnHb1Wwc3SHqXpCMLXv/VZOrEX9uzU+bybJ/YuaTPJNOO1ievZe0fdS2vVN/tG5Mq+4vQYuv7uhVbH9OvitRjL3S67l9Q42hbL7SNzczGJP2YpD/rUUzN8tTdiyUts8apFLvN7Gd7Fl2++N4v6SWSHlYj797u7gu/43StXwZYaV9aF/7Ck/WePJ9NX6nZeZLeI+mXOogj7/t6Ea8kvdndz5f0g8njZ9I+mmOdQeN19y+6+3mSXilpk5md0MGyYolXyle/fc3MXifpm+6+e8GfPijpeyVdIOkRSe+d+0jKYvrtF9mL3f0VakwJ+RUz+6EW761reeu8fWNSSX9Rkpj6viJi6mP6WZF67IXc6zazNWoMsN5dakRNq0x5bWFsN0h6t7vPlh/OMfLEd5ykcTVmv6yV9Dtm9uKyA0vkiW+tpL2SVqjRz73fzJ4TKoB+GWAdkHRm0/Mz1Bhx5nlPq89+Y+5QdPLv0cOXyZSomyX9rLvf37SOMzKWFWO8cvfJ5N/vqnH+TNpUnp7H2xTfPZKeVGP+fLT1mxFv3vrtdxdLer2ZPaTGYfZLzOzD7v4Nd59NfvH5Cz1b9jzbJ2pz046SKQ03q1G2rP2jluWt8/aNTGXtWQmi6fsKiqaP6XNF6rEXcq3bzL5PjenxV7v7tyOK7UJJW5O++U2SPmBm63oSXf5t++lkWvJjkv5d0ssjiu8takxhdHe/T9KDks4NFoH36ISzIg81RsEPqHFC9dzJaucteM+Vmn+i5H+1+6ykLZp/wukf+LMn5t0l6Y0psXwpWf7cRRiuiDXeZFmnJP8flvQxNaYeVB3v2Xr2hN4XqrHTnxJx/abGm7d+6/SQtFrPXuTi9KbX36nGeTmSdJ7mXwThAfXRRRDUuAjAyU3//7yky1rsH3Utby23b2yPXrdnTcv8eYW/yEUUfV8fliOzT+znR5F6jCi+F6hxnulFsdXdgvffqN5e5CJP3b1E0meT954o6W5JL4sovg9Kui75/3JJkyHzrmc7S4DKukLS/1PjqiC/lbz2ViVfaJPk/NPk7/vUdGW3tM8mrz8v2fj3Jv8+N3n9t9X4BWlv0+P5yd8uTHaS+9WYv2mxxqvGl6Xdkr6sxgnAf6yML0I9jvdnknj2SrpT0rqmz8RYv6nxdlK/dXlo/gDr75O6/bKkT2j+F/LfSup3QilXgoz5ocZVh+5KHvub9q/U/aPG5a3l9o3x0cv2LPnbQ2qc0H1QjV96j7k6WT+URS366j4rR2af2O+PIvUYSXx/Kenxpv1rVyyxLXjvjerhACtvfJI2qHElwbslvSOm+NSYGviZZL+7W9JPh1y/JSsBAAAAABTUL+dgAQAAAED0GGABAAAAQCAMsAAAAAAgEAZYAAAAABAIAywAAAAACIQBVk2Y2WlmttXM7jezr5jZp8zsxWb2c2Z2b/L4uarjBPqRmT3PzPYmj0fNbLLp+eKq4wP6UVa/VXVcQD8yszPN7EEze27yfFny/IVVxzaIuEx7DZiZqXFz0L919z9LXrtA0lJJf6PGvaVcjXs2jbv74xWFCvQ9M7tO0kF3/8OqYwH6VYt+62R3/48qYwP6lZm9S9I57r7ezP5c0kPufn3VcQ0ijmDVwxpJM3OdlCS5+141bqJ2m7t/JxlU3SbpsmpCBADgqNR+i8EVUMj7JL3azN4h6TWS3lttOIPruKoDQBAvU+Po1EJjkr7e9PxA8hoAAFXK6rcAdMndZ8xsg6RPS3qtux+qOqZBxRGserOU15gTCgAAUE+XS3pEjR8xUBEGWPWwX9J4yusHJJ3Z9PwMSQ/3JCIAALJl9VsAupScx3ippFdLeqeZnV5tRIOLAVY93C7peDP7xbkXzOyVagymXptcSWaZpNdK2l5RjAAAzEntt8zshyuMCehbyYVjPijpHe7+NUlbJHExpoowwKoBb1wK8sckXZpc7na/pOvUGGD9nqQvJY//4+7fqSxQAADUtt8C0LlflPQ1d78tef4BSefyo0U1uEw7AAAAAATCESwAAAAACIQBFgAAAAAEwgALAAAAAAJhgAUAAAAAgTDAAgAAAIBAGGABAAAAQCAMsAAAAAAgkP8PHbNTklvG9SgAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "r = residuals(parameter_fit, df)\n", "plot_residuals(r, df);" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "pgbSVERt9I1Z" }, "source": [ "It's apparent that there is systematic error in the residuals. To cause the minimizer to put more weight on those large residuals, a scaling factor is introduced into the norm used to measure the residual for the purpose of parameter estimation." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "zy9arjkI9I1a" }, "source": [ "### Separable model\n", "\n", "An interesting feature of the model for the catalytic reactor is that it can be separated into two sides such that the right-hand side is a function only of $T$. \n", "\n", "$$\n", "\\begin{align*}\n", "\\frac{C_{0} - C}{C^n} & = \\frac{m}{q} \\left(\\frac{T}{T_r}\\right)^n e^{\\ln k_0 -\\frac{E_a}{R T_r }\\frac{T_r}{T}}\n", "\\end{align*}\n", "$$\n", "\n", "Note that the left-hand side is a function of two independent experimental variables. But if the model accurately represents experimental behavior, then a plot of the left-hand side versus temperature should collapse to a single curve.\n", "\n", "The next cell plots the experimental data as pairs $(x_k, y_k)$ where \n", "\n", "$$\n", "\\begin{align*}\n", "x_k & = \\frac{C_{0,k} - C_k}{C_k^n}\\\\\n", "y_k & = \\frac{m}{q} \\left(\\frac{T_k}{T_r}\\right)^n e^{\\ln k_0 -\\frac{E_a}{R T_r }\\frac{T_r}{T_k}}\\\\\n", "\\end{align*}\n", "$$\n", "\n", "If the fitted model is an accurate representation of the catalytic reactor, then the data should collapse to single curve aligned with diagonal." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 281 }, "colab_type": "code", "id": "PGc8GOU29I1b", "outputId": "769bd78e-e5a8-47d9-fe0b-1bbf141a4aee" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "n, lnk0, ERTr = parameter_fit\n", "for expt in set(df.index):\n", " y = (df['C0'][expt] - df['C'][expt])/df['C'][expt]**n\n", " x = (m/q) * (df['T'][expt]/Tr)**n * np.exp(lnk0 - ERTr*Tr/df['T'][expt])\n", " plt.plot(x, y, marker='o', lw=0)\n", "plt.plot(plt.xlim(), plt.ylim())\n", "plt.ylabel('$y_k$')\n", "plt.xlabel('$x_k$')\n", "plt.legend(set(df.index))\n", "plt.grid(True)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "z3n3tIyD9I1j" }, "source": [ "Substituting $C = C_0(1-X)$\n", "\n", "$$\n", "\\begin{align*}\n", "\\frac{X}{(1-X)^n}\\frac{1}{C_0^{n-1}} & = \\frac{m}{q} \\left(\\frac{T}{T_r}\\right)^n e^{\\ln k_0 -\\frac{E_a}{R T_r }\\frac{T_r}{T}}\n", "\\end{align*}\n", "$$" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 282 }, "colab_type": "code", "id": "d4DzETTE9I1k", "outputId": "6b5038b1-5820-42b5-9c56-dfa2c63588c1" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for expt in set(df.index):\n", " y = df['C0'][expt]**(n-1) * (m/q) * (df['T'][expt]/Tr)**n * np.exp(lnk0 - ERTr*Tr/df['T'][expt])\n", " x = df['X'][expt]/(1 - df['X'][expt])**n\n", " plt.plot(x, y, marker='o', lw=0)\n", "plt.plot(plt.xlim(), plt.ylim())\n", "plt.xlabel('')\n", "plt.grid(True)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "IAnjE9X79I1n" }, "source": [ "## Step 6. Estimate confidence intervals\n", "\n", "The following cell implements a simple bootstrap method for estimating confidence intervals for the fitted parameters. The function `resample` creates a new dataframe of data by sampling (with replacement) the original experimental data. \n", "\n", "The `best_fit` function is called `N` times on resampled data sets to create a statistical sample of fitted parameters. Those results are analyzed using statistical functions from the Pandas library." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "colab": {}, "colab_type": "code", "id": "llF0ImWC9I1o" }, "outputs": [], "source": [ "def resample(df):\n", " return df.iloc[random.choices(range(0, len(df)), k=len(df))]\n", "\n", "N = 100\n", "dp = pd.DataFrame([best_fit(sos, resample(df), disp=0) for k in range(0,N)], columns=parameter_names)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 524 }, "colab_type": "code", "id": "bcG96Bwa9I1r", "outputId": "7005b080-916c-47e1-eda7-bca45cc64330" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean values and 95% confidence interval\n", "n = 0.68 +/- 0.2\n", "lnk0 = 14.46 +/- 5.13\n", "ERTr = 35.27 +/- 6.69\n", "\n", "\n", "Quantiles\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0.050.500.95
n0.5637900.6662060.814233
lnk011.05046114.09680218.641407
ERTr30.63246934.67163041.664595
\n", "
" ], "text/plain": [ " 0.05 0.50 0.95\n", "n 0.563790 0.666206 0.814233\n", "lnk0 11.050461 14.096802 18.641407\n", "ERTr 30.632469 34.671630 41.664595" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "print('Mean values and 95% confidence interval')\n", "for p in dp.columns:\n", " print(p, \" = \", round(dp[p].mean(),2), \" +/- \", round(1.96*dp[p].std(),2))\n", "\n", "dp.hist(bins=1+int(np.sqrt(N)))\n", "print(\"\\n\\nQuantiles\")\n", "dp.quantile([0.05, .5, 0.95]).T" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "yl5Zxc5h9I1u" }, "source": [ "## Step 7. Determine if a better fit is possible\n", "\n", "In this section we introduce an alternative method of coding solutions to parameter estimation problems using Pyomo. An advantage of using Pyomo is the more explicit indentification of unknown parameters, objective, and constraints on parameter values." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "yl5Zxc5h9I1u" }, "source": [ "### Pyomo model - version 1\n", "\n", "The first version of a Pyomo model for estimating parameters for the catalytic reactor is a direct translation of the approach outlined above. There are some key coding considerations in performing this translation to a Pyomo model:\n", "\n", "* As of the current version of Pyomo, an optimization variable cannot appear in the exponent of an expresson. The workaound is to recognize $$ C^n = e^{n \\ln C}$$\n", "* The residuals are expressed as a list of Pyomo expressions." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 276 }, "colab_type": "code", "id": "B5UBcqcR9I1u", "outputId": "d451f4db-ce4c-47c4-b588-253da6711683" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "n = 0.65\n", "lnk0 = 13.65\n", "ERTr = 34.21\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "Tr = 298 # The reference temperature.\n", "q = 0.1 # The flow rate (liters/min)\n", "m = 1 # The amount of catalyst (g)\n", "\n", "def pyomo_fit1(df):\n", " T = list(df['T'])\n", " C = list(df['C'])\n", " C0 = list(df['C0'])\n", "\n", " mdl = ConcreteModel()\n", " mdl.n = Var(domain=Reals, initialize=1)\n", " mdl.lnk0 = Var(domain=Reals, initialize=15)\n", " mdl.ERTr = Var(domain=Reals, initialize=38)\n", " \n", " residuals = [\n", " C0[k] - C[k] - (m/q) * exp(mdl.n*log(C[k])) * exp(mdl.n*log(T[k]/Tr)) * exp(mdl.lnk0 - mdl.ERTr*Tr/T[k])\n", " for k in range(len(C))]\n", "\n", " mdl.obj = Objective(expr=sum(residuals[k]**2 for k in range(len(C))), sense=minimize)\n", " SolverFactory('ipopt').solve(mdl)\n", " return [mdl.n(), mdl.lnk0(), mdl.ERTr()], [residuals[k]() for k in range(len(C))]\n", "\n", "parameter_values_1, r1 = pyomo_fit1(df)\n", "plot_residuals(r1, df)\n", "for name,value in zip(parameter_names, parameter_values_1):\n", " print(name, \" = \", round(value,2))" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "Y076mM3V9I1x" }, "source": [ "### Pyomo model - version 2\n", "\n", "As a second model we consider a somewhat simpler model that omits the temperature dependence of the Arrhenius pre-exponential factor:\n", "\n", "$$\n", "\\begin{align*}\n", "0 & = C_0 - C - \\frac{m}{q} C^n e^{\\ln k_0-\\frac{E_a}{R T_r }\\frac{T_r}{T}}\n", "\\end{align*}\n", "$$\n", "\n", "Can this somewhat simpler model adequately fit the data?" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 276 }, "colab_type": "code", "id": "U6O8E-x29I1y", "outputId": "88c502fd-3f4b-4e3a-959d-146c88d6cef0" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "n = 0.65\n", "lnk0 = 14.69\n", "ERTr = 35.4\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "Tr = 298 # The reference temperature.\n", "q = 0.1 # The flow rate (liters/min)\n", "m = 1 # The amount of catalyst (g)\n", "\n", "def pyomo_fit2(df):\n", " T = list(df['T'])\n", " C = list(df['C'])\n", " C0 = list(df['C0'])\n", "\n", " mdl = ConcreteModel()\n", " mdl.n = Var(domain=Reals, initialize=1)\n", " mdl.lnk0 = Var(domain=Reals, initialize=15)\n", " mdl.ERTr = Var(domain=Reals, initialize=38)\n", " \n", " residuals = [\n", " C0[k] - C[k] - (m/q) * exp(mdl.n*log(C[k])) * exp(mdl.lnk0 - mdl.ERTr*Tr/T[k])\n", " for k in range(len(C))]\n", "\n", " mdl.obj = Objective(expr=sum(residuals[k]**2 for k in range(len(C))), sense=minimize)\n", " SolverFactory('ipopt').solve(mdl)\n", " return [mdl.n(), mdl.lnk0(), mdl.ERTr()], [residuals[k]() for k in range(len(C))]\n", "\n", "parameter_values_2, r2 = pyomo_fit2(df)\n", "plot_residuals(r2, df)\n", "for name,value in zip(parameter_names, parameter_values_2):\n", " print(name, \" = \", round(value,2))" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "CXLCa7vc9I12" }, "source": [ "Is there a meaningful difference between these two models?" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 225 }, "colab_type": "code", "id": "B4lFHBmt9I12", "outputId": "d7f532c6-3324-4c9e-d3d3-abffee7f634e" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = plot_residuals(r2, df)\n", "plot_residuals(r1, df, ax=ax);" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 282 }, "colab_type": "code", "id": "GjIlCUb69I16", "outputId": "5fc673ec-47e9-491c-d7b1-354d26efb394" }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAEFCAYAAAD69rxNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAjdUlEQVR4nO3deXxU9b3/8deHAEVA1AvYQlmC/tgJBkiQHYGyKIiIoFKkICqCImIVFb0WpLTlFqpeKBXlKmhF5YKKW624gMoiSyAKyg4hbIURC8qmQD6/PxLmJiF7hoQT38/HgweZmXPO93NmJu+cOXPO55i7IyIiwVOquAsQEZGCUYCLiASUAlxEJKAU4CIiAaUAFxEJqNJFOViVKlU8Ojq6KIcUEQm8hISEb9y9aub7izTAo6OjWb16dVEOKSISeGa2M6v7tQtFRCSgFOAiIgGlABcRCagi3Qcu+Xfy5El2797NiRMnirsUETnHypUrR40aNShTpkyepleAn+d2797NhRdeSHR0NGZW3OWIyDni7hw8eJDdu3dTp06dPM2jXSjnuRMnTlC5cmWFt0gJZ2ZUrlw5X5+2cw1wM3vezA6Y2fp09002s41m9qWZvWFmFxesZMkLhbfIT0N+f9fzsgU+G+iR6b4PgCbu3hTYDIzN16giIlJoue4Dd/dPzSw6030L0938HOgX4bokG+PHF+3yDh06xMsvv8xdd90V2YHPgaeeeophw4ZRvnz5cz7WmZPSqlSpcs7HymzIkCH06tWLfv3y/2uXmJjI3r17ueaaa85BZcG1ePFiypYtS5s2bQCYMWMG5cuX5ze/+U2284wfP56KFSvywAMPFFWZZ4nEl5hDgbnZPWhmw4BhALVq1YrAcFKUDh06xN/+9rciC/Bvvtmb7WPujrtTqlTWHxyfeOIvXH31r6hc+T/yPN6pU6coXbo0VapUz3etQZSYmMjq1asLHOC5vQZBtXjxYipWrBgO8OHDhxdzRXlTqFfBzB4FTgFzspvG3Z919zh3j6ta9axT+eU89/DDD7Nt2zZiY2MZM2YMAJMnTyY+Pp6mTZsybtw4AJKSkmjQoAG33347TZo0YeDAgXz44Ye0bduWunXrsnLlSiB1q2XQoEF07tyZunXrMnPmzPBYkydPpmvXa+jY8Vf8139NASA5eRdt2nTkwQfH0rlzd/bs2cuYMQ/zq19dTbt2ncLTPfvsc/zrX/u5/vr+9OmTumVau3bd8LLfeusdRo4cDcDIkaN57LHx9OnTjwkT/sCOHUn06NGDFi1a0L59ezZu3HjW83Dw4EG6detGs2bNuPPOO0l/JauXXnqJli1bEhsby5133snp06cBqFixIvfffz/NmzenS5cuhEIhALZt25bleEOGDGHUqFG0adOGyy67jPnz5wOpoTly5EgaNWpEz549OXDgQHjshIQEOnbsSIsWLejevTv79u0D4KqrruKhhx6iZcuW1KtXj88++4wff/yR3/3ud8ydO5fY2Fjmzs243TV79myuu+46evToQf369Xn88cfDr23Dhg256667aN68Obt27cryPZDZ0aNHGTp0KPHx8TRr1ow333wTgFGjRjFhwgQA3n//fTp06EBKSgpDhgxh+PDhtG/fnnr16vHOO+8AqV/k33rrrcTExNCsWTMWLVoUrrdv37706NGDunXr8uCDD4bHXrhwIa1bt6Z58+b079+fI0eOAKmfnMaNG0fz5s2JiYlh48aNJCUlMWPGDJ588kliY2P57LPPGD9+PFOmpL63Zs6cSXx8PFdccQU33HADx44dy3J9i0OBA9zMBgO9gIGu67KVWJMmTeLyyy8nMTGRyZMns3DhQrZs2cLKlStJTEwkISGBTz/9FICtW7dy77338uWXX7Jx40ZefvlllixZwpQpU/jjH/8YXuaXX37Ju+++y/Lly5kwYQJ79+4NL3fhwndZtGghX3zxJcuWfZ623G3ceGM/Fi1aSM2aNXjkkYf48MP3+OSTD1m27HO++uprhg27jV/84ue88cY8FiyYn+t6bdu2nddem8uECeO4//4HmTZtGgkJCUyZMiXLTxuPP/447dq1Y+3atfTu3Zvk5GQANmzYwNy5c1m6dCmJiYlERUUxZ07q9szRo0dp3rw5a9asoWPHjuFAHDZsWLbj7du3jyVLlvDOO+/w8MMPA/DGG2+wadMm1q1bx8yZM1m2bBmQeo7APffcw/z580lISGDo0KE8+uij4WWdOnWKlStX8tRTT/H4449TtmxZJkyYwE033URiYiI33XTTWeu5cuVK5syZQ2JiIvPmzQv3Ltq0aRO/+c1vWLt2LZs2bcr2PZDeH/7wBzp37syqVatYtGgRY8aM4ejRo0yaNIm5c+eyaNEiRo0axaxZs8Jb9ElJSXzyySe8++67DB8+nBMnTjB9+nQA1q1bxyuvvMLgwYPDR2okJiYyd+5c1q1bx9y5c9m1axfffPMNEydO5MMPP2TNmjXExcXxxBNPhOuqUqUKa9asYcSIEUyZMoXo6GiGDx/OfffdR2JiIu3bt8+wHn379mXVqlV88cUXNGzYkOeeey77N1YRK9AuFDPrATwEdHT38+fPkZxzCxcuZOHChTRr1gyAI0eOsGXLFmrVqkWdOnWIiYkBoHHjxnTp0gUzIyYmhqSkpPAyrrvuOi644AIuuOACOnXqxMqVK1myZAkLFy5k2bKlABw9eozt23dQo8YvqVmzBnFxLcLzv/nm27z44hxOnz7N/v372bx5C40bN8rXevTu3YuoqCiOHDnKqlUJ9O/fP/zYDz/8cNb0n376Ka+//joAPXv25JJLLgHgo48+IiEhgfj4eACOHz/OpZdeCkCpUqXCIXnLLbfQt29fjhw5wrJly7Idr0+fPpQqVYpGjRqxf//+8NgDBgwgKiqK6tWr07lzZyA1VNevX0/Xrl0BOH36NNWqVQsvq2/fvgC0aNEiw/Ofk65du1K5cuXw/EuWLKFPnz7Url2bVq1aAdm/Bzp06JBhWQsXLuStt94Kb8meOHGC5ORkGjZsyMyZM+nQoQNPPvkkl19+eXieG2+8kVKlSlG3bl0uu+wyNm7cyJIlS7jnnnsAaNCgAbVr12bz5s0AdOnShYsuugiARo0asXPnTg4dOsTXX39N27ZtAfjxxx9p3bp1ls/Lmdc0J+vXr+c///M/OXToEEeOHKF79+55ei6LQq4BbmavAFcBVcxsNzCO1KNOfgZ8kHbYy+fuHoydRlIo7s7YsWO58847M9yflJTEz372s/DtUqVKhW+XKlWKU6dOhR/LfKiUmYWXe8MN12Z4LDl5V4YvJXfuTGb69Gf44IN3ufjiixk5cnS2x82mHydzKJ9ZpnsKlSpVIjExMbdVz/IQL3dn8ODB/OlPf8rT/CkpKVx88cXZjpf+OUz/wTa7sRs3bszy5ctzXFZUVFSG5z+3GrO6XaFChQzjZvUemD59eniX2D/+8Q/cnddee4369eufNc66deuoXLkye/dm/M4ju/dGdtI/X2fW093p2rUrr7zySo7z5PV5GTJkCAsWLOCKK65g9uzZLF68ONd5ikquu1DcfYC7V3P3Mu5ew92fc/f/5+413T027Z/Cu4S68MIL+f7778O3u3fvzvPPPx/ep7hnz54M+2Tz4s033+TEiRMcPHiQxYsXEx8fn265R4HUXQmh0Ddnzfv9999TocIFVKpUiQMHQnz88aLwYxUrVgzXBVC1alU2b95CSkoK7777z2zXr3btmsybNw9IDacvvvjirOk6dOgQ3jXy3nvv8e9//xtI3QKcP39++Dn49ttv2bkztfNnSkpKeD/2yy+/TLt27ahUqRJ16tTJdbzMY7/66qucPn2affv2hfcB169fn1AoFA7wkydP8tVXX+W4rMyvZ2YffPAB3377LcePH2fBggXhrdj0snsP3H333SQmJpKYmEj16tXp3r0706ZNCwfw2rVrAdi5cyd/+ctfWLt2Le+99x4rVqwIL3vevHmkpKSwbds2tm/fTv369TM895s3byY5OTnLPwpntGrViqVLl7J161YAjh07Ft5iL8jz8v3331OtWjVOnjwZruN8oVPpAybShxHmpnLlyrRt25YmTZpw9dVXM3nyZDZs2BD+SFqxYkVeeukloqKi8rzMli1b0rNnT5KTk3nssceoXr061atXZ8OGDVxzTW8AKlQoz9/+Nu2s5TZp0pgmTZrQrl0nateuRcuW8eHHBg0ayM0338LPf34pCxbM57HHxjJw4GCqV69Ogwb1OXr0aJb1PP30X3n00fFMnDiRkydPcvPNN3PFFVdkmGbcuHEMGDCA5s2b07Fjx/ARVY0aNWLixIl069aNlJQUypQpw/Tp06lduzYVKlTgq6++okWLFlx00UXhLw3nzJnDiBEjchwvveuvv56PP/6YmJgY6tWrR8eOHQEoW7Ys8+fPZ9SoURw+fJhTp04xevRoGjdunO2yOnXqxKRJk4iNjWXs2LFn7Qdv164dgwYNYuvWrfz6178mLi7urN0v3bp1y/I9cGbX0RmPPfYYo0ePpmnTprg70dHRvP3229x2221MmTKF6tWr89xzzzFkyBBWrVoFpP5R6tixI/v372fGjBmUK1eOu+66i+HDhxMTE0Pp0qWZPXt2hi3vzKpWrcrs2bMZMGBA+JPXxIkTqVevXrbzXHvttfTr148333yTadOmZXjs97//PVdeeSW1a9cmJiYmxz+ARc2K8vvHuLg41wUd8mfDhg00bNiwuMuImNyOnc3pMMJz6VwcRpj5E8H5bvbs2axevZq//vWvxTJ+YY5vL0my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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.hist(r1, color='b', alpha=0.5)\n", "plt.hist(r2, color='y', alpha=0.5)\n", "plt.legend(['temperature dependent pre-exponential', 'no temperature dependent pre-exponential'])" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "JgAMTNLN9I1_" }, "source": [ "Based on this analysis of residuals, there is very little statistical support for a temperature dependent Arrhenius pre-exponential factor. Generally speaking, in situations like this it is generally wise to go with the simplist (i.e, most parsimonious) model that can adequately explain the data." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "amFdZj8Q9I1_" }, "source": [ "### Pyomo model - version 3\n", "\n", "Is the reaction $n^{th}$ order, or could it be satisfactorily approximated with first-order kinetics?\n", "\n", "$$\n", "\\begin{align*}\n", "0 & = C_0 - C - \\frac{m}{q} C e^{\\ln k_0-\\frac{E_a}{R T_r }\\frac{T_r}{T}}\n", "\\end{align*}\n", "$$\n", "\n", "The following cell adds a constraint to force $n=1$. We'll then examine the residuals to test if there is a statistically meaningful difference between the case $n=1$ and $n \\ne 1$." ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 276 }, "colab_type": "code", "id": "PYIrPx2y9I2B", "outputId": "8e8c11fc-5fd9-494c-b07b-6b2a2903c4a1" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "n = 1.0\n", "lnk0 = 23.01\n", "ERTr = 44.59\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "Tr = 298 # The reference temperature.\n", "q = 0.1 # The flow rate (liters/min)\n", "m = 1 # The amount of catalyst (g)\n", "\n", "def pyomo_fit3(df):\n", " T = list(df['T'])\n", " C = list(df['C'])\n", " C0 = list(df['C0'])\n", "\n", " mdl = ConcreteModel()\n", " mdl.n = Var(domain=Reals, initialize=1)\n", " mdl.lnk0 = Var(domain=Reals, initialize=15)\n", " mdl.ERTr = Var(domain=Reals, initialize=38)\n", " \n", " residuals = [\n", " C0[k] - C[k] - (m/q) * exp(mdl.n*log(C[k])) * exp(mdl.lnk0 - mdl.ERTr*Tr/T[k])\n", " for k in range(len(C))]\n", "\n", " mdl.obj = Objective(expr=sum(residuals[k]**2 for k in range(len(C))), sense=minimize)\n", " mdl.con = Constraint(expr = mdl.n==1)\n", " SolverFactory('ipopt').solve(mdl)\n", " return [mdl.n(), mdl.lnk0(), mdl.ERTr()], [residuals[k]() for k in range(len(C))]\n", "\n", "parameter_values_3, r3 = pyomo_fit3(df)\n", "plot_residuals(r3, df)\n", "for name,value in zip(parameter_names, parameter_values_3):\n", " print(name, \" = \", round(value, 2))" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "KjUkp-kR9I2F" }, "source": [ "Comparing to models above, we see that restricting $n=1$ does lead to somewhat larger residuals." ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 225 }, "colab_type": "code", "id": "RfMdbUC79I2G", "outputId": "9a5d0468-7657-42e5-b868-d1ae97a03014" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = plot_residuals(r3, df)\n", "plot_residuals(r2, df, ax=ax);" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 282 }, "colab_type": "code", "id": "yHUVAIiN9I2J", "outputId": "9d242fd3-62d5-4cce-9fea-afa9712518bc" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAEFCAYAAAD69rxNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAfLUlEQVR4nO3de3BV5dn38e9lSDiYiK1oROnbpB2JRcIxUFpsSFA8FKTV0VE8VERLoR5QH6xYR2V87LxOZTwrFhViLRIe0UcUrEWUSBW0EgwqIGqVaoQK1ldJ0CQQr/ePxDTmtM8JN/19Zjqy11r3uq87e/eXlbXXupe5OyIiEp4DuroAERGJjwJcRCRQCnARkUApwEVEAqUAFxEJVLfO7KxPnz6ek5OT8n52797NgQcemPJ+Uin0MYReP4Q/BtXf9ZI1hvLy8k/c/dCWyzs1wHNycli3bl3K+ykrK6OoqCjl/aRS6GMIvX4Ifwyqv+slawxm9o+2lusUiohIoBTgIiKBUoCLiASqU8+Bi0h09uzZQ2VlJTU1NXHvo3fv3mzevDmJVXWu0OuH2MfQo0cP+vXrR3p6elTbK8BF9kGVlZVkZWWRk5ODmcW1j6qqKrKyspJcWecJvX6IbQzuzr/+9S8qKyvJzc2Nqo1OoYjsg2pqajjkkEPiDm8Jj5lxyCGHxPRXV8QAN7P5ZrbDzN5ssfxSM9tiZhvN7Pdx1CsiHVB4/+eJ9T2P5gi8BDipRSfFwM+AQe5+DDAnpl5FRCRhEc+Bu/tqM8tpsXg6cLO71zZusyMFtYlIo9mzY29TW5tB9+7J29/XSkpKOOGEEzjiiCOAf9+g16dPn/h32o6ioiLmzJlDQUFBXO0nT57MhAkTOP3007+x/KKLLuLKK69kwIABMe+zrKyMjIwMfvzjHwNw33330atXL37xi1/EVWMi4v0Ssz/wEzP7HVADzHT3V9va0MymAlMBsrOzKSsri7PL6FVXV3dKP6kU+hjirb+ubnvyi4lCRkbfVsu68j3o3bs3VVVVTa9razNi3oe7U1tb2+a6qqq6uGt78MEHyc3Nbfpyzt2prq6me3u/LaK0d+9eunX7dyTV19dTX1/P7t27v/Gz6Eh9fT1paWlNr/fs2cOXX37Zqv1tt90GEPV+m/vLX/5CZmYm+fn5AJxzzjnt7qu+vj7mPmpqaqL+3MUb4N2AbwGjgBHA/5jZ97yNx/u4+zxgHkBBQYF3xq2xugW368Vb//vvz056LdHIzZ3UallXvgebN2/+xtUL8WRjbW1tu6GaldXxDrdu3crJJ5/Msccey5o1azjyyCNZunQpy5cv57XXXmPq1Kn07NmTtWvXYmYsWLCAp556ij179vDoo49y9NFHf2N/NTU1TJ8+nXXr1tGtWzduvfVWiouLKSkpYfny5dTU1LB7926WL1/OBRdcwKZNmzjqqKOoq6vjwAMPJCsrixUrVnDDDTdQW1vL97//fRYsWEBmZiY5OTlMmTKFFStWcMkll3DWWWc19Zuenk7Pnj3Jysriuuuu48MPP2T+/PmMHTu26cg+MzOTGTNmsGzZMnr27MnSpUvJzs5m586dTJs2jQ8++ACA22+/nSOPPJIFCxaQlpbGo48+yl133cVzzz1HZmYmM2fO5N1332XatGns3LmTtLQ0FixYwGGHHcaZZ57Jrl272Lt3L3PnzuUnP/lJuz/7Hj16MHTo0Kje43ivQqkEHvcGfwO+ApL/95OIdJl33nmHiy++mI0bN3LwwQfz2GOPcfrpp1NQUMDChQupqKigZ8+eAPTp04f169czffp05sxp/ZXYPffcA8Abb7zBokWLOP/885uutli7di0PPfQQzz//PHPnzqVXr168/vrrzJw5k/LycgA++eQTbrrpJlauXMn69espKCjg1ltvbdp/jx49ePHFF78R3s395je/YceOHSxYsIADDvhm7O3evZtRo0axYcMGCgsLuf/++wGYMWMGV1xxBa+++iqPPfYYF110ETk5OUybNo0rrriCioqKVkF8zjnncPHFF7NhwwbWrFnD4YcfziOPPMKJJ55IRUUFGzZsYMiQIXG8G22L9wj8CWAsUGZm/YEM4JNkFSUiXS83N7cpbIYPH87WrVvb3fa0005r2u7xxx9vtf7FF1/k0ksvBeDoo4/mu9/9Lm+//TYA48aN49vf/jYAq1ev5rLLLgNg4MCBDBo0CICXX36ZTZs2MXr0aADq6ur40Y9+1LT/M888s93a/vu//5sf/vCHzJs3r831GRkZTJgwoan+Z599FoCVK1eyadOmpu127drV4emQqqoqPvroI0499VSg4ZfKnj17GDFiBFOmTGHPnj38/Oc/79wAN7NFQBHQx8wqgRuA+cD8xksL64Dz2zp9IiLhan76JS0tjS+//DLitmlpaezdu7fV+o7ioeV0q21dSufujBs3jkWLFkW1j+ZGjBhBeXk5n376adMviubS09Ob+mxe/1dffcXatWub/sqIpL0xFhYWsnr1apYvX855553HVVddlbQvPCOeQnH3Se7e193T3b2fuz/o7nXufq67D3T3Ye7+fFKqEZF9XlZWVsxfzBUWFrJw4UIA3n77bT744APy8vI63G7Tpk28/vrrAIwaNYqXXnqJd999F4Avvvii6Qg+kpNOOolZs2Yxfvz4mOo+4YQTuPvuu5teV1RUAO2P/6CDDqJfv3488cQTQMN3EF988QX/+Mc/OOyww/jlL3/JhRdeyPr166OuIRLdSi8SgHgu+6uqqov4ZWU8Jk+ezLRp05q+xIzGr3/9a6ZNm0Z+fj7dunWjpKSkzS9Yp0+fzgUXXMCgQYM45phjGDlyJACHHnooJSUlTJo0qenKmptuuon+/ftH1f8ZZ5xBVVUVEydO5Omnn46qzZ133snFF1/MoEGD2Lt3L4WFhdx3332ccsopnH766SxdupS77rrrG20efvhhfvWrX3H99deTnp7OggULeO2117jllltIT08nMzOTP/7xj1H1Hw3rzDMfBQUFrgc6RCf0MYR3FUrrfrv6KpQf/OAHCe0j9LlEQq8f4htDW++9mZW7e6uL4TUXiohIoBTgIiKBUoCLiARKAS4iEigFuIhIoBTgIiKB0nXgIgGI5/LKurpaMjLavg68rcsmW7rzzjuZO3cuw4YN48wzz2TTpk3MmjUrqr63bt3KmjVrOPvss2MpuUPtTQ0brdmzZzdNOtXc9ddfT2FhIccff3zM+6yoqGDbtm389Kc/BeDJJ5+M6eeUKAW4iLTp3nvv5c9//nPT8xknTpzYapuWU8B+bevWrTzyyCNxB3h9fX1c7Zprr7aWbrzxxrj7qKioYN26dU0BPnHixDZ/TqmiUygi0sq0adN47733mDhxIrfddhslJSVccsklQMOR8JVXXklxcTFXX301L7zwAkOGDGHIkCEMHTqUqqoqZs2axV//+leGDBnSNPf219ydq666ioEDB5Kfn8/ixYuBhhuniouLOfvss8nPz8fdueSSSxgwYADjx49nx45/PzemvLycMWPGMHz4cE488US2b2+YR76oqIjf/va3jBkzhjvuuKPd8d1///2cfPLJfPnll0yePJklS5YADQ+nuOGGGxg2bBj5+fm89dZbQMOMhVOmTGHEiBEMHTqUpUuXUldXx/XXX8/ixYsZMmQIixcv/sbP6eOPP+bss89m8ODBDB48mDVr1rB7927Gjx/P4MGDGThwYNPY46UjcBFp5b777uOZZ55h1apV9OnTh5KSkm+sf/vtt1m5ciVpaWmccsop3HPPPYwePZrq6mp69OjBzTffzJw5c1i2bFmrfT/++ONNU6t+8sknjBgxgsLCQgD+9re/8eabb5Kbm8vChQvZsmULb7zxBh9//DEDBgxomtXv0ksvZenSpRx66KEsXryYa6+9lvnz5wPw2Wef8cILL7Q7trvvvpsVK1bwxBNPtHk7/9dT4957773MmTOHBx54gN/97neMHTuW+fPn89lnnzFy5EiOP/54brzxRtatW9c0Z0rzn9Nll13G6NGjeeqpp6ivr6e6uppnnnmGI444guXLlwPw+eefx/S+tKQAF5GYnXHGGU1Pvhk9ejRXXnkl55xzDqeddhr9+vXrsO2LL77IpEmTSEtLIzs7mzFjxvDqq69y0EEHMXLkyKZTNi+99FLTdkcccQRjx44FYMuWLbz55puMGzcOaDjd0rfvv5+o1NHUsg8//HDThFPp6eltbtPW1LgrVqzgySefbJrrvKampulBD+15/vnnm+ZBT0tLo3fv3uTn5zNz5kyuvvpqJkyY0OGDHaKhABeRmDWfvvXrmf6efvppRo0axcqVKztsm4ypZY855ph2J9LqaGrZgQMHUlFRQWVlZdMvipbamhrX3XnsscdazaD4yiuvtNtXW/r37095eTlPP/0011xzDSeccALXX399TPtoTufARSQhf//738nPz+fqq6+moKCAt956q8MpZwsLC1m8eDH19fXs3LmT1atXN8062Nzo0aMpLS2lvr6e7du3s2rVKgDy8vLYuXNnU4Dv2bOHjRs3RlXr0KFD+cMf/sDEiRPZtm1b1GM88cQTueuuu5p++bz22mtAx1PrHnfccTzwwANAw18Ju3btYtu2bfTq1Ytzzz2XmTNnJjy1rI7ARQIQzWV/LXXWbH633347q1atIi0tjQEDBnDyySdzwAEH0K1bNwYPHszkyZO54oormrY/9dRTWbt2LYMHD8bM+P3vf8/hhx/e9IXh10455RTWrl1Lfn4+/fv3Z8yYMUDDE3SWLFnCZZddxueff87evXu5/PLL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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.hist(r2, color='b', alpha=0.5)\n", "plt.hist(r3, color='y', alpha=0.5)\n", "plt.legend(['nth order kinetics', 'first order kinetics'])\n", "plt.grid(True)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "44mI0TFE9I2N" }, "source": [ "### F-ratio test" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "colab_type": "code", "id": "POqLy2fG9I2O", "outputId": "998bf416-0f0e-49b0-99dd-84a556a37b47" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Cannot reject hypothesis that the variances are equal at p=0.05: Test pvalue = 0.13297014615598618\n" ] } ], "source": [ "r2 = np.array(r2)\n", "df2 = len(r2) - 1 - 3 # degrees of freedom after fitting 3 parameters\n", "\n", "r3 = np.array(r3)\n", "df3 = len(r3) - 1 - 3 # degrees of freedom after fitting 2 parameters\n", "\n", "Fratio = r2.var()/r3.var()\n", "\n", "pvalue = stats.f.cdf(Fratio, df2, df3)\n", "\n", "if pvalue > 0.05:\n", " print(\"Cannot reject hypothesis that the variances are equal at p=0.05: Test pvalue = \", pvalue)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "CwDCHxi09I2S" }, "source": [ "### Levene test\n", "\n", "The [Levene test](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.levene.html) provides a more robust test for the null hypothesis that samples are from populations with equal variances. " ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "colab_type": "code", "id": "MGGitZrK9I2U", "outputId": "070b00d8-4825-4f3b-cd44-63a88652aa85" }, "outputs": [ { "data": { "text/plain": [ "LeveneResult(statistic=0.3449520288649278, pvalue=0.559345414685297)" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stats.levene(r2, r3)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "Wq40Jrc49I2Y" }, "source": [ "The Levene statistic means that we cannot rule out that the residuals of these models have different variances. Consequently we do not have statistically meaningful evidence that the order of the reaction is different from $n=1$." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "jlBNl3sy9I2Y" }, "outputs": [], "source": [] } ], "metadata": { "colab": { "name": "Parameter_Estimation_Catalytic_Reactor.ipynb", "provenance": [], "version": "0.3.2" }, "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.9.7" } }, "nbformat": 4, "nbformat_minor": 4 }