{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": "# Chemical Kinetics and Numerical Integration\n\nHere we will use methods of numerical integration to solve for the abundances of the H$_3^+$ isotopologues in the ion trap experiment from last week's notebook. After using integrated rate equations and curve fitting, we came up with this result:\n\n
\n\"Two-panel\n
\n\nThe deviations, most notable in the D$_2$H$^+$ results, are because the reverse reactions were not included in our model. It would be very difficult to derive new rate equations, so we will use numerical methods instead.\n\n## Forward Euler Method\n\nFirst, we will reimplement the exact same model as last time, but this time we will solve using the Forward Euler Method. First, load in the `deuteration.csv` file. It contains the same experimental data as last week, but the time field has been rounded and lined up so that all abundances for each molecule are given at the same time values. This will make comparisons with the numerical models easier down the road." }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "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", " \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", " \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", " \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", " \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", " \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", " \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", "
timeD3+D2H+H2D+H3+
00.008127.81102116.55481351.19441465.98568
10.013996.52657229.77889375.15156296.38254
20.0199199.47921299.18979322.62655179.82987
30.0259313.63000313.63000250.12530107.07367
40.0318457.28214302.02364183.2526062.56267
50.0376568.00224267.18790122.1802536.90133
60.0436660.47549225.4871583.0118820.96004
70.0495718.95912186.7404957.4735111.90535
80.0553790.03413146.1470937.959857.15578
90.0613820.39408114.3778322.816003.59570
100.0672820.3940884.5918614.511742.86763
110.0732876.3582568.102459.143351.28682
120.0790868.1354948.962886.512020.99765
130.0850876.3582540.549323.629750.49660
140.0909876.3582534.220682.330510.10000
150.0968901.4967726.781831.539250.20089
160.1028876.3582522.601921.323740.19901
170.1087893.0381519.437420.766200.09906
180.1145927.3564017.688750.55086NaN
190.1205901.4967714.928010.43932NaN
200.1264927.3564013.974710.21868NaN
210.1322901.4967712.018110.32799NaN
220.1384910.0355213.843590.43932NaN
230.1441927.3564013.457560.21868NaN
240.1500945.0069611.68298NaNNaN
\n", "
" ], "text/plain": [ " time D3+ D2H+ H2D+ H3+\n", "0 0.0081 27.81102 116.55481 351.19441 465.98568\n", "1 0.0139 96.52657 229.77889 375.15156 296.38254\n", "2 0.0199 199.47921 299.18979 322.62655 179.82987\n", "3 0.0259 313.63000 313.63000 250.12530 107.07367\n", "4 0.0318 457.28214 302.02364 183.25260 62.56267\n", "5 0.0376 568.00224 267.18790 122.18025 36.90133\n", "6 0.0436 660.47549 225.48715 83.01188 20.96004\n", "7 0.0495 718.95912 186.74049 57.47351 11.90535\n", "8 0.0553 790.03413 146.14709 37.95985 7.15578\n", "9 0.0613 820.39408 114.37783 22.81600 3.59570\n", "10 0.0672 820.39408 84.59186 14.51174 2.86763\n", "11 0.0732 876.35825 68.10245 9.14335 1.28682\n", "12 0.0790 868.13549 48.96288 6.51202 0.99765\n", "13 0.0850 876.35825 40.54932 3.62975 0.49660\n", "14 0.0909 876.35825 34.22068 2.33051 0.10000\n", "15 0.0968 901.49677 26.78183 1.53925 0.20089\n", "16 0.1028 876.35825 22.60192 1.32374 0.19901\n", "17 0.1087 893.03815 19.43742 0.76620 0.09906\n", "18 0.1145 927.35640 17.68875 0.55086 NaN\n", "19 0.1205 901.49677 14.92801 0.43932 NaN\n", "20 0.1264 927.35640 13.97471 0.21868 NaN\n", "21 0.1322 901.49677 12.01811 0.32799 NaN\n", "22 0.1384 910.03552 13.84359 0.43932 NaN\n", "23 0.1441 927.35640 13.45756 0.21868 NaN\n", "24 0.1500 945.00696 11.68298 NaN NaN" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "from matplotlib import pyplot as plt\n", "import pandas as pd\n", "\n", "df = pd.read_csv('deuteration.csv')\n", " \n", "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As a reminder, the model was defined by the equations:\n", "\n", "$$ \\frac{\\text{d}[\\text{H}_3^+]}{\\text{d}t} = -k_1[\\text{H}_3^+] $$\n", "\n", "$$ \\frac{\\text{d}[\\text{H}_2\\text{D}^+]}{\\text{d}t} = k_1[\\text{H}_3^+] - k_2[\\text{H}_2\\text{D}^+] $$\n", "\n", "$$ \\frac{\\text{d}[\\text{D}_2\\text{H}^+]}{\\text{d}t} = k_2[\\text{H}_2\\text{D}^+] - k_3[\\text{D}_2\\text{H}^+] $$\n", "\n", "$$ \\frac{\\text{d}[\\text{H}_3^+]}{\\text{d}t} = k_3[\\text{D}_2\\text{H}^+] $$\n", "\n", "We can express these in a simple form with the matrix equation:\n", "\n", "$$ \\begin{bmatrix} \\text{d}[\\text{H}_3^+]/\\text{d}t \\\\ \\text{d}[\\text{H}_2\\text{D}^+]/\\text{d}t \\\\ \\text{d}[\\text{D}_2\\text{H}^+]/\\text{d}t \\\\ \\text{d}[\\text{D}_3^+]/\\text{d}t \\end{bmatrix} = \\begin{bmatrix} -k_1 & 0 & 0 & 0 \\\\ k_1 & -k_2 & 0 & 0 \\\\ 0 & k_2 & -k_3 & 0 \\\\ 0 & 0 & k_3 & 0 \\end{bmatrix} \\begin{bmatrix}[\\text{H}_3^+] \\\\ [\\text{H}_2\\text{D}^+] \\\\ [\\text{D}_2\\text{H}^+] \\\\ [\\text{D}_3^+] \\end{bmatrix} $$\n", "\n", "Then, taking a time step $\\Delta t$, we can compute new concentrations:\n", "\n", "$$ \\begin{bmatrix}[\\text{H}_3^+] \\\\ [\\text{H}_2\\text{D}^+] \\\\ [\\text{D}_2\\text{H}^+] \\\\ [\\text{D}_3^+] \\end{bmatrix}_{\\,i+1} = \\begin{bmatrix}[\\text{H}_3^+] \\\\ [\\text{H}_2\\text{D}^+] \\\\ [\\text{D}_2\\text{H}^+] \\\\ [\\text{D}_3^+] \\end{bmatrix}_{\\,i} + \\begin{bmatrix} -k_1 & 0 & 0 & 0 \\\\ k_1 & -k_2 & 0 & 0 \\\\ 0 & k_2 & -k_3 & 0 \\\\ 0 & 0 & k_3 & 0 \\end{bmatrix} \\begin{bmatrix}[\\text{H}_3^+] \\\\ [\\text{H}_2\\text{D}^+] \\\\ [\\text{D}_2\\text{H}^+] \\\\ [\\text{D}_3^+] \\end{bmatrix}_{\\,i} \\Delta t$$\n", "\n", "As of Python 3.5, matrix multiplication (and other types of dot products) can be done with the `@` operator. When used with `numpy.ndarray` objects, the [`numpy.matmul`](https://numpy.org/doc/stable/reference/generated/numpy.matmul.html) function is called. In our case, we will create a 4x4 matrix called `J` and a 1D array with 4 elements called `n` to store the abundances. When we call `J@n`, it multiplies each row of `J` by the 4 elements in `n`, and adds them up. Here we use the results from the curve fitting to ideally give us similar results as last time. We will set the step size `dt` to 0.1 ms, and take 1500 steps." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[9.32000000e+02, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],\n", " [9.23662328e+02, 8.33767200e+00, 0.00000000e+00, 0.00000000e+00],\n", " [9.15399245e+02, 1.65308938e+01, 6.98613537e-02, 0.00000000e+00],\n", " ...,\n", " [1.32800394e-03, 2.84034492e-02, 6.58129892e-01, 9.31312139e+02],\n", " [1.31612362e-03, 2.81773370e-02, 6.54014355e-01, 9.31316492e+02],\n", " [1.30434958e-03, 2.79530132e-02, 6.49924148e-01, 9.31320818e+02]])" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#iniitialize rate constants\n", "hd=6.3e10\n", "k1=1.42e-9*hd\n", "k2=1.33e-9*hd\n", "k3=1.05e-9*hd\n", "\n", "#H3+ at t=0 is 932, H2D+, D2H+, and D3+ start at 0.\n", "n0 = np.array([932,0,0,0])\n", "\n", "#initialize an empty 4x4 matrix, and plug in k values at the right places\n", "J = np.zeros((4,4))\n", "J[0,0] = -k1\n", "J[1,1] = -k2\n", "J[2,2] = -k3\n", "J[1,0] = k1\n", "J[2,1] = k2\n", "J[3,2] = k3\n", "\n", "#this array n will be updated with the new concentrations at each step. Initialize it at n0\n", "n = n0\n", "dt = 1e-4\n", "steps = 1500\n", "\n", "#this array will keep track of the values of n at each step\n", "nt = np.zeros((steps+1,len(n0)))\n", "nt[0] = n0\n", "\n", "#take each steps, updating n at each one; store the results in the nt array\n", "for i in range(0,steps):\n", " n = n + J@n*dt\n", " nt[i+1] = n\n", " \n", "nt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can plot the results and compare with the experimental data." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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Ro0a1az9F198gZCQEKhUqvu2aW2fpiJVvgCwYsUK/OlPf0JWVhZCQkKMH3wHSJGvj48PiouLUVRUpHtNnjwZERERKCoqgpeXl2T5tEWq3++YMWNw6tQp3QkUAP7v//4ParVatiIIkC7fmpqaZsWOUqmEuHOTihEzaJ+O5GsISzpfGcpSzldtMefzlVGYena2pWq6XfGDDz4QJSUlYuHChaJr166irKxMCCHE4sWLxcyZM3Xtm26/TUxMFCUlJeKDDz5odvttfn6+UCqVYvny5aK0tFQsX77c7G5HNWa+f/7zn4WdnZ3Yvn27qKio0L1u3Lhh8vzuJUW+9zKnuzCkyPfs2bOiW7du4qWXXhInT54Uu3btEu7u7uK///u/TZ7fvaTI9/XXXxfdu3cXmzdvFqdPnxZffPGFGDx4sJg+fbrJ87tXe/MVQojCwkJRWFgogoODxfPPPy8KCwvFd999p/vcks5XQrSdryWdr4RoO997mdP56kGxEDKitLQ00b9/f2FnZyeCgoLEwYMHdZ/FxMSIRx99VK99Tk6OGD58uLCzsxMDBgwQa9asabbPbdu2CW9vb6FSqYSPj4/45JNPpE7DYMbOt3///gJAs9frr79ugmzaJsXv927mdmKRIt9Dhw6Jhx9+WNjb24tBgwaJZcuWiYaGBqlTMYix862vrxdLliwRgwcPFg4ODsLLy0vExcWJn376yQTZtK29+bb0d7N///56bSzpfNVWvpZ2vjLk93s3cztfPQiFEDL20RIRERHJiHOEiIiIyGqxECIiIiKrxUKIiIiIrBYLISIiIrJaLISIiIjIarEQIiIiIqvFQoiIiIisFgshIiIisloshIioU1myZAkCAwNlO/5rr72GefPmGdT2P//zP7FgwQKJIyKiB8GVpYnIbCgUivt+HhMTg9WrV6O2tlb3lHdTunjxIoYOHYrjx49jwIABbbavqqrC4MGDcfz4cQwcOFD6AImo3VgIEZHZqKys1P33li1bkJKSgpMnT+q2denSBT169JAjNABAamoqDh48iL179xr8naeffhpDhgzBn//8ZwkjI6KO4tAYEZmN3r176149evSAQqFotu3eobHY2FhMnToVqamp8PDwgLOzM5YuXYqGhgYsWrQILi4u6Nu3L9avX693rPPnz+PZZ59Fz5494erqiilTpqCsrOy+8X388ceYPHmy3rbt27dDo9GgS5cucHV1xfjx43Hz5k3d55MnT8bmzZsf+GdDRNJgIUREnd7+/ftx4cIF5Obm4p133sGSJUswadIk9OzZE19//TXmz5+P+fPno7y8HABQU1ODiIgIdOvWDbm5ufjyyy/RrVs3REdHo66ursVj/PTTTzhx4gRCQkJ02yoqKvDcc89h9uzZKC0tRU5ODqZNm4a7O9pHjhyJ8vJy/Pjjj9L+EIioQ1gIEVGn5+LignfffRfe3t6YPXs2vL29UVNTgz/+8Y8YOnQokpOTYWdnh/z8fAB3enZsbGywbt06aDQaDBs2DBs2bMDZs2eRk5PT4jF+/PFHCCHQp08f3baKigo0NDRg2rRpGDBgADQaDeLi4tCtWzddG09PTwBos7eJiORhK3cAREQP6qGHHoKNza//rvPw8ICfn5/uvVKphKurK6qqqgAABQUFOHXqFLp37663n9u3b+OHH35o8Ri3bt0CADg4OOi2BQQEYNy4cdBoNHjssccQFRWFZ555Bj179tS16dKlC4A7vVBEZH5YCBFRp6dSqfTeKxSKFrc1NjYCABobGxEcHIx//OMfzfbVq1evFo/h5uYG4M4QWVMbpVKJ7OxsHDp0CF988QXee+89vPLKK/j66691d4ldvXr1vvslInlxaIyIrE5QUBC+//57uLu7Y8iQIXqv1u5KGzx4MJycnFBSUqK3XaFQYMyYMVi6dCkKCwthZ2eHTz/9VPf5iRMnoFKp8NBDD0maExF1DAshIrI6L7zwAtzc3DBlyhTk5eXhzJkzOHjwIBISEnDu3LkWv2NjY4Px48fjyy+/1G37+uuvkZqaiiNHjuDs2bPIzMzEpUuXMGzYMF2bvLw8hIWF6YbIiMi8sBAiIqvj6OiI3Nxc9OvXD9OmTcOwYcMwe/Zs3Lp1C05OTq1+b968efj44491Q2xOTk7Izc3F448/jt/85jd49dVX8Ze//AUTJ07UfWfz5s34t3/7N8lzIqKO4YKKREQGEkIgNDQUCxcuxHPPPddm+927d2PRokU4fvw4bG05JZPIHLFHiIjIQAqFAmvXrkVDQ4NB7W/evIkNGzawCCIyY+wRIiIiIqvFHiEiIiKyWiyEiIiIyGqxECIiIiKrxUKIiIiIrBYLISIiIrJaLISIiIjIarEQIiIiIqvFQoiIiIisFgshIiIislr/DziKow5hVRs7AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,ax = plt.subplots()\n", "t = np.linspace(0,150e-3,len(nt))\n", "\n", "ax.scatter(df['time'],df['H3+'],color='#000000',label=r'H$_3^+$')\n", "ax.scatter(df['time'],df['H2D+'],color='#ffbf00',label=r'H$_2$D$^+$')\n", "ax.scatter(df['time'],df['D2H+'],color='#022851',label=r'D$_2$H$^+$')\n", "ax.scatter(df['time'],df['D3+'],color='#c10230',label=r'D$_3^+$')\n", "\n", "ax.set_xlabel(\"Time (s)\")\n", "ax.set_ylabel(\"Number\")\n", "\n", "lines = ax.plot(t,nt)\n", "lines[0].set_color('#000000')\n", "lines[1].set_color('#ffbf00')\n", "lines[2].set_color('#022851')\n", "lines[3].set_color('#c10230')\n", "ax.set_yscale('log')\n", "ax.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the step size is a critical parameter! If we increase the step size too much, we can get some bad results." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "n = n0\n", "dt = 5e-3\n", "steps = round(.15/dt)+1\n", "\n", "nt = np.zeros((steps+1,len(n0)))\n", "nt[0] = n0\n", "\n", "for i in range(0,steps):\n", " n = n + J@n*dt\n", " nt[i+1] = n\n", " \n", "fig,ax = plt.subplots()\n", "t = np.linspace(0,len(nt)*dt,len(nt))\n", "\n", "ax.scatter(df['time'],df['H3+'],color='#000000',label=r'H$_3^+$')\n", "ax.scatter(df['time'],df['H2D+'],color='#ffbf00',label=r'H$_2$D$^+$')\n", "ax.scatter(df['time'],df['D2H+'],color='#022851',label=r'D$_2$H$^+$')\n", "ax.scatter(df['time'],df['D3+'],color='#c10230',label=r'D$_3^+$')\n", "\n", "ax.set_xlabel(\"Time (s)\")\n", "ax.set_ylabel(\"Number\")\n", "\n", "lines = ax.plot(t,nt)\n", "lines[0].set_color('#000000')\n", "lines[1].set_color('#ffbf00')\n", "lines[2].set_color('#022851')\n", "lines[3].set_color('#c10230')\n", "ax.set_yscale('log')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Least Squares Fitting and Numerical Integration\n", "\n", "It is possible (though not very common) to implement least squares fitting together with the numerical integration in order to estimate the kinetics parameters. We'll walk through the process here. Last time we used `scipy.optimize.least_squares`, which required us to calculate the residuals vector between the model and the experimental data. When using integrated rate equations, this was straightforward because we could just plug in the time for each data point into the model and compute the model's prediction. With numerical integration; however, we do not have such a function!\n", "\n", "Instead, what we can do is save the model's outputs whenever the time matches the time at which an experimental data point is taken. If we choose time steps judiciously, we can make sure that we always sample the model at each time point needed. If we inspect the data frame, we can see that all of the time points are at a multiple of 0.1 ms." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "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", " \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", " \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", " \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", " \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", " \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", " \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", "
timeD3+D2H+H2D+H3+
00.008127.81102116.55481351.19441465.98568
10.013996.52657229.77889375.15156296.38254
20.0199199.47921299.18979322.62655179.82987
30.0259313.63000313.63000250.12530107.07367
40.0318457.28214302.02364183.2526062.56267
50.0376568.00224267.18790122.1802536.90133
60.0436660.47549225.4871583.0118820.96004
70.0495718.95912186.7404957.4735111.90535
80.0553790.03413146.1470937.959857.15578
90.0613820.39408114.3778322.816003.59570
100.0672820.3940884.5918614.511742.86763
110.0732876.3582568.102459.143351.28682
120.0790868.1354948.962886.512020.99765
130.0850876.3582540.549323.629750.49660
140.0909876.3582534.220682.330510.10000
150.0968901.4967726.781831.539250.20089
160.1028876.3582522.601921.323740.19901
170.1087893.0381519.437420.766200.09906
180.1145927.3564017.688750.55086NaN
190.1205901.4967714.928010.43932NaN
200.1264927.3564013.974710.21868NaN
210.1322901.4967712.018110.32799NaN
220.1384910.0355213.843590.43932NaN
230.1441927.3564013.457560.21868NaN
240.1500945.0069611.68298NaNNaN
\n", "
" ], "text/plain": [ " time D3+ D2H+ H2D+ H3+\n", "0 0.0081 27.81102 116.55481 351.19441 465.98568\n", "1 0.0139 96.52657 229.77889 375.15156 296.38254\n", "2 0.0199 199.47921 299.18979 322.62655 179.82987\n", "3 0.0259 313.63000 313.63000 250.12530 107.07367\n", "4 0.0318 457.28214 302.02364 183.25260 62.56267\n", "5 0.0376 568.00224 267.18790 122.18025 36.90133\n", "6 0.0436 660.47549 225.48715 83.01188 20.96004\n", "7 0.0495 718.95912 186.74049 57.47351 11.90535\n", "8 0.0553 790.03413 146.14709 37.95985 7.15578\n", "9 0.0613 820.39408 114.37783 22.81600 3.59570\n", "10 0.0672 820.39408 84.59186 14.51174 2.86763\n", "11 0.0732 876.35825 68.10245 9.14335 1.28682\n", "12 0.0790 868.13549 48.96288 6.51202 0.99765\n", "13 0.0850 876.35825 40.54932 3.62975 0.49660\n", "14 0.0909 876.35825 34.22068 2.33051 0.10000\n", "15 0.0968 901.49677 26.78183 1.53925 0.20089\n", "16 0.1028 876.35825 22.60192 1.32374 0.19901\n", "17 0.1087 893.03815 19.43742 0.76620 0.09906\n", "18 0.1145 927.35640 17.68875 0.55086 NaN\n", "19 0.1205 901.49677 14.92801 0.43932 NaN\n", "20 0.1264 927.35640 13.97471 0.21868 NaN\n", "21 0.1322 901.49677 12.01811 0.32799 NaN\n", "22 0.1384 910.03552 13.84359 0.43932 NaN\n", "23 0.1441 927.35640 13.45756 0.21868 NaN\n", "24 0.1500 945.00696 11.68298 NaN NaN" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Therefore, a time step `dt` of 0.1 ms (or some integer factor smaller) will ensure that the model samples each time point we need to compare with the experimental data. The code below checks to see if `i` (the current time in units of `dt`) is in the array `tvals`, which is the time array converted to units of dt, and if so it stores the current model abundances in a list for later use. Importantly, this is chosen such that all of the time comparisons are between integers so that we don't have to worry about issues with floating point comparisons.\n", "\n", "At the end of the clode block, `nm` is a 2D numpy array where each row is a time point and each column is the abundance of one of the ions." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[4.50089342e+02, 3.36736369e+02, 1.20290831e+02, 2.48834586e+01],\n", " [2.67265693e+02, 3.48934029e+02, 2.24089576e+02, 9.17107016e+01],\n", " [1.54482631e+02, 2.95388413e+02, 2.85945532e+02, 1.96183424e+02],\n", " [9.00987532e+01, 2.27924582e+02, 3.00204270e+02, 3.13772394e+02],\n", " [5.30225470e+01, 1.67448067e+02, 2.83112976e+02, 4.28416410e+02],\n", " [3.14850997e+01, 1.19541198e+02, 2.49866156e+02, 5.31107547e+02],\n", " [1.83630237e+01, 8.22692556e+01, 2.08983405e+02, 6.22384315e+02],\n", " [1.08065235e+01, 5.59284504e+01, 1.69059974e+02, 6.96205052e+02],\n", " [6.41697706e+00, 3.77458170e+01, 1.33605776e+02, 7.54231430e+02],\n", " [3.74256723e+00, 2.48446304e+01, 1.02431756e+02, 8.00981046e+02],\n", " [2.22235839e+00, 1.64331937e+01, 7.78657249e+01, 8.35478723e+02],\n", " [1.28454860e+00, 1.05554122e+01, 5.74822617e+01, 8.62677777e+02],\n", " [7.62772496e-01, 6.88521167e+00, 4.25595586e+01, 8.81792457e+02],\n", " [4.44871054e-01, 4.40090980e+00, 3.08644445e+01, 8.96289775e+02],\n", " [2.64167043e-01, 2.84201601e+00, 2.24314491e+01, 9.06462368e+02],\n", " [1.55460636e-01, 1.81409461e+00, 1.60932933e+01, 9.13937151e+02],\n", " [8.98580277e-02, 1.13613441e+00, 1.13393028e+01, 9.19434705e+02],\n", " [5.28808816e-02, 7.20190922e-01, 8.03569164e+00, 9.23191237e+02],\n", " [3.14009779e-02, 4.58789221e-01, 5.70039499e+00, 9.25809415e+02],\n", " [1.83139615e-02, 2.87009364e-01, 3.97854423e+00, 9.27716132e+02],\n", " [1.07776506e-02, 1.80536372e-01, 2.78267556e+00, 9.29026010e+02],\n", " [6.39983221e-03, 1.14225370e-01, 1.95158979e+00, 9.29927785e+02],\n", " [3.69917630e-03, 7.04399799e-02, 1.33958809e+00, 9.30586273e+02],\n", " [2.19659260e-03, 4.44074932e-02, 9.34168417e-01, 9.31019227e+02],\n", " [1.30434958e-03, 2.79530132e-02, 6.49924148e-01, 9.31320818e+02]])" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = n0\n", "dt = 1e-4\n", "steps = 1500\n", "\n", "nmodel = []\n", "tvals = df['time'].to_numpy()/dt\n", "tvals = tvals.astype(int)\n", "\n", "# print(tvals)\n", "\n", "for i in range(0,steps+1):\n", " n = n + J@n*dt\n", " if i in tvals:\n", " nmodel.append(n)\n", " \n", "nm = np.array(nmodel)\n", "nm" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 80, 138, 199, 259, 318, 376, 436, 495, 553, 613, 671,\n", " 732, 790, 850, 908, 967, 1028, 1087, 1145, 1205, 1264, 1322,\n", " 1383, 1441, 1499])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tvals" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we'll plot the results. A quick side note here: we've been doing a lot of repetitive manual color changing. If you have a set of colors you want to consistently use, you can change matplotlib's default color cycling (see this [tutorial](https://matplotlib.org/tutorials/intermediate/color_cycle.html) for a quick example). Below I create a new `cycler` object that tells matplotlib to cycle between the 4 colors we have been using instead of its defaults. As the tutorial shows, you can either set the cycler on an `Axes` object like in the code below, which only affects that object, or you can apply the cycler to all subsequently created plots." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[,\n", " ,\n", " ,\n", " ]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from cycler import cycler\n", "\n", "ucd_cycler = (cycler(color=['#000000','#ffbf00','#022851','#c10230','#266041','#8a532f']))\n", "\n", "fig,ax = plt.subplots()\n", "ax.set_prop_cycle(ucd_cycler)\n", "ax.plot(df['time'],nm,'o')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's turn that into a function that takes the kinetics parameters (`h30`, `k1`, `k2`, `k3`) as arguments. We also need to pass the time values at which the model should be sampled, the step size, and the number of steps." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "def runmodel(params,tvals,dt,steps):\n", " h30 = params[0]\n", " k1 = params[1]\n", " k2 = params[2]\n", " k3 = params[3]\n", " n = np.asarray([h30,0,0,0])\n", " nmodel = []\n", " J = np.zeros((4,4))\n", " J[0,0] = -k1\n", " J[1,1] = -k2\n", " J[2,2] = -k3\n", " J[1,0] = k1\n", " J[2,1] = k2\n", " J[3,2] = k3\n", "\n", " for i in range(0,steps+1):\n", " n = n + J@n*dt\n", " if i in tvals:\n", " nmodel.append(n)\n", " \n", " return(np.array(nmodel))\n", " \n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Test to make sure the `runmodel` function works as intended:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[4.47777687e+02, 3.38253651e+02, 1.20939461e+02, 2.50292016e+01],\n", " [2.64914449e+02, 3.49874968e+02, 2.25036251e+02, 9.21743320e+01],\n", " [1.52530950e+02, 2.95630786e+02, 2.86813753e+02, 1.97024510e+02],\n", " [8.86218059e+01, 2.27697064e+02, 3.00776813e+02, 3.14904318e+02],\n", " [5.19581291e+01, 1.66985728e+02, 2.83349348e+02, 4.29706795e+02],\n", " [3.07394932e+01, 1.19006906e+02, 2.49820505e+02, 5.32433096e+02],\n", " [1.78599123e+01, 8.17582486e+01, 2.08733115e+02, 6.23648724e+02],\n", " [1.04710982e+01, 5.54866633e+01, 1.68695034e+02, 6.97347205e+02],\n", " [6.19491611e+00, 3.73859410e+01, 1.33195880e+02, 7.55223262e+02],\n", " [3.59930002e+00, 2.45663544e+01, 1.02024885e+02, 8.01809461e+02],\n", " [2.12941960e+00, 1.62230530e+01, 7.74910826e+01, 8.36156445e+02],\n", " [1.22606523e+00, 1.04030836e+01, 5.71570412e+01, 8.63213810e+02],\n", " [7.25365299e-01, 6.77525210e+00, 4.22859626e+01, 8.82213420e+02],\n", " [4.21443533e-01, 4.32372545e+00, 3.06424760e+01, 8.96612355e+02],\n", " [2.49334625e-01, 2.78793077e+00, 2.22543068e+01, 9.06708428e+02],\n", " [1.46182539e-01, 1.77685971e+00, 1.59551719e+01, 9.14121786e+02],\n", " [8.41681596e-02, 1.11108693e+00, 1.12343224e+01, 9.19570422e+02],\n", " [4.93469983e-02, 7.03270952e-01, 7.95629734e+00, 9.23291085e+02],\n", " [2.91946947e-02, 4.47367967e-01, 5.64075439e+00, 9.25882683e+02],\n", " [1.69623710e-02, 2.79455245e-01, 3.93463989e+00, 9.27768942e+02],\n", " [9.94487816e-03, 1.75535626e-01, 2.75048032e+00, 9.29064039e+02],\n", " [5.88359358e-03, 1.10909009e-01, 1.92803676e+00, 9.29955171e+02],\n", " [3.38762239e-03, 6.82976533e-02, 1.32275557e+00, 9.30605559e+02],\n", " [2.00418678e-03, 4.29996030e-02, 9.22012732e-01, 9.31032983e+02],\n", " [1.18571794e-03, 2.70313112e-02, 6.41192306e-01, 9.31330591e+02]])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tvals = df['time'].to_numpy()/dt\n", "tvals = tvals.astype(int)\n", "hd=6.3e10\n", "k1=1.43e-9*hd\n", "k2=1.33e-9*hd\n", "k3=1.05e-9*hd\n", "h30 = 932\n", "\n", "runmodel(np.array([h30,k1,k2,k3]),tvals,1e-4,1500)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To perform the `least_squares` optimization, we need to create a function that computes the residuals of the model. This function must have the signature `f(x,*args,**kwargs)` where `x` is an array containing the parameters that will be optimized (`h30`, `k1`, `k2`, and `k3`), `*args` contains any additional arguments that are needed, and `**kwargs` can contain any other information.\n", "\n", "Like last time, we'll use `**kwargs` to pass in the experimental data. `*args` will contain the `tvals`, `dt`, and `steps` parameters that need to be passed to `runmodel.` Ance we have the results of the model, we need to compute the residuals." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "def total_fit(x,*args,**kwargs):\n", " \n", " df = kwargs['df']\n", "\n", " nm = runmodel(x,*args)\n", " \n", " #a naive algorithm using for loops; slow, but flexible!\n", "# out = []\n", "# for i,model in enumerate(nm):\n", "# for j,mol in enumerate(['H3+','H2D+','D2H+','D3+']):\n", "# n = df.at[i,mol]\n", "# if np.isfinite(n):\n", "# out.append(n-model[j])\n", "# return out\n", " \n", " #taking advantage of numpy's array routines: fast, but requires more work if anything changes\n", " rh3 = df['H3+'] - nm[:,0]\n", " rh3 = rh3[~np.isnan(rh3)] #remove NaNs... isnan returns an array of booleans, so we take the logical not and use it as a slice to extract only the finite values\n", " \n", " rh2d = df['H2D+'] - nm[:,1]\n", " rh2d = rh2d[~np.isnan(rh2d)]\n", " \n", " #there are no NaNs in the experimental data for D2H+ or D3+\n", " rd2h = df['D2H+'] - nm[:,2]\n", " rd3 = df['D3+'] - nm[:,3]\n", " \n", " #concatenate and return\n", " return np.concatenate((rh3,rh2d,rd2h,rd3))\n", " " ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-4.66014320e+02, -6.35617460e+02, -7.52170130e+02, -8.24926330e+02,\n", " -8.69437330e+02, -8.95098670e+02, -9.11039960e+02, -9.20094650e+02,\n", " -9.24844220e+02, -9.28404300e+02, -9.29132370e+02, -9.30713180e+02,\n", " -9.31002350e+02, -9.31503400e+02, -9.31900000e+02, -9.31799110e+02,\n", " -9.31800990e+02, -9.31900940e+02, 3.51194410e+02, 3.75151560e+02,\n", " 3.22626550e+02, 2.50125300e+02, 1.83252600e+02, 1.22180250e+02,\n", " 8.30118800e+01, 5.74735100e+01, 3.79598499e+01, 2.28159999e+01,\n", " 1.45117399e+01, 9.14334993e+00, 6.51201993e+00, 3.62974992e+00,\n", " 2.33050992e+00, 1.53924991e+00, 1.32373990e+00, 7.66199899e-01,\n", " 5.50859893e-01, 4.39319888e-01, 2.18679882e-01, 3.27989877e-01,\n", " 4.39319871e-01, 2.18679866e-01, 1.16554810e+02, 2.29778890e+02,\n", " 2.99189790e+02, 3.13630000e+02, 3.02023640e+02, 2.67187900e+02,\n", " 2.25487150e+02, 1.86740490e+02, 1.46147090e+02, 1.14377830e+02,\n", " 8.45918600e+01, 6.81024500e+01, 4.89628800e+01, 4.05493200e+01,\n", " 3.42206800e+01, 2.67818300e+01, 2.26019200e+01, 1.94374200e+01,\n", " 1.76887500e+01, 1.49280100e+01, 1.39747100e+01, 1.20181100e+01,\n", " 1.38435900e+01, 1.34575600e+01, 1.16829800e+01, 2.78110200e+01,\n", " 9.65265700e+01, 1.99479210e+02, 3.13630000e+02, 4.57282140e+02,\n", " 5.68002240e+02, 6.60475490e+02, 7.18959120e+02, 7.90034130e+02,\n", " 8.20394080e+02, 8.20394080e+02, 8.76358250e+02, 8.68135490e+02,\n", " 8.76358250e+02, 8.76358250e+02, 9.01496770e+02, 8.76358250e+02,\n", " 8.93038150e+02, 9.27356400e+02, 9.01496770e+02, 9.27356400e+02,\n", " 9.01496770e+02, 9.10035520e+02, 9.27356400e+02, 9.45006960e+02])" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "total_fit(np.array([932, 1e-9, 1e-9, 1e-9]), tvals, dt, steps, df=df)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can use `least_squares` to compute optimal parameters, and we can see that we get almost exactly the same results as the integrated rate equation approach. Note, however, that there is no problem with us starting out with `k1` and `k2` being equal! There is no divide by 0 error with numerical integration like there was with the integrated rate equations." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "`ftol` termination condition is satisfied.\n", "Function evaluations 6, initial cost 1.7800e+05, final cost 1.0520e+04, first-order optimality 1.13e-03.\n", "[H3+]0 = 9.32e+02 +/- 2.46e-01\n", "k1 = 1.42e-09 +/- 1.87e-12\n", "k2 = 1.33e-09 +/- 1.95e-12\n", "k3 = 1.05e-09 +/- 1.39e-12\n" ] } ], "source": [ "import scipy.optimize as opt\n", "import numpy.linalg as la\n", "\n", "data = {\n", " 'df' : df\n", "}\n", "\n", "tvals = df['time'].to_numpy()/dt\n", "tvals = tvals.astype(int)\n", "hd=6.3e10\n", "\n", "result = opt.least_squares(total_fit,[900,1e-9*hd,1e-9*hd,1e-9*hd],\n", " args=[tvals,1e-4,1500],kwargs=data,verbose=1)\n", "pcov = la.inv(result.jac.T @ result.jac)\n", "\n", "for i,x in enumerate(['[H3+]0','k1','k2','k3']):\n", " den = hd\n", " if i==0:\n", " den = 1.\n", " print(f'{x} = {result.x[i]/den:.2e} +/- {np.sqrt(pcov[i][i])/den:.2e}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Integration with `scipy.integrate`\n", "\n", "Our manual implementation of the numerical integration uned the Forward Euler Method, whose total error is proportional to $(\\Delta t)^{1}$. It is usually desirable to use a higher-order method to achieve either higher accuracy or obtain the same accuracy with fewer steps. The function we are going to explore is [`scipy.integrate.solve_ivp`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html), which is made to solve initial value problems." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "\u001b[0;31mSignature:\u001b[0m\n", "\u001b[0mspi\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msolve_ivp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mfun\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mt_span\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0my0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'RK45'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mt_eval\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mdense_output\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mevents\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mvectorized\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mDocstring:\u001b[0m\n", "Solve an initial value problem for a system of ODEs.\n", "\n", "This function numerically integrates a system of ordinary differential\n", "equations given an initial value::\n", "\n", " dy / dt = f(t, y)\n", " y(t0) = y0\n", "\n", "Here t is a 1-D independent variable (time), y(t) is an\n", "N-D vector-valued function (state), and an N-D\n", "vector-valued function f(t, y) determines the differential equations.\n", "The goal is to find y(t) approximately satisfying the differential\n", "equations, given an initial value y(t0)=y0.\n", "\n", "Some of the solvers support integration in the complex domain, but note\n", "that for stiff ODE solvers, the right-hand side must be\n", "complex-differentiable (satisfy Cauchy-Riemann equations [11]_).\n", "To solve a problem in the complex domain, pass y0 with a complex data type.\n", "Another option always available is to rewrite your problem for real and\n", "imaginary parts separately.\n", "\n", "Parameters\n", "----------\n", "fun : callable\n", " Right-hand side of the system: the time derivative of the state ``y``\n", " at time ``t``. The calling signature is ``fun(t, y)``, where ``t`` is a\n", " scalar and ``y`` is an ndarray with ``len(y) = len(y0)``. Additional\n", " arguments need to be passed if ``args`` is used (see documentation of\n", " ``args`` argument). ``fun`` must return an array of the same shape as\n", " ``y``. See `vectorized` for more information.\n", "t_span : 2-member sequence\n", " Interval of integration (t0, tf). The solver starts with t=t0 and\n", " integrates until it reaches t=tf. Both t0 and tf must be floats\n", " or values interpretable by the float conversion function.\n", "y0 : array_like, shape (n,)\n", " Initial state. For problems in the complex domain, pass `y0` with a\n", " complex data type (even if the initial value is purely real).\n", "method : string or `OdeSolver`, optional\n", " Integration method to use:\n", "\n", " * 'RK45' (default): Explicit Runge-Kutta method of order 5(4) [1]_.\n", " The error is controlled assuming accuracy of the fourth-order\n", " method, but steps are taken using the fifth-order accurate\n", " formula (local extrapolation is done). A quartic interpolation\n", " polynomial is used for the dense output [2]_. Can be applied in\n", " the complex domain.\n", " * 'RK23': Explicit Runge-Kutta method of order 3(2) [3]_. The error\n", " is controlled assuming accuracy of the second-order method, but\n", " steps are taken using the third-order accurate formula (local\n", " extrapolation is done). A cubic Hermite polynomial is used for the\n", " dense output. Can be applied in the complex domain.\n", " * 'DOP853': Explicit Runge-Kutta method of order 8 [13]_.\n", " Python implementation of the \"DOP853\" algorithm originally\n", " written in Fortran [14]_. A 7-th order interpolation polynomial\n", " accurate to 7-th order is used for the dense output.\n", " Can be applied in the complex domain.\n", " * 'Radau': Implicit Runge-Kutta method of the Radau IIA family of\n", " order 5 [4]_. The error is controlled with a third-order accurate\n", " embedded formula. A cubic polynomial which satisfies the\n", " collocation conditions is used for the dense output.\n", " * 'BDF': Implicit multi-step variable-order (1 to 5) method based\n", " on a backward differentiation formula for the derivative\n", " approximation [5]_. The implementation follows the one described\n", " in [6]_. A quasi-constant step scheme is used and accuracy is\n", " enhanced using the NDF modification. Can be applied in the\n", " complex domain.\n", " * 'LSODA': Adams/BDF method with automatic stiffness detection and\n", " switching [7]_, [8]_. This is a wrapper of the Fortran solver\n", " from ODEPACK.\n", "\n", " Explicit Runge-Kutta methods ('RK23', 'RK45', 'DOP853') should be used\n", " for non-stiff problems and implicit methods ('Radau', 'BDF') for\n", " stiff problems [9]_. Among Runge-Kutta methods, 'DOP853' is recommended\n", " for solving with high precision (low values of `rtol` and `atol`).\n", "\n", " If not sure, first try to run 'RK45'. If it makes unusually many\n", " iterations, diverges, or fails, your problem is likely to be stiff and\n", " you should use 'Radau' or 'BDF'. 'LSODA' can also be a good universal\n", " choice, but it might be somewhat less convenient to work with as it\n", " wraps old Fortran code.\n", "\n", " You can also pass an arbitrary class derived from `OdeSolver` which\n", " implements the solver.\n", "t_eval : array_like or None, optional\n", " Times at which to store the computed solution, must be sorted and lie\n", " within `t_span`. If None (default), use points selected by the solver.\n", "dense_output : bool, optional\n", " Whether to compute a continuous solution. Default is False.\n", "events : callable, or list of callables, optional\n", " Events to track. If None (default), no events will be tracked.\n", " Each event occurs at the zeros of a continuous function of time and\n", " state. Each function must have the signature ``event(t, y)`` where\n", " additional argument have to be passed if ``args`` is used (see\n", " documentation of ``args`` argument). Each function must return a\n", " float. The solver will find an accurate value of `t` at which\n", " ``event(t, y(t)) = 0`` using a root-finding algorithm. By default,\n", " all zeros will be found. The solver looks for a sign change over\n", " each step, so if multiple zero crossings occur within one step,\n", " events may be missed. Additionally each `event` function might\n", " have the following attributes:\n", "\n", " terminal: bool or int, optional\n", " When boolean, whether to terminate integration if this event occurs.\n", " When integral, termination occurs after the specified the number of\n", " occurences of this event.\n", " Implicitly False if not assigned.\n", " direction: float, optional\n", " Direction of a zero crossing. If `direction` is positive,\n", " `event` will only trigger when going from negative to positive,\n", " and vice versa if `direction` is negative. If 0, then either\n", " direction will trigger event. Implicitly 0 if not assigned.\n", "\n", " You can assign attributes like ``event.terminal = True`` to any\n", " function in Python.\n", "vectorized : bool, optional\n", " Whether `fun` can be called in a vectorized fashion. Default is False.\n", "\n", " If ``vectorized`` is False, `fun` will always be called with ``y`` of\n", " shape ``(n,)``, where ``n = len(y0)``.\n", "\n", " If ``vectorized`` is True, `fun` may be called with ``y`` of shape\n", " ``(n, k)``, where ``k`` is an integer. In this case, `fun` must behave\n", " such that ``fun(t, y)[:, i] == fun(t, y[:, i])`` (i.e. each column of\n", " the returned array is the time derivative of the state corresponding\n", " with a column of ``y``).\n", "\n", " Setting ``vectorized=True`` allows for faster finite difference\n", " approximation of the Jacobian by methods 'Radau' and 'BDF', but\n", " will result in slower execution for other methods and for 'Radau' and\n", " 'BDF' in some circumstances (e.g. small ``len(y0)``).\n", "args : tuple, optional\n", " Additional arguments to pass to the user-defined functions. If given,\n", " the additional arguments are passed to all user-defined functions.\n", " So if, for example, `fun` has the signature ``fun(t, y, a, b, c)``,\n", " then `jac` (if given) and any event functions must have the same\n", " signature, and `args` must be a tuple of length 3.\n", "**options\n", " Options passed to a chosen solver. All options available for already\n", " implemented solvers are listed below.\n", "first_step : float or None, optional\n", " Initial step size. Default is `None` which means that the algorithm\n", " should choose.\n", "max_step : float, optional\n", " Maximum allowed step size. Default is np.inf, i.e., the step size is not\n", " bounded and determined solely by the solver.\n", "rtol, atol : float or array_like, optional\n", " Relative and absolute tolerances. The solver keeps the local error\n", " estimates less than ``atol + rtol * abs(y)``. Here `rtol` controls a\n", " relative accuracy (number of correct digits), while `atol` controls\n", " absolute accuracy (number of correct decimal places). To achieve the\n", " desired `rtol`, set `atol` to be smaller than the smallest value that\n", " can be expected from ``rtol * abs(y)`` so that `rtol` dominates the\n", " allowable error. If `atol` is larger than ``rtol * abs(y)`` the\n", " number of correct digits is not guaranteed. Conversely, to achieve the\n", " desired `atol` set `rtol` such that ``rtol * abs(y)`` is always smaller\n", " than `atol`. If components of y have different scales, it might be\n", " beneficial to set different `atol` values for different components by\n", " passing array_like with shape (n,) for `atol`. Default values are\n", " 1e-3 for `rtol` and 1e-6 for `atol`.\n", "jac : array_like, sparse_matrix, callable or None, optional\n", " Jacobian matrix of the right-hand side of the system with respect\n", " to y, required by the 'Radau', 'BDF' and 'LSODA' method. The\n", " Jacobian matrix has shape (n, n) and its element (i, j) is equal to\n", " ``d f_i / d y_j``. There are three ways to define the Jacobian:\n", "\n", " * If array_like or sparse_matrix, the Jacobian is assumed to\n", " be constant. Not supported by 'LSODA'.\n", " * If callable, the Jacobian is assumed to depend on both\n", " t and y; it will be called as ``jac(t, y)``, as necessary.\n", " Additional arguments have to be passed if ``args`` is\n", " used (see documentation of ``args`` argument).\n", " For 'Radau' and 'BDF' methods, the return value might be a\n", " sparse matrix.\n", " * If None (default), the Jacobian will be approximated by\n", " finite differences.\n", "\n", " It is generally recommended to provide the Jacobian rather than\n", " relying on a finite-difference approximation.\n", "jac_sparsity : array_like, sparse matrix or None, optional\n", " Defines a sparsity structure of the Jacobian matrix for a finite-\n", " difference approximation. Its shape must be (n, n). This argument\n", " is ignored if `jac` is not `None`. If the Jacobian has only few\n", " non-zero elements in *each* row, providing the sparsity structure\n", " will greatly speed up the computations [10]_. A zero entry means that\n", " a corresponding element in the Jacobian is always zero. If None\n", " (default), the Jacobian is assumed to be dense.\n", " Not supported by 'LSODA', see `lband` and `uband` instead.\n", "lband, uband : int or None, optional\n", " Parameters defining the bandwidth of the Jacobian for the 'LSODA'\n", " method, i.e., ``jac[i, j] != 0 only for i - lband <= j <= i + uband``.\n", " Default is None. Setting these requires your jac routine to return the\n", " Jacobian in the packed format: the returned array must have ``n``\n", " columns and ``uband + lband + 1`` rows in which Jacobian diagonals are\n", " written. Specifically ``jac_packed[uband + i - j , j] = jac[i, j]``.\n", " The same format is used in `scipy.linalg.solve_banded` (check for an\n", " illustration). These parameters can be also used with ``jac=None`` to\n", " reduce the number of Jacobian elements estimated by finite differences.\n", "min_step : float, optional\n", " The minimum allowed step size for 'LSODA' method.\n", " By default `min_step` is zero.\n", "\n", "Returns\n", "-------\n", "Bunch object with the following fields defined:\n", "t : ndarray, shape (n_points,)\n", " Time points.\n", "y : ndarray, shape (n, n_points)\n", " Values of the solution at `t`.\n", "sol : `OdeSolution` or None\n", " Found solution as `OdeSolution` instance; None if `dense_output` was\n", " set to False.\n", "t_events : list of ndarray or None\n", " Contains for each event type a list of arrays at which an event of\n", " that type event was detected. None if `events` was None.\n", "y_events : list of ndarray or None\n", " For each value of `t_events`, the corresponding value of the solution.\n", " None if `events` was None.\n", "nfev : int\n", " Number of evaluations of the right-hand side.\n", "njev : int\n", " Number of evaluations of the Jacobian.\n", "nlu : int\n", " Number of LU decompositions.\n", "status : int\n", " Reason for algorithm termination:\n", "\n", " * -1: Integration step failed.\n", " * 0: The solver successfully reached the end of `tspan`.\n", " * 1: A termination event occurred.\n", "\n", "message : string\n", " Human-readable description of the termination reason.\n", "success : bool\n", " True if the solver reached the interval end or a termination event\n", " occurred (``status >= 0``).\n", "\n", "References\n", "----------\n", ".. [1] J. R. Dormand, P. J. Prince, \"A family of embedded Runge-Kutta\n", " formulae\", Journal of Computational and Applied Mathematics, Vol. 6,\n", " No. 1, pp. 19-26, 1980.\n", ".. [2] L. W. Shampine, \"Some Practical Runge-Kutta Formulas\", Mathematics\n", " of Computation,, Vol. 46, No. 173, pp. 135-150, 1986.\n", ".. [3] P. Bogacki, L.F. Shampine, \"A 3(2) Pair of Runge-Kutta Formulas\",\n", " Appl. Math. Lett. Vol. 2, No. 4. pp. 321-325, 1989.\n", ".. [4] E. Hairer, G. Wanner, \"Solving Ordinary Differential Equations II:\n", " Stiff and Differential-Algebraic Problems\", Sec. IV.8.\n", ".. [5] `Backward Differentiation Formula\n", " `_\n", " on Wikipedia.\n", ".. [6] L. F. Shampine, M. W. Reichelt, \"THE MATLAB ODE SUITE\", SIAM J. SCI.\n", " COMPUTE., Vol. 18, No. 1, pp. 1-22, January 1997.\n", ".. [7] A. C. Hindmarsh, \"ODEPACK, A Systematized Collection of ODE\n", " Solvers,\" IMACS Transactions on Scientific Computation, Vol 1.,\n", " pp. 55-64, 1983.\n", ".. [8] L. Petzold, \"Automatic selection of methods for solving stiff and\n", " nonstiff systems of ordinary differential equations\", SIAM Journal\n", " on Scientific and Statistical Computing, Vol. 4, No. 1, pp. 136-148,\n", " 1983.\n", ".. [9] `Stiff equation `_ on\n", " Wikipedia.\n", ".. [10] A. Curtis, M. J. D. Powell, and J. Reid, \"On the estimation of\n", " sparse Jacobian matrices\", Journal of the Institute of Mathematics\n", " and its Applications, 13, pp. 117-120, 1974.\n", ".. [11] `Cauchy-Riemann equations\n", " `_ on\n", " Wikipedia.\n", ".. [12] `Lotka-Volterra equations\n", " `_\n", " on Wikipedia.\n", ".. [13] E. Hairer, S. P. Norsett G. Wanner, \"Solving Ordinary Differential\n", " Equations I: Nonstiff Problems\", Sec. II.\n", ".. [14] `Page with original Fortran code of DOP853\n", " `_.\n", "\n", "Examples\n", "--------\n", "Basic exponential decay showing automatically chosen time points.\n", "\n", ">>> import numpy as np\n", ">>> from scipy.integrate import solve_ivp\n", ">>> def exponential_decay(t, y): return -0.5 * y\n", ">>> sol = solve_ivp(exponential_decay, [0, 10], [2, 4, 8])\n", ">>> print(sol.t)\n", "[ 0. 0.11487653 1.26364188 3.06061781 4.81611105 6.57445806\n", " 8.33328988 10. ]\n", ">>> print(sol.y)\n", "[[2. 1.88836035 1.06327177 0.43319312 0.18017253 0.07483045\n", " 0.03107158 0.01350781]\n", " [4. 3.7767207 2.12654355 0.86638624 0.36034507 0.14966091\n", " 0.06214316 0.02701561]\n", " [8. 7.5534414 4.25308709 1.73277247 0.72069014 0.29932181\n", " 0.12428631 0.05403123]]\n", "\n", "Specifying points where the solution is desired.\n", "\n", ">>> sol = solve_ivp(exponential_decay, [0, 10], [2, 4, 8],\n", "... t_eval=[0, 1, 2, 4, 10])\n", ">>> print(sol.t)\n", "[ 0 1 2 4 10]\n", ">>> print(sol.y)\n", "[[2. 1.21305369 0.73534021 0.27066736 0.01350938]\n", " [4. 2.42610739 1.47068043 0.54133472 0.02701876]\n", " [8. 4.85221478 2.94136085 1.08266944 0.05403753]]\n", "\n", "Cannon fired upward with terminal event upon impact. The ``terminal`` and\n", "``direction`` fields of an event are applied by monkey patching a function.\n", "Here ``y[0]`` is position and ``y[1]`` is velocity. The projectile starts\n", "at position 0 with velocity +10. Note that the integration never reaches\n", "t=100 because the event is terminal.\n", "\n", ">>> def upward_cannon(t, y): return [y[1], -0.5]\n", ">>> def hit_ground(t, y): return y[0]\n", ">>> hit_ground.terminal = True\n", ">>> hit_ground.direction = -1\n", ">>> sol = solve_ivp(upward_cannon, [0, 100], [0, 10], events=hit_ground)\n", ">>> print(sol.t_events)\n", "[array([40.])]\n", ">>> print(sol.t)\n", "[0.00000000e+00 9.99900010e-05 1.09989001e-03 1.10988901e-02\n", " 1.11088891e-01 1.11098890e+00 1.11099890e+01 4.00000000e+01]\n", "\n", "Use `dense_output` and `events` to find position, which is 100, at the apex\n", "of the cannonball's trajectory. Apex is not defined as terminal, so both\n", "apex and hit_ground are found. There is no information at t=20, so the sol\n", "attribute is used to evaluate the solution. The sol attribute is returned\n", "by setting ``dense_output=True``. Alternatively, the `y_events` attribute\n", "can be used to access the solution at the time of the event.\n", "\n", ">>> def apex(t, y): return y[1]\n", ">>> sol = solve_ivp(upward_cannon, [0, 100], [0, 10],\n", "... events=(hit_ground, apex), dense_output=True)\n", ">>> print(sol.t_events)\n", "[array([40.]), array([20.])]\n", ">>> print(sol.t)\n", "[0.00000000e+00 9.99900010e-05 1.09989001e-03 1.10988901e-02\n", " 1.11088891e-01 1.11098890e+00 1.11099890e+01 4.00000000e+01]\n", ">>> print(sol.sol(sol.t_events[1][0]))\n", "[100. 0.]\n", ">>> print(sol.y_events)\n", "[array([[-5.68434189e-14, -1.00000000e+01]]),\n", " array([[1.00000000e+02, 1.77635684e-15]])]\n", "\n", "As an example of a system with additional parameters, we'll implement\n", "the Lotka-Volterra equations [12]_.\n", "\n", ">>> def lotkavolterra(t, z, a, b, c, d):\n", "... x, y = z\n", "... return [a*x - b*x*y, -c*y + d*x*y]\n", "...\n", "\n", "We pass in the parameter values a=1.5, b=1, c=3 and d=1 with the `args`\n", "argument.\n", "\n", ">>> sol = solve_ivp(lotkavolterra, [0, 15], [10, 5], args=(1.5, 1, 3, 1),\n", "... dense_output=True)\n", "\n", "Compute a dense solution and plot it.\n", "\n", ">>> t = np.linspace(0, 15, 300)\n", ">>> z = sol.sol(t)\n", ">>> import matplotlib.pyplot as plt\n", ">>> plt.plot(t, z.T)\n", ">>> plt.xlabel('t')\n", ">>> plt.legend(['x', 'y'], shadow=True)\n", ">>> plt.title('Lotka-Volterra System')\n", ">>> plt.show()\n", "\n", "A couple examples of using solve_ivp to solve the differential\n", "equation ``y' = Ay`` with complex matrix ``A``.\n", "\n", ">>> A = np.array([[-0.25 + 0.14j, 0, 0.33 + 0.44j],\n", "... [0.25 + 0.58j, -0.2 + 0.14j, 0],\n", "... [0, 0.2 + 0.4j, -0.1 + 0.97j]])\n", "\n", "Solving an IVP with ``A`` from above and ``y`` as 3x1 vector:\n", "\n", ">>> def deriv_vec(t, y):\n", "... return A @ y\n", ">>> result = solve_ivp(deriv_vec, [0, 25],\n", "... np.array([10 + 0j, 20 + 0j, 30 + 0j]),\n", "... t_eval=np.linspace(0, 25, 101))\n", ">>> print(result.y[:, 0])\n", "[10.+0.j 20.+0.j 30.+0.j]\n", ">>> print(result.y[:, -1])\n", "[18.46291039+45.25653651j 10.01569306+36.23293216j\n", " -4.98662741+80.07360388j]\n", "\n", "Solving an IVP with ``A`` from above with ``y`` as 3x3 matrix :\n", "\n", ">>> def deriv_mat(t, y):\n", "... return (A @ y.reshape(3, 3)).flatten()\n", ">>> y0 = np.array([[2 + 0j, 3 + 0j, 4 + 0j],\n", "... [5 + 0j, 6 + 0j, 7 + 0j],\n", "... [9 + 0j, 34 + 0j, 78 + 0j]])\n", "\n", ">>> result = solve_ivp(deriv_mat, [0, 25], y0.flatten(),\n", "... t_eval=np.linspace(0, 25, 101))\n", ">>> print(result.y[:, 0].reshape(3, 3))\n", "[[ 2.+0.j 3.+0.j 4.+0.j]\n", " [ 5.+0.j 6.+0.j 7.+0.j]\n", " [ 9.+0.j 34.+0.j 78.+0.j]]\n", ">>> print(result.y[:, -1].reshape(3, 3))\n", "[[ 5.67451179 +12.07938445j 17.2888073 +31.03278837j\n", " 37.83405768 +63.25138759j]\n", " [ 3.39949503 +11.82123994j 21.32530996 +44.88668871j\n", " 53.17531184+103.80400411j]\n", " [ -2.26105874 +22.19277664j -15.1255713 +70.19616341j\n", " -38.34616845+153.29039931j]]\n", "\u001b[0;31mFile:\u001b[0m ~/miniconda3/envs/che155/lib/python3.9/site-packages/scipy/integrate/_ivp/ivp.py\n", "\u001b[0;31mType:\u001b[0m function" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import scipy.integrate as spi\n", "\n", "spi.solve_ivp?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we can see from the function description, we need to provide at least 3 arguments:\n", "- `fun` is a function that computes the vector of derivatives. Its function signature needs to be `f(t,y,*args)`. `t` is the current time, `y` is the current state array (in our case, the array containing the molecule abundances), and the remainder of the arguments can contain anything else needed to compute the derivatives (e.g., rate coefficients, etc)\n", "- `t_span` is a tuple that specifies the initial and final time for the integration\n", "- `y0` is a vector containing the initial conditions - the starting abundances for the molecules.\n", "\n", "In addition to those required parameters, there are three other optional arguments that are useful for us:\n", "- `method` selects which numerical integration method will be employed. The default, `'RK45'`, is the fourth-order Runge-Kutta method, but several others are available, including some implicit solvers that are important when problems are \"stiff.\" A system of equations is stiff when the solutions are very sensitive to the step size even when the solution appears \"smooth.\" Chemical kinetics problems are frequently stiff when there are some very slow reactions combined with others that are very fast, and you want to evaluate the system over a long time compared with the rate of the fast reactions. In the current example, all of the reactions have comparable rates, so we will stick with `'RK45'`, but often the `'Adams'` or `'Radau'` methods are more appropriate for kinetics problems.\n", "- `t_eval` is a list of times at which the model returns abundances. If this is None, the model only gives the results at the final time. If we pass an array of times, the results will contain the abundances at all of the time values specified in `t_eval` which fall within `t_span`\n", "- `dense_output` causes the solver to construct functions that interpolate between time steps. This allows you to (approximately) evaluate the model at any time, not just at the time steps that were used in the model.\n", "\n", "Note that nowhere do you need to specify the step size! All of the methods employ various algorithms to automatically determine the step size needed to bring the error down to a certain desired value. Some even include adaptive step sizes that can take smaller or larger steps depending on the magnitudes of the derivatives.\n", "\n", "Let's re-implement the same model, but this time perform the integration with `solve_ivp`. First we need to write a function that computes the derivative." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "# function must take t and y as its first 2 arguments. Since our derivatives don't explicitly depend on t, that variable isn't used in the body of the function.\n", "# to calculate the rates, we need the rate coefficients and abundances. The abundances are in y, so we need to pass the k values as arguments.\n", "def calc_derivative(t,y,k1,k2,k3):\n", " \n", " J = np.zeros((len(y),len(y)))\n", " J[0,0] = -k1\n", " J[1,1] = -k2\n", " J[2,2] = -k3\n", " J[1,0] = k1\n", " J[2,1] = k2\n", " J[3,2] = k3\n", " \n", " return J@y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With that, we can now use `solve_ivp` to compute the solution from 0 to 0.15 seconds. We'll use the default `RK45` integrator, and set the `dense_output` flag to allow us to generate a quasi-continuous model function. In addition, we'll pass our `df['time']` array to `t_eval` so that we have the exact model values at the experimental time points.\n", "\n", "Within the `result` object that is returned, we can access the dense solution with `result.sol`, which takes a time value as an argument. The solution values are in `result.y`, and the time points for each solution are in `result.t`. The plot that this cell creates shows both the dense output and the discrete solutions." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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rFmzJEkXLlxQNBqVGZ3xsCz2VGkf4QUAAFsch5dDhw5p7dq1mjdvnnw+n15//fW4Ng0NDVqwYIFyc3MVCoV0+PBhR/v49NNPtWzZMt100016/PHHlZ+f77Sbroj9sph5AQDAGsfh5fz581q2bJl++ctfTvj9l19+WXV1dXryySfV1tam1atXq6qqSj09PbE2oVBIpaWlcduJEyckSddee63++te/qqurS7///e/18ccfT7O85PJdmgEyLNgFAMAax2teqqqqVFVVNen3n3/+ea1fv14bNmyQJO3cuVP79u3Trl27tGPHDklSa2trQvsqKCjQ0qVLdejQId13330TthkcHNTg4GDsdX9/f6KlOObjtBEAANYldQphaGhIra2tqqysHPN+ZWWlWlpaEvqMjz/+OBZA+vv7dejQIS1evHjS9jt27FBeXl5sKyoqmn4BVxGLLFmEFwAAbElqeDl9+rSi0agKCgrGvF9QUKC+vr6EPuOjjz7SV77yFS1btkwVFRV65JFHtHTp0knbP/HEEzpz5kxs6+3t/b9qmAoLdgEAsM+VS6V94w7uxpi49yYTCoXU3t6e8L6CwaCCwaAikYgikYii0aiTrjoSe7YRC3YBALAmqTMv+fn58vv9cbMsp06dipuNSbZwOKyOjg4dOXLEtX1w2ggAAPuSGl4CgYBCoZCam5vHvN/c3KyVK1cmc1dWcNoIAAD7HJ82OnfunDo7O2Ovu7q61N7errlz52r+/Pmqr69XdXW1ysrKVF5ert27d6unp0cbN25MasfH8+K00eil0sy8AABgj+PwcvToUa1Zsyb2ur6+XpJUU1OjF154QQ888IA++eQTbd26VSdPnlRpaamamppUXFycvF5PIBwOKxwOq7+/X3l5ea7sg0ulAQCwz3F4ufPOO696u/7a2lrV1tZOu1PT4cnMy+gXLNgFAMCajLlVrBcLdkfXvBhOGwEAYE3GhBcvxC6V5rQRAADWEF4cuHypNL82AABsyZijcCQSUUlJiZYvX+7aPmILdjPmtwYAQPrJmMOwl2temHkBAMAejsIOcJ8XAADsI7w4EIssLNgFAMCajAkvXqx5uXzaiPACAIAtGRNevF3zQngBAMCWjAkvXvCJNS8AANhGeHHAxx12AQCwjvDiAA9mBADAvowJL54s2I19QXgBAMCWjAkvXizY5T4vAADYlzHh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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "hd=6.3e10\n", "k1=1.0e-9*hd\n", "k2=1.0e-9*hd\n", "k3=1.0e-9*hd\n", "h30 = 932\n", "\n", "result = spi.solve_ivp(calc_derivative,(0,.15),y0=[h30,0,0,0],\n", " t_eval=df['time'],method='RK45',\n", " dense_output=True,args=(k1,k2,k3))\n", "fig,ax = plt.subplots()\n", "ax.set_prop_cycle(ucd_cycler)\n", "ax.scatter(df['time'],df['H3+'],color='#000000',label=r'H$_3^+$')\n", "ax.scatter(df['time'],df['H2D+'],color='#ffbf00',label=r'H$_2$D$^+$')\n", "ax.scatter(df['time'],df['D2H+'],color='#022851',label=r'D$_2$H$^+$')\n", "ax.scatter(df['time'],df['D3+'],color='#c10230',label=r'D$_3^+$')\n", "t = np.linspace(0,160e-3,1000)\n", "ax.plot(t,result.sol(t).T)\n", "#ax.plot(result.t,result.y.T,'o')\n", "ax.set_yscale('log')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Using object-oriented programming to make a generalized kinetic model\n", "\n", "Up until now, our kinetic model consisted of hard-coded species and reactions. When doing research, one might want to test different models quickly, which means a more general way of setting up kinetic models is desirable. Below is a simple design of a reaction network class that stores the species in the system and individual reactions." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "class ReactionNetwork:\n", " \n", " def __init__(self):\n", " # Our constructor simply initializes some attributes to empty lists\n", " # so they can be extended by calling the other methods.\n", " self.species_list = []\n", " self.reaction_list = []\n", " \n", " def add_species(self, species):\n", " # Add a species to the list (can be \"H3+\" or \"HD\" for example)\n", " self.species_list.append(species)\n", " \n", " def add_reaction(self, reaction_str, kfwd=0.0, kbak=0.0):\n", " # Add a reaction to the list; the syntax is \"H3+ + HD -> H2D+ + H2\" \n", " # The reactants and products are separated by \" -> \"\n", " # The species on either side are separated by \"+\"\n", " reaction_split = reaction_str.split(\"->\")\n", " reactant_str = reaction_split[0]\n", " reactants = []\n", " for word in reactant_str.split(\" + \"):\n", " reactants.append(word.strip())\n", " \n", " product_str = reaction_split[1]\n", " products = []\n", " for word in product_str.split(\" + \"):\n", " products.append(word.strip())\n", " # The reaction list is stored as a list of dictionaries\n", " self.reaction_list.append({'string':reaction_str,\n", " 'reactants':reactants,\n", " 'products':products,\n", " 'kfwd':kfwd,\n", " 'kbak':kbak})\n", " \n", " def calc_derivative(self, t, concs):\n", " # Initialize the derivative to an array of zeros.\n", " derivatives = np.zeros_like(concs)\n", " \n", " # This dictionary maps the species name to the index\n", " # in the species list used to get the corresponding concentration.\n", " species_map = {}\n", " for i, species in enumerate(self.species_list):\n", " species_map[species] = i\n", " \n", " # Loop through each reaction.\n", " for reaction in self.reaction_list:\n", " # Calculate the forward rate as a product of the forward rate constant\n", " # and the reactant species concentrations.\n", " rate_fwd = reaction['kfwd']\n", " for reactant in reaction['reactants']:\n", " rconc = concs[species_map[reactant]]\n", " rate_fwd *= rconc\n", " # Do the same for the backward rate.\n", " rate_bak = reaction['kbak']\n", " for product in reaction['products']:\n", " pconc = concs[species_map[product]]\n", " rate_bak *= pconc\n", " # The net reaction rate.\n", " tot_rate = rate_fwd - rate_bak\n", " # Convert net reaction rate to rate of change of\n", " # individual concentrations.\n", " for reactant in reaction['reactants']:\n", " derivatives[species_map[reactant]] -= tot_rate\n", " for product in reaction['products']:\n", " derivatives[species_map[product]] += tot_rate\n", " return derivatives\n", " \n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With the class defined as above, we can now add our species and reactions, which can now go in both directions. The `calc_derivative` method is defined with time as the first argument (even though the derivative has no explicit time dependence) because that's how `scipy.integrate.solve_ivp` needs the function to be defined." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-58716., 58716., 0., 0., -58716., 58716.])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "myNetwork = ReactionNetwork()\n", "myNetwork.add_species(\"H3+\")\n", "myNetwork.add_species(\"H2D+\")\n", "myNetwork.add_species(\"D2H+\")\n", "myNetwork.add_species(\"D3+\")\n", "myNetwork.add_species(\"HD\")\n", "myNetwork.add_species(\"H2\")\n", "myNetwork.add_reaction(\"H3+ + HD -> H2D+ + H2\", kfwd=1e-9, kbak=1e-10)\n", "myNetwork.add_reaction(\"H2D+ + HD -> D2H+ + H2\", kfwd=1e-9, kbak=1e-10)\n", "myNetwork.add_reaction(\"D2H+ + HD -> D3+ + H2\", kfwd=1e-9, kbak=1e-10)\n", "myNetwork.calc_derivative(0, np.array([932, 0, 0, 0, 6.3e10, 0.0]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now call `scipy.integrate.solve_ivp` to integrate the kinetic model using our method of calculating the time derivative. The other arguments to `solve_ivp()` are the time interval, the initial values of dependent variables (i.e. concentrations), and the time points to evaluate and store the dependent variables." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "import scipy.integrate\n", "ts = np.arange(0, 0.15, 1e-4)\n", "result = scipy.integrate.solve_ivp(myNetwork.calc_derivative, (0, 0.15), np.array([932, 0, 0, 0, 6.3e10, 0.0]), t_eval=ts)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The simulation results can now be plotted:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0.01, 1000)" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.set_prop_cycle(ucd_cycler)\n", "ax.plot(result.t, result.y[:4].T)\n", "ax.set_yscale('log')\n", "ax.set_ylim(0.01, 1000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using the new reaction network, you can now fit the model parameters to get better agreement with experiment. Write a new function below that calculates the residuals using the new model. (The cell below will be updated with the answer after the due date.)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "# Fill in this cell with your own code. You may reuse any of the codes from above." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following codes will optimize the model parameters from a starting guess, assuming that your function is titled `total_fit_2` and its argument is an array of parameters consisting of the $H_3^+$ concentration, the forward reaction rates, the backward reaction rates, and the $H_2$ concentration as a percentage of the $HD$ concentration, in that order." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "ename": "NameError", "evalue": "name 'total_fit_2' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[22], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m param0 \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39marray([\u001b[38;5;241m932\u001b[39m, \u001b[38;5;241m1e-9\u001b[39m, \u001b[38;5;241m1e-9\u001b[39m, \u001b[38;5;241m1e-9\u001b[39m, \u001b[38;5;241m1e-10\u001b[39m, \u001b[38;5;241m1e-10\u001b[39m, \u001b[38;5;241m1e-10\u001b[39m, \u001b[38;5;241m0.01\u001b[39m])\n\u001b[0;32m----> 2\u001b[0m result \u001b[38;5;241m=\u001b[39m opt\u001b[38;5;241m.\u001b[39mleast_squares(\u001b[43mtotal_fit_2\u001b[49m,param0,bounds\u001b[38;5;241m=\u001b[39m(\u001b[38;5;241m0.01\u001b[39m\u001b[38;5;241m*\u001b[39mparam0, \u001b[38;5;241m100\u001b[39m\u001b[38;5;241m*\u001b[39mparam0),x_scale\u001b[38;5;241m=\u001b[39mparam0,verbose\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28mprint\u001b[39m(result\u001b[38;5;241m.\u001b[39mx)\n", "\u001b[0;31mNameError\u001b[0m: name 'total_fit_2' is not defined" ] } ], "source": [ "param0 = np.array([932, 1e-9, 1e-9, 1e-9, 1e-10, 1e-10, 1e-10, 0.01])\n", "result = opt.least_squares(total_fit_2,param0,bounds=(0.01*param0, 100*param0),x_scale=param0,verbose=1)\n", "print(result.x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can now make a plot that shows the new model with optimized parameters gives better agreement with experiment compared to before." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# The code below is an INCOMPLETE solution to Assignment 4. \n", "# You may use it as a guide to completing the assignment but keep in mind\n", "# that it does not give the right answer.\n", "\n", "def calc_residuals(params):\n", " myNetwork = ReactionNetwork()\n", " myNetwork.add_species(\"H3+\")\n", " myNetwork.add_species(\"H2D+\")\n", " myNetwork.add_species(\"D2H+\")\n", " myNetwork.add_species(\"D3+\")\n", " myNetwork.add_species(\"HD\")\n", " myNetwork.add_species(\"H2\")\n", " myNetwork.add_reaction(\"H3+ + HD -> H2D+ + H2\", kfwd=params[1], kbak=params[4])\n", " myNetwork.add_reaction(\"H2D+ + HD -> D2H+ + H2\", kfwd=params[2], kbak=params[5])\n", " myNetwork.add_reaction(\"D2H+ + HD -> D3+ + H2\", kfwd=params[3], kbak=params[6])\n", " result = scipy.integrate.solve_ivp(myNetwork.calc_derivative, (0, 0.15), np.array([932, 0, 0, 0, 6.3e10*(1-params[7]), 6.3e10*params[7]]), t_eval=df['time'])\n", " residual_h3 = result.y[0] - df['H3+']\n", " residual_h3 = np.array(residual_h3[~np.isnan(residual_h3)])\n", " residual_h2d = result.y[1] - df['H2D+']\n", " residual_h2d = np.array(residual_h2d[~np.isnan(residual_h2d)])\n", " all_residuals = np.hstack((residual_h3, residual_h2d))\n", " return all_residuals\n", "\n", "param0 = np.array([932, 1e-9, 1e-9, 1e-9, 1e-10, 1e-10, 1e-10, 0.01])\n", "\n", "calc_residuals(param0)\n", "\n", "result = opt.least_squares(calc_residuals,param0,jac='3-point',bounds=(0.01*param0, 100*param0),x_scale=param0,verbose=1)\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "result.x" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "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.9.19" } }, "nbformat": 4, "nbformat_minor": 4 }