From e7e2616f20ffe890fc66781d727b44a590352f14 Mon Sep 17 00:00:00 2001 From: frank-ccc <47623623+frank-ccc@users.noreply.github.com> Date: Sun, 26 Jan 2020 15:34:46 +0800 Subject: [PATCH] polish --- .../ex1_simple_ZARC_model-checkpoint.ipynb | 512 ------------------ tutorial/ex1_simple_ZARC_model.ipynb | 512 ------------------ tutorials/ex1_simple_ZARC_model.ipynb | 110 ++-- 3 files changed, 76 insertions(+), 1058 deletions(-) delete mode 100644 tutorial/.ipynb_checkpoints/ex1_simple_ZARC_model-checkpoint.ipynb delete mode 100644 tutorial/ex1_simple_ZARC_model.ipynb diff --git a/tutorial/.ipynb_checkpoints/ex1_simple_ZARC_model-checkpoint.ipynb b/tutorial/.ipynb_checkpoints/ex1_simple_ZARC_model-checkpoint.ipynb deleted file mode 100644 index a51a933..0000000 --- a/tutorial/.ipynb_checkpoints/ex1_simple_ZARC_model-checkpoint.ipynb +++ /dev/null @@ -1,512 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Gaussian Process Distribution of Relaxation Times" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## In this tutorial we will reproduce Figure 7 of the article https://doi.org/10.1016/j.electacta.2019.135316\n", - "\n", - "GP-DRT is our newly developed approach that can be used to obtain both the mean and covariance of the DRT from the EIS data by assuming that the DRT is a Gaussian process (GP). The GP-DRP can predict the DRT and the imaginary part of the impedance at frequencies that were not previously measured.\n", - "\n", - "To obtain the DRT from the impedance we take that $\\gamma(\\xi)$ is a GP where $f$ is the frequency and $\\xi=\\log f$. Under the DRT model and considering that GPs are closed linear transformations, it follows that $Z^{\\rm DRT}_{\\rm im}\\left(\\xi\\right)$ is also a GP.\n", - "\n", - "More precisely we can write\n", - "\n", - "$$\\begin{pmatrix}\n", - "\\gamma(\\xi) \\\\\n", - "Z^{\\rm DRT}_{\\rm im}\\left(\\xi\\right)\n", - "\\end{pmatrix}\\sim \\mathcal{GP}\\left(\\mathbf 0, \\begin{pmatrix}\n", - "k(\\xi, \\xi^\\prime) & \\mathcal L^{\\rm im}_{\\xi^\\prime} \\left(k(\\xi, \\xi^\\prime)\\right)\\\\\n", - "\\mathcal L^{\\rm im}_{\\xi} k(\\xi, \\xi^\\prime) & \\mathcal L^{\\rm im}_{\\xi^\\prime}\\left(\\mathcal L^{\\rm im}_{\\xi} \\left(k(\\xi, \\xi^\\prime)\\right)\\right)\n", - "\\end{pmatrix}\\right)$$\n", - "\n", - "where\n", - "\n", - "$$\\mathcal L^{\\rm im}_\\xi \\left(\\cdot\\right) = -\\displaystyle \\int_{-\\infty}^\\infty \\frac{2\\pi \\displaystyle e^{\\xi-\\hat \\xi}}{1+\\left(2\\pi \\displaystyle e^{\\xi-\\hat \\xi}\\right)^2} \\left(\\cdot\\right) d \\hat \\xi$$\n", - "\n", - "is a linear functional. The latter functional, transforms the DRT to the imaginary part of the impedance.\n", - "\n", - "Assuming we have $N$ observations, we can set $\\left(\\mathbf Z^{\\rm exp}_{\\rm im}\\right)_n = Z^{\\rm exp}_{\\rm im}(\\xi_n)$ with $\\xi_n =\\log f_n$ and $n =1, 2, \\ldots N $. The corresponding multivariate Gaussian random variable can be written as \n", - "\n", - "$$\\begin{pmatrix}\n", - "\\boldsymbol{\\gamma} \\\\\n", - "\\mathbf Z^{\\rm exp}_{\\rm im}\n", - "\\end{pmatrix}\\sim \\mathcal{N}\\left(\\mathbf 0, \\begin{pmatrix}\n", - "\\mathbf K & \\mathcal L_{\\rm im} \\mathbf K\\\\\n", - "\\mathcal L_{\\rm im}^\\sharp \\mathbf K & \\mathcal L^2_{\\rm im} \\mathbf K + \\sigma_n^2 \\mathbf I\n", - "\\end{pmatrix}\\right)$$\n", - "\n", - "where \n", - "\n", - "$$\\begin{align}\n", - "(\\mathbf K)_{nm} &= k(\\xi_n, \\xi_m)\\\\\n", - "(\\mathcal L_{\\rm im} \\mathbf K)_{nm} &= \\left. \\mathcal L^{\\rm im}_{\\xi^\\prime} \\left(k(\\xi, \\xi^\\prime)\\right) \\right |_{\\xi_n, \\xi_m}\\\\\n", - "(\\mathcal L_{\\rm im}^\\sharp \\mathbf K)_{nm} &= \\left.\\mathcal L^{\\rm im}_{\\xi} \\left(k(\\xi, \\xi^\\prime)\\right) \\right|_{\\xi_n, \\xi_m}\\\\\n", - "(\\mathcal L^2_{\\rm im} \\mathbf K)_{nm} &= \\left.\\mathcal L^{\\rm im}_{\\xi^\\prime}\\left(\\mathcal L^{\\rm im}_{\\xi} \\left(k(\\xi, \\xi^\\prime)\\right)\\right) \\right|_{\\xi_n, \\xi_m}\n", - "\\end{align}$$\n", - "\n", - "and $\\mathcal L_{\\rm im} \\mathbf K^\\top = \\mathcal L_{\\rm im}^\\sharp \\mathbf K$.\n", - "\n", - "To obtain the DRT from impedance, the distribution of $\\mathbf{\\gamma}$ conditioned on $\\mathbf Z^{\\rm exp}_{\\rm im}$ can be written as\n", - "\n", - "$$\\boldsymbol{\\gamma}|\\mathbf Z^{\\rm exp}_{\\rm im}\\sim \\mathcal N\\left( \\mathbf \\mu_{\\gamma|Z^{\\rm exp}_{\\rm im}}, \\mathbf\\Sigma_{\\gamma| Z^{\\rm exp}_{\\rm im}}\\right)$$\n", - "\n", - "with\n", - "\n", - "$$\\begin{align}\n", - "\\mathbf \\mu_{\\gamma|Z^{\\rm exp}_{\\rm im}} &= \\mathcal L_{\\rm im} \\mathbf K \\left(\\mathcal L^2_{\\rm im} \\mathbf K + \\sigma_n^2 \\mathbf I \\right)^{-1} \\mathbf Z^{\\rm exp}_{\\rm im} \\\\\n", - "\\mathbf \\Sigma_{\\gamma| Z^{\\rm exp}_{\\rm im}} &= \\mathbf K- \\mathcal L_{\\rm im} \\mathbf K \\left(\\mathcal L^2_{\\rm im} \\mathbf K + \\sigma_n^2 \\mathbf I \\right)^{-1}\\mathcal L_{\\rm im} \\mathbf K^\\top\n", - "\\end{align}$$\n", - "\n", - "The above formulas depend on 1) the kernel, $k(\\xi, \\xi^\\prime)$; 2) the noise level, $\\sigma_n$; and 3) the experimental data, $\\mathbf Z^{\\rm exp}_{\\rm im}$ (at the log-frequencies $\\mathbf \\xi$). " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from math import sin, cos, pi\n", - "import GP_DRT\n", - "from scipy.optimize import minimize\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 1) Define parameters of the ZARC circuit which will be used for the synthetic experiment generation\n", - "\n", - "The impedance of a ZARC can be written as\n", - "$$\n", - "Z^{\\rm exact}(f) = R_\\infty + \\displaystyle \\frac{1}{\\displaystyle \\frac{1}{R_{\\rm ct}}+C \\left(i 2\\pi f\\right)^\\phi}\n", - "$$\n", - "\n", - "where $\\displaystyle C = \\frac{\\tau_0^\\phi}{R_{\\rm ct}}$.\n", - "\n", - "The analytical DRT can be computed analytically as\n", - "\n", - "$$\n", - "\\gamma(\\log \\tau) = \\displaystyle \\frac{\\displaystyle R_{\\rm ct}}{\\displaystyle 2\\pi} \\displaystyle \\frac{\\displaystyle \\sin\\left((1-\\phi)\\pi\\right)}{\\displaystyle \\cosh(\\phi \\log(\\tau/\\tau_0))-\\cos(\\pi(1-\\phi))}\n", - "$$" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "# define the frequency range\n", - "N_freqs = 81\n", - "freq_vec = np.logspace(-4., 4., num=N_freqs, endpoint=True)\n", - "xi_vec = np.log(freq_vec)\n", - "tau = 1/freq_vec\n", - "\n", - "# define the frequency range used for prediction\n", - "# note: we could have used other values\n", - "freq_vec_star = np.logspace(-4., 4., num=81, endpoint=True)\n", - "xi_vec_star = np.log(freq_vec_star)\n", - "\n", - "# parameters for ZARC model, the impedance and analytical DRT are calculated as the above equations\n", - "R_inf = 10\n", - "R_ct = 50\n", - "phi = 0.8\n", - "tau_0 = 1.\n", - "\n", - "C = tau_0**phi/R_ct\n", - "Z_exact = R_inf+1./(1./R_ct+C*(1j*2.*pi*freq_vec)**phi)\n", - "gamma_fct = (R_ct)/(2.*pi)*sin((1.-phi)*pi)/(np.cosh(phi*np.log(tau/tau_0))-cos((1.-phi)*pi))\n", - "\n", - "# we will use a finer mesh for plotting the results\n", - "freq_vec_plot = np.logspace(-4., 4., num=10*(N_freqs-1), endpoint=True)\n", - "tau_plot = 1/freq_vec_plot\n", - "gamma_fct_plot = (R_ct)/(2.*pi)*sin((1.-phi)*pi)/(np.cosh(phi*np.log(tau_plot/tau_0))-cos((1.-phi)*pi)) # for plotting only\n", - "\n", - "# we will add noise to the impedance computed analytically\n", - "rng = np.random.seed(214975)\n", - "sigma_n_exp = 1.\n", - "Z_exp = Z_exact + sigma_n_exp*(np.random.normal(0, 1, N_freqs)+1j*np.random.normal(0, 1, N_freqs))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2) Show the synthetic impedance in the Nyquist plot - this is similar to Figure 7 (a)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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AE45w8NZdzm4dy8bzzmH6449lmQyOZao9k1IUDcDzTgLeWYr63cXXEDfBRewePFi6uvrqa+v5/jjj+eUU06htrZ20jH9/f18+MNlm6jXFKmoGpeIjAL/paqn+BdScazG5YONGyEScZJNesKprXUe0SisXp21CFXlpZdeIh6PsyoSYd6BAzlPu5PJfV8mSgKLcpZ0qKww8HlgDXAY8DqwQoSdHn7vly1bxrZt2zyczZRCyWpcZhoaGHCSVqbLulQii0TGXYqpKi+++CKxWIx4PE4sFiMWi/HKK68AMOLx1As97HNYHmWdC0SBWmCOu/1w8JS0gLH4TfWxxGXG83BZx/AwO77yFX5w8sk89thjxGIxsnX83Y23WtLrGbbNnj2bUCjE4sWLCYVC7I3HWTCSOxXuwUlaCzycN5svfvGLvPvd72bVqlXMnTu3yNKMb6ZqtffyAEaBp4spw+9HNd5VTLnnnnt0y5YtlQ4ju8MOG3+nbopH0plc0tPjZtD9Oco7OGuWJj7wAX300Uf1ySef1K1bt+ru3bt1dHR0fHyXXz75bmKGsrYfdZQerKnJ+LnXuNMfixYt0i9edJFuOe88HT3sMFUR5//q8stVN22qzM9qmiPLXUVLXGV09tln669//etKh5GdiKfEddDDl33evHn6jne8Q7++Zo0emDMne5l1dd4SwKZNzr65ylqwYMrPC0lc54K+niEBjxbRBcNkly1x2aViGb322mtU/ZCkhQth9+6cu028rKurq+OMM86gqamJpqYmGhsbOfnkk5k92/0V++hHczf4e7lb2dDg7JurrPPOy12WR2GmvuwUN4aRiy5CnnySmpNO8u2801EymRybn663t5eOjo6xVcTzMlVG8/LAalx5Wbp0qW7btq3SYWT03HPP6Te/+U29u74+52XdftAfiOi5556rt9xyiz711FN68ODB3CfZtEl17VrVww9XralxnteuLexSK1dZWS55yePx93//9/rjefM8/Z/cVlenn/nMZ/R3v/vd5Etco6qqXV1dYx2wu7q6tK2tbcp9sUvFyhsZGdHZs2fr8PBwpUMZp7+/Xz/ykY+oiCigYfeSKNuX9MCcOTrU31/p0LPL0haWT+JSVadNy8Plc3q736mnnqp33nln1f288xWLxTQSiWhvb++47UNDQ9rR0aE9PT3a0dGhsVgs77LXrVuXdRSJ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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Nyquist plot of the impedance\n", - "plt.plot(np.real(Z_exact), -np.imag(Z_exact), linewidth=4, color=\"black\", label=\"exact\")\n", - "plt.plot(np.real(Z_exp), -np.imag(Z_exp), \"o\", markersize=10, color=\"red\", label=\"synth exp\")\n", - "plt.plot(np.real(Z_exp[20:60:10]), -np.imag(Z_exp[20:60:10]), 's', markersize=10, color=\"black\")\n", - "\n", - "plt.rc('text', usetex=True)\n", - "plt.rc('font', family='serif', size=15)\n", - "plt.rc('xtick', labelsize=15)\n", - "plt.rc('ytick', labelsize=15)\n", - "plt.legend(frameon=False, fontsize = 15)\n", - "plt.axis('scaled')\n", - "\n", - "plt.xticks(range(10, 70, 10))\n", - "plt.yticks(range(0, 60, 10))\n", - "plt.gca().set_aspect('equal', adjustable='box')\n", - "plt.xlabel(r'$Z_{\\rm re}/\\Omega$', fontsize = 20)\n", - "plt.ylabel(r'$-Z_{\\rm im}/\\Omega$', fontsize = 20)\n", - "# label the frequency points\n", - "plt.annotate(r'$10^{-2}$', xy=(np.real(Z_exp[20]), -np.imag(Z_exp[20])), \n", - " xytext=(np.real(Z_exp[20])-2, 10-np.imag(Z_exp[20])), \n", - " arrowprops=dict(arrowstyle=\"-\",connectionstyle=\"arc\"))\n", - "plt.annotate(r'$10^{-1}$', xy=(np.real(Z_exp[30]), -np.imag(Z_exp[30])), \n", - " xytext=(np.real(Z_exp[30])-2, 6-np.imag(Z_exp[30])), \n", - " arrowprops=dict(arrowstyle=\"-\",connectionstyle=\"arc\"))\n", - "plt.annotate(r'$1$', xy=(np.real(Z_exp[40]), -np.imag(Z_exp[40])), \n", - " xytext=(np.real(Z_exp[40]), 10-np.imag(Z_exp[40])), \n", - " arrowprops=dict(arrowstyle=\"-\",connectionstyle=\"arc\"))\n", - "plt.annotate(r'$10$', xy=(np.real(Z_exp[50]), -np.imag(Z_exp[50])), \n", - " xytext=(np.real(Z_exp[50])-1, 10-np.imag(Z_exp[50])), \n", - " arrowprops=dict(arrowstyle=\"-\",connectionstyle=\"arc\"))\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3) Obtain the optimal hyperparameters of the GP-DRT model by minimizing the negative marginal log likelihood (NMLL)\n", - "\n", - "We constrain the kernel to be a squared exponential, _i.e._\n", - "\n", - "$$\n", - "k(\\xi, \\xi^\\prime) = \\sigma_f^2 \\exp\\left(-\\frac{1}{2 \\ell^2}\\left(\\xi-\\xi^\\prime\\right)^2 \\right)\n", - "$$\n", - "\n", - "and modify its two parameters, $\\sigma_f$ and $\\ell$ as well as the noise level $\\sigma_n$. Therefore, the vector of hyperparameters of the GP-DRT is assumed to be $\\boldsymbol \\theta = \\begin{pmatrix} \\sigma_n, \\sigma_f, \\ell \\end{pmatrix}^\\top$.\n", - "\n", - "Following the same derivation from the article we can write that\n", - "\n", - "$$\n", - "\\log p(\\mathbf Z^{\\rm exp}_{\\rm im}|\\boldsymbol \\xi, \\boldsymbol \\theta)= - \\frac{1}{2} {\\mathbf Z^{\\rm exp}_{\\rm im}}^\\top \\left(\\mathcal L^2_{\\rm im} \\mathbf K +\\sigma_n^2\\mathbf I \\right)^{-1} \\mathbf Z^{\\rm exp}_{\\rm im} -\\frac{1}{2} \\log \\left| \\mathcal L^2_{\\rm im} \\mathbf K+\\sigma_n^2\\mathbf I \\right| - \\frac{N}{2} \\log 2\\pi\n", - "$$\n", - "\n", - "We will call $L(\\boldsymbol \\theta)$ the negative (and shifted) MLL (NMLL):\n", - "$$\n", - "L(\\boldsymbol \\theta) = - \\log p(\\mathbf Z^{\\rm exp}_{\\rm im}|\\boldsymbol \\xi, \\boldsymbol \\theta) - \\frac{N}{2} \\log 2\\pi\n", - "$$\n", - "\n", - "the experimental evidence is maximized for\n", - "\n", - "$$\n", - "\\boldsymbol \\theta = \\arg \\min_{\\boldsymbol \\theta^\\prime}L(\\boldsymbol \\theta^\\prime)\n", - "$$\n", - "\n", - "The above minimization problem is solved using the `optimize` method provided by `scipy` package" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "sigma_n, sigma_f, ell\n", - "0.8903599 5.0014151 1.0120875\n", - "0.8136354 5.0035337 1.0291912\n", - "0.8291863 5.0357867 1.2588671\n", - "0.8303934 5.0832376 1.2117780\n", - "0.8304486 5.2060758 1.2283661\n", - "0.8305189 5.3874411 1.2524154\n", - "0.8305232 5.4069003 1.2546652\n", - "0.8305262 5.4070982 1.2546891\n", - "0.8305266 5.4070919 1.2546867\n", - "Optimization terminated successfully.\n", - " Current function value: 53.657989\n", - " Iterations: 9\n", - " Function evaluations: 11\n", - " Gradient evaluations: 153\n", - " Hessian evaluations: 0\n" - ] - } - ], - "source": [ - "# initialize the parameter for global 3D optimization to maximize the marginal log-likelihood as shown in eq (31)\n", - "sigma_n = sigma_n_exp\n", - "sigma_f = 5.\n", - "ell = 1.\n", - "\n", - "theta_0 = np.array([sigma_n, sigma_f, ell])\n", - "seq_theta = np.copy(theta_0)\n", - "def print_results(theta):\n", - " global seq_theta\n", - " seq_theta = np.vstack((seq_theta, theta))\n", - " print('{0:.7f} {1:.7f} {2:.7f}'.format(theta[0], theta[1], theta[2]))\n", - " \n", - "GP_DRT.NMLL_fct(theta_0, Z_exp, xi_vec)\n", - "GP_DRT.grad_NMLL_fct(theta_0, Z_exp, xi_vec)\n", - "print('sigma_n, sigma_f, ell')\n", - "\n", - "# minimize the NMLL L(\\theta) w.r.t sigma_n, sigma_f, ell using the Newton-CG method as implemented in scipy\n", - "res = minimize(GP_DRT.NMLL_fct, theta_0, args=(Z_exp, xi_vec), method='Newton-CG', \\\n", - " jac=GP_DRT.grad_NMLL_fct, callback=print_results, options={'disp': True})\n", - "\n", - "# collect the optimized parameters\n", - "sigma_n, sigma_f, ell = res.x" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 4) Core of the GP-DRT" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 4a) Compute matrices\n", - "Once we have identified the optimized parameters we can compute $\\mathbf K$, $\\mathcal L_{\\rm im} \\mathbf K$, and $\\mathcal L^2_{\\rm im} \\mathbf K$, which are given in equation `(18)` in the article" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "K = GP_DRT.matrix_K(xi_vec, xi_vec, sigma_f, ell)\n", - "L_im_K = GP_DRT.matrix_L_im_K(xi_vec, xi_vec, sigma_f, ell)\n", - "L2_im_K = GP_DRT.matrix_L2_im_K(xi_vec, xi_vec, sigma_f, ell)\n", - "Sigma = (sigma_n**2)*np.eye(N_freqs)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 4b) Factorize the matrices and solve the linear equations\n", - "We are computing\n", - "$$\n", - "\\boldsymbol{\\gamma}|\\mathbf Z^{\\rm exp}_{\\rm im}\\sim \\mathcal N\\left( \\boldsymbol \\mu_{\\gamma|Z^{\\rm exp}_{\\rm im}}, \\boldsymbol \\Sigma_{\\gamma| Z^{\\rm exp}_{\\rm im}}\\right)\n", - "$$\n", - "\n", - "using \n", - "$$\n", - "\\begin{align}\n", - "\\boldsymbol \\mu_{\\gamma|Z^{\\rm exp}_{\\rm im}} &= \\mathcal L_{\\rm im} \\mathbf K\\left(\\mathcal L^2_{\\rm im} \\mathbf K+\\sigma_n^2\\mathbf I\\right)^{-1}\\mathbf Z^{\\rm exp}_{\\rm im} \\\\\n", - "\\boldsymbol \\Sigma_{\\gamma| Z^{\\rm exp}_{\\rm im}} &= \\mathbf K-\\mathcal L_{\\rm im} \\mathbf K\\left(\\mathcal L^2_{\\rm im} \\mathbf K+\\sigma_n^2\\mathbf I\\right)^{-1}\\mathcal L_{\\rm im} \\mathbf K^\\top\n", - "\\end{align}\n", - "$$\n", - "\n", - "The key ingredient is to do Cholesky factorization of $\\mathcal L^2_{\\rm im} \\mathbf K+\\sigma_n^2\\mathbf I$, _i.e._, `K_im_full`" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "# the matrix $\\mathcal L^2_{\\rm im} \\mathbf K + \\sigma_n^2 \\mathbf I$ whose inverse is needed\n", - "K_im_full = L2_im_K + Sigma\n", - "\n", - "# Cholesky factorization, L is a lower-triangular matrix\n", - "L = np.linalg.cholesky(K_im_full)\n", - "\n", - "# solve for alpha\n", - "alpha = np.linalg.solve(L, Z_exp.imag)\n", - "alpha = np.linalg.solve(L.T, alpha)\n", - "\n", - "# estimate the gamma of eq (21a), the minus sign, which is not included in L_im_K, refers to eq (65)\n", - "gamma_fct_est = -np.dot(L_im_K.T, alpha)\n", - "\n", - "# covariance matrix\n", - "inv_L = np.linalg.inv(L)\n", - "inv_K_im_full = np.dot(inv_L.T, inv_L)\n", - "\n", - "# estimate the sigma of gamma for eq (21b)\n", - "cov_gamma_fct_est = K - np.dot(L_im_K.T, np.dot(inv_K_im_full, L_im_K))\n", - "sigma_gamma_fct_est = np.sqrt(np.diag(cov_gamma_fct_est))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 4c) Plot the obtained DRT against the analytical DRT" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZgAAAEZCAYAAACq1zMoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOy9eXycV33v/z6zj9aRLNmWvMu7kzi2LCc4ELIpgQRSIMgkZWngktgh+fXe2zbEzSuUtvRFg1OWcrmX1gZaaF+lxDYNSSGQREmALI5tSXbwvkiyZe3rjLaZ0Szn98cseZ5HuzQzGknn/XrNy3Oe5zzPHFma+cz5rkJKiUKhUCgUicY00wtQKBQKxdxECYxCoVAokoISGIVCoVAkBSUwCoVCoUgKSmAUCoVCkRSUwCgUCoUiKSiBUSgUCkVSsMz0AowIIUqB8uhwO7BPSlkZPfcEsAB4FsgH7pRS7pmRhSoUCoViTNJOYIByKeUzAEIIF1AvhLhDSlkTPb8r+qgEHp6hNSoUCoViHNLKRBbdvTwZG0sp3UAV7+1o3FLKvOhjZ/S8QqFQKNKQtBKY6C5lp+FwCaATEiFEqRCiJGULUygUCsWkEelciywqItXAKimlWwixC+gmYh4rB7aP5oOJzt0FkJmZuW3Dhg0pWrVCoVDMDaqrqzullIVTvT7dBeYVYI/G/2I8XwvsjgUBjEZZWZmsqqpKxhIViikjpaS1tZXFixcjhJjp5SgUwxBCVEspy6Z6fVqZyLREI8Z04hL10WipAe5M6cIUigTwm9/8hpKSEoqLi9mwYQNvvvnmTC9JoUg4aSkwQogKoDImLlGfSynwqmGqC6hN9foUiulw6dIl7rvvPi5fvgzAhQsXuPfee2lpaZnZhSkUCSbtBEYIUU4kWiwmLiVAWXRsDEsuAQ6keIkKxbTYu3cvXq9Xd8ztdrN3794ZWpFCkRzSygcTFZORdiTbpJQ1miRMN7CNSBLmiP4ZLcoHo0gX+vv7KSoqor+/f9i5vLw82trasFqtM7AyhWI40/XBpFWipZSyDhjV2xkVk3EFRaFIV55//vkRxQWgp6eHt956i1tvvTW1i1IokkTamcgUirlMZeWYAY88//zzKVqJQpF8lMAoFCnk9ddf140fffRR3fi1115L5XIUiqSiBEahSBH19fVcuXIlPrbZbDz11FO6OadOnaKvry/VS1MokoISGIUiRRw9elQ3ft/73kdxcTHr16+PHwuHw6iAFMVcQQmMQpEi3n33Xd14+/btAOzYsUN3/PDhwylbk0KRTJTAKBQpwigw119/PQA33nij7nhNjQqUVMwNlMAoFCliNIHZsmWL7vjJkydTtiaFIpkogVEoUkBnZydNTU3xsc1mI1bh+5prrtHNvXTp0rBMf4ViNqIERqFIAcbdy6ZNm7DZbABkZ2ezatWq+LlwOMyZM2dSuj7FzLB///6ZXkJSUQKjUKSA0cxjMTZv3qwbKzPZ3MftduN2z+2mvEpgFIoUcO7cOd3YKCjXXnutbnz+/PmkrylZCCHS4pHu7NkzYq/EOUVa1SJTKOYqFy5c0I21uS8A69atG3O+IrnU1dVx6NAhSkpKOHbsGE8++SQul4tDhw7x9NNP43a7qa6upru7m9WrV7Nr1y727NlDSUkJNTU11NXV0d3dTXV1NXv37sXlcsXvu2/fPrZv347L5SI/P5/S0lIqKyupq6ujrq4Ol8tFSUkJ5eXlM/y/kASklHP+sW3bNqlQzCRFRUUSiD8uXLigO3/48GHd+euuu26GVjp9tD/HTD4mQ0lJSfx5bW2tLC8vj497enpkSUmJ7OnpkT09PXLfvn3Drq2urpZSSnnw4EG5a9cu3bmenh4ppZTV1dWytLQ0fm7v3r1y7969k1pnqgGq5DQ+e9UORqFIMv39/bpmYmazmZUrV+rmrF27Vje+ePEi4XAYk0lZsZPN/v37KS19r1luSUmJrpqCy+Vi79697Ny5k507d7Jr1y7d9dXV1fEdS0lJCXV1dQAcOnQIl8sVP1daWsqrrxp7Js5tlMAoFEnm4sWLunFJScmwni8LFiwgPz+f7u5uAHw+H42NjSxfvjxl60wUMo16TE2E2tpa3G63rtL1wYMHdXMqKirYt2/fqPfYs2cPq1evxu12x3+HdXV15Ofn6+bFxGa+oL4eKRRJxuhPMfpbRjuu/DCpIVayp7y8XPfQUlNTw549e9i7d298hwKRSLBt27bx5JNPsmvXLt1169ati4vNaHR1dQGR3c5cRAmMQpFkjDuYiQqM8TpFcqioqKC7u1sXMqz9wHe73VRVVVFeXs6+ffvYuXNn/FxVVZXODBYTn7q6uvjuUytI2vuWlJSoMGWFQjE9jDsRo79ltONqB5M6Dh48yNNPP82hQ4c4dOhQ3CfzzDPPsGrVKmprI53c8/PzqampYefOndTU1FBeXk5ZWRn79++nsrKS0tJSysrK4s9fffVV9u7dO+y+8J6w7d+/f86azsRss5dOhbKyMqlKoCtmih07dvDOO+/Ex6+88sqIIakHDhzg/vvvj48/8pGP8Mtf/jIla1QoRkIIUS2lLJvq9WoHo1AkmcuXL+vGq1evHnFeSUmJblxfX5+sJSkUKUEJjEKRRLxeL62trfGx2Wxm2bJlI87V1iODiDDNBwuDYu6iBEahSCLaFskAS5cuxWIZOTsgPz+f7Ozs+HhwcJD29vakrk+hSCZKYBSKJGI0cxl3KVqEEMPOKzOZYjajBEahSCJG/4sxg19KSTgcHvW88XqFYjahMvkViiQy1g4mHA5z/vx5Ojo6yMjIIDs7m8LCwjGvVyhmE2knMEKIUiAWw7kd2CelrIyecwG7gDqgBKiUUqoG5oq0ZbQdjJSS+vp6WltbcblcBINBurq6yMjI0M1XAqOYzaSdwADlUspnIC4o9UKIO6JCchDYLaWsi55/RQixU0o5t9NhFbMWo0DEBKaxsZGGhgby8vIQQmCz2bDZbMNCmJXAKGYzaeWDie5enoyNo8JRBZRHxaYkJi5R6nhvt6NQpB3GHcyqVatoa2vj0qVL5ObmDmuMtWTJEt1YCYxiNpNWOxgpZY0QYqfhcAngBsqi/2pxA3cCc7NSnGJW09/fT2dnZ3xstVpxOp2cOnWKnJwczGbzsGuKi4t144aGBkKh0IhzFYmnsrKSgwcPsnr16nj5ll27dvHMM8/wxBNPUFdXx969e9m/fz8VFRXceeeduN1uamtrWb16NU888cSo9441H3vmmWd018YKXu7du3fEubt27YrvbGtra7nzzjupqKgAiJetqaioYMGCBRw7dozKykqefDLyPf2VV17R/ZtyptNMJtkPIuLSA7iACuAVw/kngIOjXLuLyO6navny5VNqtqNQTIeTJ0/qGmCtXr1aHj58WB45ckSeOHFi1IfL5dJdd/ny5Zn+UeYFTzzxhKyoqBh2vKKiQteATMpIU7VYkzHtPG2zsdEY6dqDBw/qmpGNNbe0tDTe9OzgwYPylVde0d3H5XLp5k9kTWOsdVoNx9LKRDYC+4A75Hs+lvyxJmuRUu6XUpZJKcuMkTkKRSowmseWLFmC1+vFbrePeZ1xF3Ps2LFEL01hoLKykkOHDg3rAwPEdwPjsXv3bvbv3z+l16+oqKCsrIxnnnlm3Lnl5eW63Y6xrp2xB822bdumtKZEkLYCI4R4Atgj34sScxPZyWhZAIzdcEGhmCGM/pP8/HycTue41xn9MMePHycUCiV0bQo9e/bsYffu3SOeKy0tHVYnLhns3LmTPXv2jDvP7XbHqzJPZF1lZVOuVTlt0lJghBAVaEKQo87/KobvYFzADBkXFYqxMe5gFixYMCGBMe5gmpub6enpSeTSkosQ6fGYBDU1NbpS+ka0O4bROHjw4LB2ypMhJgTa/jFa3G43+/fvp7u7mx/84AcAY645xkTmJIu0cvIDCCHKAbdGXEqAMhkJAKgSQmgjycqA8SVfoZgBjDsYo3CMhnFeR0cHzc3NFBQUJGxtiveIfaAbTUtaRurXUllZSV1dHd3d3dTW1uJyuSYkROO9Rl1dnW5non2dgwcPsm/fvlnTPyatBCYqJq9En2tPxYyIO4FdQohYouXDUuXAKNIU4w5momaWoqIi3bijo4Oenh68Xu+EdkCKyRH7vRjbG9fV1VFZWambp/V3lJeXJ3R3EOtuaRQ67euUlZWxbdu2WbOjTSuBie5MRt3bRsVkfC+YQpEGGAVmqjuY5uZmhBB0dnaOWupfMT1KS0vjHSpjlJSUsGvXLnbu3EldXR3V1dUTvl/smhgTuTY2fyzRKi0txe12j2vSSxfS0gejUMx2+vr6dN8yrVbrsDpjo2EUmNbWVux2O42NjbrCmGmLlOnxmAR79+5l3759I54rKSkZ03w2EgcPHqS6ujr+mAjPPvvsmHk0Wkbz06QbSmAUiiRg7AOzePFiTKaJvd0yMjJ0NvZgMIjH48Hv99Pb25vQdSoilJeXU1FRwc6dxjzv0T/MjSa16VBTU6NLkBzrdUpKSuKh61oTXjLWNV3SykSmUMwVjAJj9KuMR3FxcdwmDxEz2dq1a2lpaZk1Dt7Zxt69e6msrGT37t3xTH63280PfvADqqqqgPcy7IH4v8Y8lNEwXrtt2zZdJr92pxObW1FREc/Nib3OwYMH2bNnD4cOHYr7j+rq6jh06BDPPvssbrebPXv2sHr16mlFtSUCIedBS9aysjIZ+wNRKFLB97//fR577LH4+GMf+xh/+7d/O+HrH3/8cd23069//evcfffd9Pb2smPHDmw2W0LXq1CMhBCiWko55UQaZSJTKJLAVB38MYw7nubmZkwmE1LK+DdehSLdUQKjUCSBRJjItDQ3NwMR/0xTUxPzwfKgmP0oH4xCkQSMSZYjCYzz7Fmyjh4lmJeHf9UqfCtWEM7JAUYXGLvdTk9PDz6fT+XEKNIeJTAKRRIw7mCMgpH78susePJJhKHGWGDBAno/+EGWfuITuuMtLS3x50IIPB6PEhhF2qMERqFIMD6fj/b29vjYZDKxcOHC+Djz2DGWP/XUMHEBsHZ1seC55/hAf7/ueEtLC+FwGJPJhM1mo7Ozk8WLFyfvh1AoEoDywSgUCaa2tlY3LiwsxGq1AuC4eJFVf/ZnmAKBMe+x8JVXeFCzQwkEAvHmZQ6Hg56eHlVhWZH2KIFRKBLMuXPndOOYecza2sqqxx7DbNid9N50E76SEqRFb1D4R78frWEt5ocxmUyEQiH6DfdRKNINJTAKRYI5ffq0blxUVISpt5dVjz2GTWM6A2j+X/+L+u9/n/P/9V9c+OlPCUd3OgCucJgfaeZq/TAmkymtMrYVipFQAqNQJJBgMDjMRFZUVETR976H03C884EH6Pj85+Nj37p1tGqSMwE+DHwp+jy2g4FIuHK7QawUinRDCYxCkUB6e3tpbW3VHVudk0P+88/rjrnLy2n68peHNcbq+Nzn6De0uP0msA69wFitVnw+H16vN6HrVygSiRIYhSKBdHR0DNtZ3HHxIqahofh4qKiIhq9/Hczm4Tcwm2n42tcIZWbGD2UA30ZvIgOQUqril4q0RgmMQpEgwuEw7e3ttLW1xY/ZgM1vvqmb1/HpTyPt9lHvE1iyhCZDb/a7ARoadMfsdns8skyhSEeUwCgUCWJgYIChoSHdDuZ+wKGpihzKyKD74x8f9149995L37p18bEJuKulRVcixuFw0N3drcKVFWmLEhiFIkH09vYO+8B/3GAG6/74xwlnZ49/MyFwf/KTukN/EgrRrdmxmEwmwuGwCldWpC1KYBSKBNHe3q6rdHwLsFkjNlIIOj/96Qnfz3333fg0QQCrgNCrr+rmCCF0fWMUinRCCYxCkQCCwSC9vb06n8ifGeZ4bruNoaVLJ3zPcE4ObxjaLC/5zW9044yMDJ3PR6FIJ5TAKBQJIGamioUorwbuNczp/MxnJn3fI9dcoxuvPXkSsyZyzGq14vV68fl8k763QpFslMAoFAmgp6cHk8kUz1X5X+jfXIMbNzJQWjrp+3q2bkXbEd4aCuH69a+HzRsYGJj0vRWKZKMERqFIAB0dHTgcDlpaWrAAnzWe/+xnhyVVToSiJUv4V8Ox/F/8Qjc2m8309PRM+t4KRbJRAqNQTBO/34/X68Vms9HS0sItQJ7mfNDlwnPXXVO6d1FRET8GwppjGWfP4tAU1HQ4HKqNsiItUQKjUEyTmP9FSklrayufMJzvveUWpKaI5WQoLi6mEXjZcFxbeiZWNmZIUy1AoUgH0k5ghBClQoiDQohyw/EnhBB7o+fLhRB7Z2qNCoWWrq4uLBYL3d3dDPn9fMxw3nP77VO+d25uLhkZGbqqygB5L74IwaDumMqHUaQbaSUwUVHJB0pGmbILeBXYDTydqnUpFKMhpaSzsxOHw0FzczNlgDYQOeR00nfjjVO+vxCCoqIiXgC0xfktHg8ZJ0/Gx2azGY/HM+XXUSiSQVoJjJSyUkpZif69FMMtpcyLPnZKKVV2mWLG8fl8BAIBLBYLjY2Nw8xjfe9/P9LhmNZrFBcXMwT8xnA856234s9VXTJFOpJWAjMRoiay0XY4CkVK0VYzHklgPLfdNu3XiHXENAYnZ7/9dvy5zWZjcHCQwDitmBWKVDKrBEYIUQHUAaXKB6NIBzo7O7HZbJHBuXNs0JwLmUz03nzzqNdKKXG73Xg8HtxuN263m76+vmEiUVRUBMBLhuszzpzBYogeU34YRToxawRGSrlfSnlISumWUh4CKoyBAFqEELuEEFVCiKqOjo4UrlQxXwiHw3R3d+OImsA2akKHAZrWrSOckzPq9b29vRQUFLB9+3a2bNnCxo0bKSoqoq+vT1cwM7aD6QCqDPfQ7mKEEKo/jCKtmDUCI4QwpkHXAHeONj8qSGVSyrJCQz0nhSIRDA4OEg6HMZkib6ObDI3Gem65ZdRr+/v7yc7OZv369TidTnJzc1m4cCGrV69mzZo1OqGICQyMYCbT+GFUPowi3ZgVAhMVl1cNh11A7QjTFYqU0Nvbi4hl5zc2stVg2grfa6xGFmFgYACr1co111yDxWIZdn7JkiXk5ubGzV1jCszhwxDd7dhsNvr7+wkawpcVipliVgiMlLIGeNhwuAQ4MAPLUSiASP5LzP8iXnhBd67KasU0QuVkn8+HlJLrrrvuPd+NAZPJxPr16wkGgwSDQfLy8uJmuKOAtiiMxeMh4/TpyBqEQEqp6pIp0oa0EphohNgTQBmwJ/o8Rl002XKXEGIfoEKVFTNGOBzG7XZjj7Y+zvvd73TnDy9cOOwaKSVer5frrrsOp9M55v0zMjJYv3593FQW28WEGJ7Vn61pyaz8MIp0Iq0ERkpZI6V8JprrcqeU8pkRzu2XUu6O7moUihlB638x9fVRfOGC7vyZ9euHXeP1elmwYAE5Yzj+tSxatIiFCxfS398fjySDscOV7Xa78sMo0oa0EhiFYrag9b9kVVVhljJ+7ixg2rBh2DV+v5+lk2g4JoRgzZo1hEIhncAMC1c+fRpzdyQ32W634/F4dFFoCsVMoQRGoZgCWv9L9pEjunMvE3HUa/H7/WRkZJCbmzup17Hb7SxcuJBFixbFj7UC9S5XfCykjDj7IS56yg+jSAeUwCgUk8Tof8kyCEwlDNupDA4Osnz58nhI82QoKirSRZIB/M7gwzHmw6iES0U6oARGoZgkWv+Lta0NR319/FwQ+B16gQkGg1itVqaaj5WTk8PKlSt1x573+3Xj7LffhnCka4zVaqW7e6RyfgpFalECo1BMEp3/xbB7eQcIOBzk5+fHjw0MDLBs2TLMZvOUXs9kMrF9+/b3cm6AX3V3E8zMjI+tPT04z58HImY1t9tNOBwedi+FIpUogVEoJonW/zKaeSwmBuFwGCmlzocyFZYuXcpCTehzAGi75hrdnMzqaiBSuj8UCuHz+ab1mgrFdFECo1BMAp3/RcphDn6j/2VgYICioqK4v2aqOJ3OYWaySwa/TGaNPnJfOfoVM40SGIViEmj9L/baWqyaHix9wBFg+fLl8WPBYHCYg36qbDCEPldlZOjGWTU1EA2XtlgsuN0qD1kxsyiBUSgmgdb/Yty9/I6Ik3/FihUADA0NkZGRQVZWVkJe+xqDSeyo309I44exuN3Y6+qAiB9GOfoVM40SGIViEoznf4H3BMbn8+kSJKfLekN1gMtXrzKwZYvuWFbUTGa1WvF6vQwNDSXs9RWKyaIERqGYIDr/SyBAVpW+O4tRYMLhMHl5eQl7/TVr1ujGDQ0NDGzbpjsWc/RDJB9G+WEUM4kSGIVigmj9LxmnTmEeHIyfawVOEylSWVBQQDAYxGazkakxYU2XkpISXahya2sr3ddeq5uTqfHDCCHo6+tL2OsrFJNFCYxCMUG0VYpHih6DyO5FCMHg4CCLFy/WCcJ0cTgcLFu2THfsfHY2YU2Emq29HVtTE6AKXypmnkkLjBBiixBiyyjnPjnaOYVittPV1TVmeRjQm8e0yZaJYu3atbrxlZYWBjZv1h2Lmcnsdvuw9ssKRSqZsMAIIR4XQoSAaqBaCBESQnxfCJEdmyOl/HlkqlB/0Yo5RTgcpqenB7vdjmlggMyTJ3XnY+1WV6xYQSgUwmw2k52dPfxG08QoMA0NDQyU6ruJxxz9sQZkgxpTnkKRSiYkMEKIfwYeAf4SuCv6eBJYA7iFEE/H5kopjwOJswsoFGnAwMAAUkpMJhOZNTUITVvic0Bj9PmKFSsYHBxk0aJFUypsOR5Ggbl8+fJwR79KuFSkCcMbghsQQmwFkFKuMZx6FXhGCJELfEoIcYBIpfKDCV+lQjHDGPu/aHlN8zy2gykoKEjKOjZt2qQb19XVMXDddUiLJS569qtXsbS1EVy0CJvNRnd3N4sXL07KehSKsZjIV6w7pJSPjHZSSumRUv5ASvkpIuJSBuxJ1AIVinRA538xCMzrmudLly7FZDJNuGvlZBlJYMIOB4OG41nHjwMRP0xPTw9S0xBNoUgVExGY+vGnRIiKzatSyn+YxpoUirQiFArh8Xgi/pf+fpznzunO/y76b2FhIRaLhQULFky5cvJ4LFu2TFcZoL+/n46OjlHzYcxmM8FgUBW+VMwIExEY9dVHMa8ZGBggHA4jhCDzxAmEJirrDNARfV5SUkIgENBVPU40QohhNcnq6uroNzj6lR9GkQ6oPBiFYhzG8r/8VvN89erVAJNuizxZjGay+vp6BrZsQWpybpy1tZh7eoDILsbj8SR1TQrFSExEYG4QQkzIoCyEuD2aC/PsNNelUKQNnZ2dcf9L5hgCs3z5cnJzc7FarUldj1FgamtrCWdn4zXUKsuM+mEcDodKuFTMCBMRmH3AQW2+i5aoqPxzVFS6o7kwFYlcpEIxU4RCIXp7e+P+l4yzZ3Xnf6d5vmzZsim3RZ4MGzdu1I1ra2sBGNi6VXc888QJQBW+VMwc44YpSynrhRA/By4LISqBY8ACoAQoB7qB3VLK18a4jUIxK+nv70dKOar/pV0zd/ny5UmLHtMykokMYGDLFgr/8z/jx2MCE2NgYCBeCVqhSAXjCgyAlHK/EKIO+AawM3q4BvhLKeUPYvOEEKuI7F4mHHmmUKQzOv+LplIx6HcvCxcuJDc3N6HFLUdj1apV2O12/H4/AG63m56eHqyG0v3Os2cRfj/Sbo8XvkxkdWeFYjwm7OSXUlZKKcuklKboo0wrLlFcUsp/GCEpc8IIIUqFEAeFEOWG4y4hxBNCiIrov6Wj3UOhSBQT9b+sXLmS/Pz8pGTvGzGbzcMiyc6dO0dg0SKGNP1nTIEAzjNnAFX4UjEzJPTdEC0TM2WiopJPxPxm5CBwSEp5SEr5DLBXCOGazuspFGMRDAbp6+uL1x/LiH5Yx9DuYFasWJG07P2R2GwocHkmuraB66/XHc98910gIjC9vb2q8KUipYwpMEKIbwghbk/VYqK7pEoifh3tOlxAiZSyTnO4jogPSKFICrH6YyP5X65kZNCmmbty5cqkFLccjesNQnLx4kWAYR0uY36YmJlP5cMoUsl4O5h9wF1CiCohxD/NYCn+MsBtOOYG7pyBtSjmCR6PZ9T8l98b5q5fvx6n05milQ0XmEuXLgEwaBCYjHff1TUg6+/vT80CFQrGERgpZb2U8i+llGXAfuARIcQxIcTTQoiVqVhgFBeGXQ3QRcScplAkhfb29rhoGP0vv9KUwDebzdxwww0JbS42HkaBuXLlCj6fD++aNYQyMuLHrT092BoaIs+tVrq7jW8jhSJ5TMbJf1xK+YiUcjuR/krPCCFeEkI8NNFEzGkyKTERQuyK7ryqOjo6xr9AodDg9/vjYb2mwcEx/S/Lly+nuLg4pesrLCzUvWYgEOD8+fNgsTB43XW6uVo/jNvtJhwOp3StivnLlJz80YKWn5JSfgjoAQ5Fxea+xC4vjpvILkbLAobvarRr3B+NdCtLRfKbYm6h7WVv9L+05+XRqpm7du1aXQHKVGHcxZw/fx4YwdEf9cOYzWZCoRBerzc1C1TMe6YdRSal/LmU8i7gU8ACIcTLQohnExwcUMXwHYwLeCWBr6FQxOns7IyXfMk6dkx3rsbgzN+0aVM8lDmVbDH4W0bzwxgTLlWHS0WqSFiYsqYvzF1EOl9uS1RwgJTSDVQJIbThy2W81wpdoUgY4XCYzs5OHA4HAJkGgflNNMExxvbt21O2Ni3GHUxtbS2hUCjSgEzjD3LU1WHu7QWUH0aRWpKSFRYNDvgHTXDAAxMpgBlNsnyCaNOy6PMYO4GKWKIl8HBUeBSKhDI4OEgoFMJsNmPq6xvmfzlo8Ont2LEjlcuLY9zBXLx4EZ/PRzg7G98afa5zhsYPowRGkSomVCpmOkSTLyeUgCmlrCFSguaZEc65RzquUCQat9sdjwjLPH4coXGKe4qLaW5ujo8XL17M0qVLU75GiPh+srOz4/6i3t5e6uvrufbaaxnYsgVnNDcGIo7+vptvxmKx0N/fj8/ni+/QFIpkMaUdTBKd+QrFjNPe3v5ee2SDeeysobf9xo0bk16efzRMJtMw89y5aLfNwVEc/TGUH0aRCqYaRfZfQoiHhRCPpzgfRqFIKoFAIF4eBoYLzOuGXJcbbrfb3qEAACAASURBVLghZWsbCePrnz17lnA4PCyj33nqFAQCQCSazO1W1mVF8pmyDybq0P8mEWf+42pXo5gL9PX1xcvDmD0enNHQ3xgH2tp04w984AOpXN4wjAIT88MMLVlCQFMbzezz4bxwAYg0IOvs7EzpOhXzk0Q4+SuJlOe/QQhxKRqi/FA67WxktFSGQjEeXV1dWCwR12RmdTVC87fTv3o1Jxob42OTycTNN9+c8jVqufHGG3Xj8+fPR8xfQoyaDxNrQOY3RMMpFIlmygIjhLgvGhl2B1AZLSmzRkp5P/AqkZ3NP0fDlJ9OUbb/iHi9XlWDSTEuUko6Ojri5WGM5rHaZct047Vr15Kbm5uy9Y1EcXExS5YsiY/9fv97HS7HyYdRhS8VyWaqTv5vAHuJhAr/l5TSoz0fDVP+ebS0zJeAb0gpexOw3ikRDoe5fPnyTL28YpYwODhIIBCI72CMAvOWoRvkTOW/GBnNDzNiwmV0R2Y2m1W4siLpTHUHswvYO1HRMArQTNDe3k5v74xpnGIW4PG892dq7u7GGc2MB5AmE7/o6dHNv+mmm1K2trEwCsyFCxcYGhpicMMGwppQZGtHB7amJgCcTiednZ3KfKxIKtPxwcyqv0ybzUZ9fb16QylGpaOj473oMUP1ZO/69Rw+e1Z37JZbbknZ2sbCGGhQU1ODz+cDq5UBY+HL45GUNIvFgt/vj8xTKJLEVAXmL4nUHps1ZGRk0NPTo/uWqlDEGBoawu12x5MPjeaxhtWrdX68nJycYW2LZ4rt27frkiZbW1tpbY2U4xzYulU3NyYwMZRvUpFMppoHsx+oFEI8neD1JBWHw0FdXZ3axSiGEcsLiTcYMwjMm4Zkyh07dmAyJaXS0qSx2+28733v0x07ceIEUsoxHf1Wq5Wurq6UrFExP5lOHsw/APtnU/6L0+nE4/HQY7ClKxStra1x85ilvR2HJihEms38vL1dN//WW29N4erG54Mf/KBufObMGQKBAIObNyM1Quioq8Mc/ft3OBx0dXWpL1yKpDGtr2DRaLH/StRiUkFGRga1tbWq6ZIiztDQED09Pe+Zxwz+l4FNm3gzWiwyxl133ZWy9U0Eo8C8++67+P1+wllZeNet052LNSAzm80Eg0FVNkaRNNJjj59CHA4HAwMDKpNZEWc881hDSYnOV5GbmzuskvFM8773vS8eXg2RFsoT9cNom6spFIlk3gkMQGZmJnV1dYQ0XQoV8xeteQwpyX77bd3531v0RcfTyf8SIzMzc1heTk1NDTBCwqVGYGw2m/LDKJJGer1LUoTNZsPv98e/4SnmL0bzmL22Fpum3ljI4eCApjw/wG233ZbSNU6UO++8Uzc+duxYpAGZsfDlmTOIaHiyw+Ggu7tbmYwVSWFeCgxAVlYWdXV1BKIVZhXzE6N5LMewe+ktLeXt6E4gxoc+9KHULG6SfPjDH9aNq6qqGBwcJLhoEX5NORlTMEjG6dOR5yZTJOtf+WEUSWDeCozFYkFKSaOmeKFi/qEzjwHZb72lO3+yuFhXFHLx4sVs3rw5ZeubDNu3b8flcsXHbreb01EhGeaH0YimEEJVuVAkhXkrMBDZxTQ0NOD1emd6KYoZwGgeM3m9ug9egOcMfxvl5eXx3U66YbFYKC8v1x07evQoMHbhS5vNpoJeFElhXguM2WzGbDZz5cqVmV6KYgYwmscyq6owaUym/qVLOWSoQPyRj3wkdQucAkYz2ZEjRyIJl8YdzLvvQjTIxeFw0NPTQzAYTNk6FfODeS0wENnFtLa2qlDNecgw85jB/9J87bU0RotDQiTz/Z577knZ+qaC0T905swZmpqa8K9aRVDTWsDc348jWsxTCIGUUpnJFAln3guMEAK73c7FixdVJM08wufz0d3dravhlWPwv1QaysNs27aNnJwZa2s0IZYuXcq2bdviYyklr732GphMY4YrW61WOjo6UrZOxfxg3gsMRLL7e3t7VdjyPKKtrQ2TyRQ3j9kaG7E3NMTPhy0W9kdbDMdId/NYjPvu01dv+v3vfw+MnQ/jdDppb29XX7IUCUUJTJTs7GwuXbqkypfPA0KhEFevXiUzMzN+zGge6960iarz5+NjIQT3339/ytY4HT75yU/qxsePH8fj8Qzzw2RVVekakIXDYWUqViQUJTBRLBYLJpOJ2tpaVfxvjtPV1UUwGNSVVjEKzNvZ2brx5s2bKSkpScn6psv69evZtGlTfBwKhXj11VfxXnMNoWg7aABrVxf2aHtliOTEqKx+RSJRAqMhKyuL9vZ2FbI5h5FS0tDQQEZGRvyYCATIiobzxvhxS4tufPfdd2M2m1OyxkRgNJP9+te/RlqtDJSW6o5na37ujIwMWltblZlMkTCUwGgQQpCVlcXFixdVhv8cpbe3l/7+fl30WMaJE5g1mew+l4vn6uriYyEEO3fuTOk6p8sDDzygG1dVVdHW1kb/jTfqjmuF1WKxRFotq6x+RYKYdQIjhHhCCLFXCFEqhCgXQuxN5P1tNhvBYFCV9J+jNDU1YTVEhxnLwxxbsEA3vv7661mzZk3S15ZIrrnmGko1uxUpJS+++CL9N9ygm5dVVQWa/BeTyaT6JSkSxqwTmCi7gFeB3UDCu2rm5OTQ0tJCgyaqSDH78Xq9tLe365z7ANnRKKsYP9EUuwS45557hl0zG3jwwQd14//+7/9mcO1agppyMub+fpznzsXHTqeTFoN5UKGYKrNRYNxSyrzoY6eU0p3oFxBC4HK5qK+vV6HLc4jW1lbMZrOu1Iu9rg6nxtEdNpl4TtP7JSMjgz/6oz+aVf6XGA888IAukKGuro6Tp0/TX1amm6f1w9hsNgYHB1X5JEVCmI0CA0DURJa0sB6TyUROTg5nz56lu7t72veTUuL3++nt7aWjo4P6+nouXbpER0cHAwMDyhyXZILBIE1NTcN2Iq5XXtGNq3Nz0f62b7/9dpYtW5aCFSaehQsXDqs88Oyzzw73wxw5ohsLIZSZTJEQLONPST+EEBVAJVAuhNgtpdwzwpxdRExpLFq0aEqvY7FYyMrK4tSpU5SWlpKVlTXpewQCATo7O7l69SperzdeliP2TbqpqSn+jTo/P5+VK1dO6XUUY9PY2EgoFBq2E8l9+WXdeL/hg/Xuu+8m2xCyPJv40pe+xAsvvBAfv/TSS1zduZOlmjmZJ04ghoaQNhsQqU3W1tZGcXFxilermGvMuh2MlHK/lPKQlNItpTwEVAghykeZVyalLNOWMJ8sNpsNm81GTU1N/ENqAmukt7eXCxcucPjwYS5EM8JdLhe5ubm4XC6ys7PJysqKH8vOzqa3t5eqqiouXLigEj4TyMDAAJcvXx4mFEbzWEgIntOc37hxI9dee+2s9L/EuOuuu3QBCsFgkP84epQhzZcuk99Pxrvvxsd2u53e3l71N6iYNrNOYIQQpYZDNcCdI81NFE6nk8zMTGprazl27BhdXV0jJmP6fD6ampo4evQoNTU1tLe3k52djcvl0oXFjoTJZCIzMxOXy0V7eztHjx7l6tWrqq3zNAmHw1y8eBGbzTZs92I0j70uBNo0w0996lPk5+enXXvkyWAymXjsscd0x549cACPwQ+TdexY/LkQAiGEqk2mmDazykQWFZdXgTzNYRdQO/IVicNiseByufD7/fzhD38gJycHq9WKlBIpJaFQiP7+foQQOJ1O8vLyxr/pCAghyM7OJhQKUVtbS1dXFxs2bNAVZVRMnI6ODnp6esjPzx92zmge+5nGD1ZQUMAHPvCBEa+bbXz+85/nK1/5CgMDAwB0dnbyWyHQZvZkHzlC26OPxseZmZk0NDRQXFw8KwMcFOnBrPpqJqWsAR42HC4BDqRqDXa7nfz8fEKhEF6vF5/Px9DQEOFwmNzcXHJzc7FFbdnTwWw2k5eXx8DAAFVVVcrpOgWGhoa4ePHiiD4Uo3ksCPxCc/7+++/HarWSqylxP1txuVw88sgjumNPGyoXZJw+jSkqQBD5QhUIBOI9cxSKqTCrBCZKXTTZcpcQYh+QlFDl8bDb7TgcDhwOB3a7HZvNlpROh1lZWdjtdk6cOMHVq1dVtNkkuHz5MlLKYYmVMNw89hrEzWNZWVns3LkTi8WCU1O7azbzF3/xFzoz7fH2djo0CaUiGBzWzdPhcKhcMMW0mHUCI6WskVI+E3Xi747uauY0NpuN3NxcLl26xOnTpxkaGprpJaU9XV1dNDU1jRoBZjSPabfAn/3sZ7FYLBQWFs5q/4uWoqIivvjFL+qO/VKzYwGG1WNzOp2RKsyGeQrFRJkb7555gNlsJj8/H4/HQ01NjSqrPgZdXV2cPHmSrKysEXeVY5nHsrKy+PSnP00wGGSBoWTMbGfPnj068+0vDVFi2YZ8GIiYylRmv2KqzConvyLSt8bn81FdXc369etZvHhxUkxzE2FoaAifz4ff72doaCj+b2yHZTabMZlMmEwmMjIycDqdcZPiSGarRNDZ2cmpU6fIysoa9TXGMo994QtfIDs7G4/HM6vzX0Zi+fLl7N69m+9973sAvA6Eee9bpvPCBawtLQSKiuLXZGRk0NzczIoVK5L2O5tvhMNhQqEQFotlxt67qUIJzCzE4XBgsVg4d+4c3d3dlJSUJN1XMDQ0xMDAAP39/fT09NDX10cwGIwnjgohMJlMcVEB4hF2Ukra2tp0od0Oh4PCwkLy8vLGFIPJ0NbWxtmzZ8e+n5S4XnpJdyhmHisqKuKzn/0sQ0NDZGVlJSRYI9146qmn+MlPfkJvby89wNvABzTnc3/7Wzr/+I/jY7PZjJSSzs5OijTCoxifcDiM1+ult7cXt9uN1+vF7/cTCATi75nYly5tTtxcMcuCEphZi8ViIS8vD7fbzZEjR1i5ciVLly7V1Z6aDj6fLy4mXV1d+Hy+eH6E3W7H6XROK3w1EAjQ3NxMQ0NDPDR70aJF5ObmkpmZOalvdn6/n7a2Nmpra8nJyRnz/yDz+HEcmlL8WvPY//7f/xu73Y7H42HVqlVT/MnSm0WLFvHQQw/x7W9/G4j87FqByXn9dZ3AQGQXc/Xq1RndLc8WQqEQHo+H9vb2eGM7IJ6HFXvvxL6YBYNBBgYG8Hg8NDQ0YLFYWLx4MYWFhWRnZ8/6/28lMLOYWP+aUCjElStXaG5uZtWqVbhcrkntaGLftAYHB+nu7qa7uztu5rJYLNjt9inn9YyG1WqN7zKklAwNDcW7iVqtVgoLC3G5XHHTmvFbnZSSvr4+WlpaaG1tRQhBbm7uuKJX8NOf6sa/ImIe2759O3fddRcQ+f+YTvWHdOehhx7i17/+NWfPnuUXwDc157KqqzG73YQ0P7/NZqO7u3vUfKL5Tjgcpre3l7a2Ntrb2wmFQlit1nG/hAkhdO8DiAhUc3MzV69eJScnh5KSkln9t6gEZg5gNptxuVwMDQ3Fy9I4nU4WL14c33KbTKb4DiTmL4mZvDweD6FQKP7h7nA4dB0fk01sVxQLow0Gg7S3t9Pc3Bw/H9vVxNYZDAYZGhrCYrGQk5MzIbOCtaWF3Nde0x37LhFz3V/91V/F7282m2d1eZjxKCgo4C/+4i/YvXs3taEQJ4HroudEKETOG2/Qc++9umsyMzO5cOECZWVlCdslTxXt7z8YDMZNs7FHKtYXDofp7++no6OD1tZWAoFAvHbhdExcZrOZnJwcINJe4vjx4xQUFLBq1apZWaNQCcwcIlY3DSI+k8uXL8fPxWy+2rHZbMZqtZKRkZFW2dqxN2oMKWW8w2hMJB0Ox6RFoODAAYQmj+gkEUf3n33pSyxfvhyImAYLCgrmlB3cSFZWFmvWrOHBBx/kX/7lX/gF7wkMRMxkRoGx2+243W6uXr2acvNhKBSir6+Prq6uuLk29ves9evFxlarlaysrHi9P6fTOW2TLkTMuv39/bjdblpaWhgaGop/GUnGh3/MPxOrUVhUVMSqVatmlW9QCcwcRSs2sx0hxLR/FuH1kvPss7pj/we44YYb+OxnPxs/FggEKCgomNZrpTsOhwOr1cpDDz3E4cOH+cXZs/yV5nzWm28ivF6kwcyak5PD5cuXKSgoSHqEnZQSj8dDS0sLnZ2d8Z2l0+kkJydnTN9ErMqGx+PRJSY7nc54YdnY/4HNZoubqGJfXsLhMIFAIB4V6fV66ezspLe3FyAeFZmKXW7MDC6lpL29nY6ODtauXcvChQtnhX9GCYxiXhD48Y9xaHrNdwMvulz85OtfH/bNdq6FJxsRQlBQUEBHRwd79+7ljx94gIbBQZZHz1uGhhj61a+wVlTorjOZTDgcDi5cuMDWrVuTsssLh8O43W7q6+vp6+uL70Ym81oxU5m2fl/MrNbV1TUsohEYthvSHouZcHNzc2fsQ10IQU5ODoFAgDNnztDW1saaNWtSasqeCmKkqsBzjQ0bNsif/vSnaWUGUqSOttZWln30o2zU9J5/Bsj+/ve56aab4seGhoaQUnKDoW/9XKSzs5PTp0/jcrl46aWXcOzZw//UnD+UlUXhL385ooO5u7ubtWvXsnTp0mHnpoqUkq6uLurq6hgcHMThcMyZMj3JoL+/n0AgQElJCUuWLEnaZ5sQolpKWTb+zJGZu4ZmhYJIbsyPPvc5nbiEgKGHH9aJC0T8L1NtTjfb0PoMPvShDxEwdL68tb+fLz388IjFLnNzc6mtrU1YW+Xe3l5OnDjBqVOnkFKSl5enxGUcsrKyyMnJob6+Pq2L4SqBUcxZWltbefjhh/ljQ1+TY0uX8lFNafoYcz08WUusUGsseOL2v/kb+jThsgXAwosX2b1797CW4WazGZvNxokTJ6ZVssjr9XL27Fmqq6vx+Xzk5eWpthSTIBY9CnDixAnOnDmTdnXjlMAo5iTnzp3jc5/7HPkNDfyR4VzeV786zJYeCoUwmUyzMhR0qhQUFMS7VppsNvx36vv2fRw4f/48f/Inf6KLSIRI8qXJZKK6upq2trZJva7X6+XChQscOXKErq4u8vLy0t6XkM44HA7y8vLo7u7m2LFjnDlzhv7+/mnfN+o+mZbTSQmMYs5RWVnJF77wBbo6OtiH/o98cO1afNu3D7tmcHCQhQsXzis/XV5enq5jal+5vvP4J6L/NjY28uCDD/L222/rzsdKnJw5c4b6+vpxW0kMDg5y4cIFjh49SltbWzyiazZEQ6U7sWoYLpcrLjSnTp2iq6srvkudKD6fj8bGRo4ePYrdbs+ZzrpUFJlizuD3+/n2t7/Ns9Fw5EcAo7u+9U//FEb4QAuFQixcuDD5i0wjYru1WKRU344dhB0OTNFdzQrgVuC3gMfj4dFHH+V//I//waOPPhpPZrRarbhcLq5cuUJHRwcul4ucnBwyMjKwWq0MDAzoyg1NJjFWMXliQiOlpLe3l66uSBnX3NxcFi5cSGZmZjwZ1WKxEA6H44nXPp+Prq4uuru746kBQohp/aKUwCjmBCdPnuRrX/saFy9eBGAR8LRhjru8nL4PfnDYtTHzWCyDer5gs9nIzMwkEAhgs9mQTie9H/wgLk2vnEeJCEyMf/mXf+HYsWP89V//NWvWrAEi4ct5eXkEAgE6OjpoaWnRhf1aLBYVFZZiYtUvIPIFwu/3c+nSpfjYODf2JcNms+FyuRBCTHrnMxJKYBSzmt7eXv75n/+Zn/3sZzoTzbcArbs+lJFB85e/POI95qN5LEZhYSFXrlyJJ7J27typE5j7hGAp0Kj5UDp58iQPPPAAn//85/niF78YFw5jXS1FehCrfDETARRqn6qYlfj9fv793/+de++9l5/+9Kc6cbkD+IxhfuujjxIYJQR5PprHYuTm5uq+0Q6UleErKYmPzVLy/Ec/SmFhoe66YDDID3/4Q+69914OHjyYkG+7irmHEhjFrKK/v59///d/52Mf+xjf+ta38Hg8uvM5wE8MJTy869fT+cADI95vvprHYmj9MAAIQeenPqWbc93hwxz4j//g1ltvHXZ9Z2cnX//617nvvvs4cOBAwnJjFHMDJTCKWcGlS5f41re+xYc//GG+9a1v0draOmzOpsWLubh8OUs0uQBSCBq/8hUYpcLufDaPAXGnu9/vjx/r+ehHCWnChq2dnaw8fpzvfOc7fPOb3xyxVtvVq1f5+7//e+6++26+973v0dDQkJL1K9Ib5YNRTJ1AAOf58zjq67E1NmJrbMR+9Srm/n6kEGA2I00mpM2Gf9ky/CtX4l+1Cl/0X8b5UO/o6OC1117jhRde4PTp06POy8zM5LH77+erb7xBZtTJH6OrooLB664b5cr5bR6LUVBQQH19fdxGH87KouejH6XgwIH35hw4gOdDH6K8vJwbb7yRH//4x/zHf/xHPI8mhtvt5kc/+hE/+tGP2Lp1K/feey+33XZbwvsJzTpCISweD+bubiw9PWCxMFRcTKCwEOZwRJ2qRaaYOOEwztOnyaqqIquqiszjxzFrCkhOhlBWFv1lZfTfeCN9N9yAv6SEsJTU1tby+9//nt/+9recPHlyzHvY7XYqKir40n33UfrEEzhra3XnB66/nrp/+ifCoyTxhUIhBgYGuOmmm+b130Zvby/Hjx/XVTGwX7rEBkOxy/MHD+JbuzY+bm9vZ9++fTz//PPxzo0jYTKZ2LJlC7feeis333wzK1eunNu5L1Jir619733y7rtYOjsRI3zWhq1WAkVF+FeswHPLLXjKy3XN3maSQCDAzTffXOf1eldP9R5KYBRjIoaGyDp6lNzXXyfnt7/FGo2rTzQddju/kZLnhoaoBMYqQJKXl8f999/PAx/7GCXvvMPCH/4Qe1OTbk7/tm3U/5//Q3iMkup9fX0UFhayfv36xPwQs5RQKMTbb789rGrx6i9+kazq6vi4c+dOmp56atj17e3t/OxnP+PAgQMTyiAvKChg27ZtlJWVsXXrVlatWjX735uBANlHj+J6+WWyf/97rFOsDSYtFnpvugn33Xfjue025AyWzlECM0HSSmCkxNrcTOapU1g6OrC43ZjdbixuNwhBKDs78sjJIZiXFzEprVqV0m81pv5+ct56i5zXXyfnjTcwp7i+UQA4CtREH8eBBuD9W7fykVtu4QPXX0/hW2+x4NChyP+bgb4bb6T+H/9xWD8TI263m82bNyvzDXD27Fl6enp0PU5yX36ZlU88ER+HnE7OvvQSoVECIgYGBnj55Zd54YUXOH78+IRf2+FwsH79ejZt2sSGDRtYs2YNK1asSP+yPcEgWdXVuF56idzXXhvxb3E6BAoLad29m+6Pf3xUH2IyUQIzQWZaYCzt7eS88QZZ1dVk1tRgG8FBPR6BvDz8JSV4N2xgcNMmvBs34l+xYlw/xoSQEkdtLZlVVZF1HjmCaQyTh25dCxYwuHkz3qVL6XK5aLTbaQwG6ezooK25mbaWFgaamijq62MjsAEoJVJMMRn0fuADXP7Wt5DR9sujocxjerq6ujh16pS+2GcgwKZ77sGqKRY62i7GyJUrV3jxxRd5/fXX4228J0thYSErVqxg5cqVlBQXs8XvZ3k4zMKhIVx9fdjb2yEcjn8pC2dnE8zLw7dyJb41awgUFY1YtWFahMNknjiB6ze/IbeyEquhEOhYBKNfGkN5eYihIWxNTVgMUZAj4Vuxgtb/+T/x3H574n+eMZiXAiOEcAG7gDqgBKiUUtaMdc2MCEw4TPbhwyw4dIic3/8eoan5lChCTie+tWvxrV6Nb80afGvWMFRcTLCggPAo395FIICtqQn7lSvYr1wh4w9/ILO6esJbep/NxqniYo67XLxtt1MzOEhrWxudnZ3j1qKKrwHYTCRf5Q7gFmC6vQGlyUT3Jz5B0549yAl0v+zt7WXp0qUpb/+brgQCAQ4fPjysW+TCH/6Qov/7f3VzL/3rvzKwdeuE793U1MTvfvc73njjDU6cODHhUOY84CPAx4APA5PdzwQcDgZWrMC7bh2B667Dt3EjvrVrJ212sra0kH3kCFnvvEPW0aMTEpVQVhYDW7dG/IxlZfjWrUOOkIRq6uvD3thI9htvkPfiizgMRUW1DGzeTONXv4ovWkEh2cxXgXkF2C2lrNOMd0opR92fplJgTF4vC559lgUHDw7zC6SSIbud/sxMgiYTplAIUzCIORQiy+vFPMnfeSvwPPAL4DVgKIHrLCws5PoNG/jkwoXcOjjIyrNnx3yTGQlmZ9P9iU/Qef/9BJYsmdA1Ukrcbjc33nijKl+i4Q9/+AODg4O6/xPh97N+507smrBjX0kJF372swkJuZFAIBAv0V9VVcWZM2eG9TIpA54E/ojEh7kGgSaLhWaHg/aMDDpycgg4HJhsNsxWK2arlfxAgEUDAxT29lLgdpMbbZU8HkPZ2XTefDOdd9xBf1kZFocDi8Uy8c8dKXGeP0/eCy+w4Oc/x6QJHY8Rtlhof+gh2r/4xREFK5HMO4GJ7l6qpZSrNcf2Aa9IKQ+Ndl1WVpbcGv3GFft5w+EwUsoJjScyxyIln3S7+f+6u1k4zm7FB9TYbJwzm+kEOoH2cJhwOExO9JErJSuATcA6INWuvovAc0RE5Qgwsb3J6FgsFpYvX87KlStZv349GzduZOPGjcMyxAGsra04z5zBee4czvPncZ47h7m/n7DTGX8E8/Lw3H47PffeO2qU2Gj09/eTl5fHpk2bpvlTzS3a2to4d+7csJ44mceOsebhh3XHWh95hLZHHpn2a0opaWtr4+yZM4Ree40PvvUW29O0edZIeIi8R54FXiEiYEaEEHGhMZvNCCEwmUyYTCaEECMeWyIlf9bby6cGBhhJns7b7fzN0qWcycxECDHsoX3tqR6XUnLs2LF5JTDlwF4p5TbNsb2AS0q5e4zrkvpD7gS+DqwdY84p4GdECgceY3K7ABOwCrge2EbEh7ENGP7RPHV6gTeA14EXgbNTuEdeXh6LFy9m0aJFLF68mOLiYlauXMnKlSspLi6OV+CdaXp6eti6dSu5oeUhqwAAFb5JREFUubkzvZS0wu/3884774zYe37p3/4tC557Lj4OW61cePZZ/JqyMlMl4913Kf7Od8g8cWLMeZ02G0fsdmqHhrjk99MI+IFcInXn8oDlwLXANehr0SWSPuC/iYjKS9E1JIsNwDeImAmNhIBvAn+dxDU4HI55JTAVRMxjd2qOPQFsl1LuNMzdRcRXA5HP44SzAfg+cNso533AAWAf8PYoc6bDEiJvpthjI1AELAbGMl40AReij/PAm0SitYz7royMDDIzM8nLy4s/XC6X7t+8vDwWLVrEokWLsI/jWE8H/H4/QgjKysrmdi7GFKmpqSEQCAwrjGj2eFj/iU/o/A/9W7dS+8MfTjnQxNbURNF3v6srrmnEV1KC5/bb8dx6K95Nm+JJiV6vl7a2Ntrb2+np6aGnp4fu7u74857ubuydnazweFg3OMi1gQClRJy2kyUAHAYqo49jjLxTSSb3Af+PyHvbyFngC0QsDYlmPgrMk4YdzIgCY7guoT+kE3gK+DIjf5B7ge8C/wBMPMZkOLEtdeyh3WZrxyaTCbvdjs1mw263Y7fZWGA2s0hKHFYrwm7H5HAg7HbC2dmIrCxsNhsZGRlkZWXFhUT7iHUsnGv09PSwadOmeZ+9PxrNzc1cvHhxxNbRrpdeYsWePbpjvTffzJW//3vC2dkTfg1zdzcLf/xjCv7zPzGNUiSzf9s22r74Rfp37EhI5FQoFGJwcBBvRwdcvoz5yhWsjY0429rA5yMcDCIDAWQoRL/JREtGBk12Ow1WKw1mMwOhED6fj0AgQCAQIBgMTvgx0eCX8cgDvgM8ONLPR6SC+N8Q+fxJFPNNYMqBfQYfzLgmsqVLl8rHH3887myL2Tlj32C145GOacfFJ09yw49/TLahzztA2GTi8u23c3bnTnwLFgy7r/ExmmBobbWKxBEMBvF6vezYsUOFJo/C4OAgx44dG1FgkJJVf/qn5Lz5pu6wb9Uq6v/xHxlasWLMe1u6uyn8yU9YcOAA5lEiyXrf/37aHnqIwUlEqaU74XCYYDBIKBQiHPW1SikJhUJIKePHtOdGOhabv+j4cbb/4AdkjhDN1p+fz7FPfpLa7dsh6kfR+o0n8zwYDPKVr3xlXgmMC6iXUuZpjo3r5E9EFJm5p4fib36T/F/9asTzfTt20LRnD/6VK6f8Gork4vF4WLFiBSvG+SCcz0Qdu5hMphF7u1hbW1n7uc/pcmMgEs3X+NWv0vf+9+uCLoTXS+Yf/kDOb3/Lgueei3fLNDK4cSPNf/7nDIzQzloxHFNfH8Xf/rbOL6Zl4Prrafryl/Fee+2UXyPo9fKB226bPwIDI4YpVwN3JC1MWUpcL77Ikm9+M1KkzkCgsJCmxx/Hc9ddKU2CUkyOWGjy+973vhlpvDSbaGho4PLly6MGQVja2lj1539OxggFSKUQ+FeswLduHZaODjJOnhwzaXdo4UJa//RP6fnIR+Z00cdkkfX22yz72tdGTd7uvekmuu+7j95bbplwWLPj3DnyX3gB169/TY7XO+8EJmWJlvbLl1nyjW+Q/c47w85Jk4nO+++n9bHHCKd7SQuFqjs2Cfr6+qiurh6zhI7w+Vj6d3836o5+PAIFBbQ/+CBdFRXjlvRRjI2pv59F+/dT8NOfjirmgbw8eu69l8Hrr8e/fDn+ZcsiCafBINa2NmzNzWScPUveL3+JU1N5wTmffDBTZbICY/J6WfiDH1D4b/824i/Mu24dV7/61WltPxWpI+Z72b59+6yIdJtpwuEw77zzDna7fezQcikp/Ld/o+i730VM0JEdKCyk/QtfoOu++2a0kONcxHblCsXf/ja5v/vdhOYH8/Iwezxj/u6mKzDpkZiQLoTD5FZWUvyd72BraRl+2maj7ZFHaP/c50D1Hp819PX1sX79eiUuE8RkMrFs2TLq6+vHzhUSgo4HH2RgyxYKfvYznGfO4LhyZdg0/7JlkZIp27fjueOOcevEKabG0IoVXP7ud8k6fJii732PjDNnxpw/ksk/0SiBAZCS7DffZPH/+39knDs34pS+G26g8amnxo2UUaQXg4OD5OTksGjRopleyqyisLCQ2tpapJTjRjMOXn89DddfD4BpYADHhQs46uoIZ2QwsHUrgcUjZW8okkX/jh1c3LED57lz5D/3HHm/+hXmCbRRiCFNJvp27KDjnnvg7/5uWmuZ3yaycJisd95h8b59ZL777ojXBgoLaX78cdzKiT/rCIfDeDweysrK0r/0exoSqxOm/u9mN8LrJff118k8cQJ7QwO2hgZsLS3xBmiBBQsYKioiUFTEwObNuD/8YYKFhQmpRTYvdzCWjg7yX3iB/Oeew97YOOIcaTbT8ZnP0LZ795hNqxTpS19fH8uXL1cfkFNkyZIltLe3z/QyFNNEOp2477kH9z33xI8Jvx9LdzfBvLyk+sLmjcA4z50jp6aG7HfeIfudd8Ysn+++6y5av/SlSN94xazE7/djtVpZtmzZTC9l1pKTk0NGRgZDQ0PYplA5WZG+SLs90i8nycwLgcm8eJGNn/nMuPM8H/wgrY8+im/DhhSsSpEshoaGGBwcZMuWLSMmCyomhhCCZcuWceHCBSUwiikxLwRmrDC8sM2G54476PzjP2Zw8+YUrkqRDPx+Pz6fjy1btoxc7kQxKQoKCrh06RKhUEiV11FMmnkhMCPhXb2a7vvuo+cjH0lpv/u5SDAYZGhoiEAg8P+3d6/JTVttHMD/R7FlJ7Hla3wJhRBnCC1thhLCDsIOSruChh3AdAUdugPoCtqwA+gKXsoHZmjpjQwz6VCGXBzHl/gin/eDJWFycXyRbMn+/2Y6BeI44kHWo/Oco+dYq47OWjxi7n+hqqrtd8VHR0eo1Wq4fv06W/HbxO/3I5vN4u3bt9A0bdSH40lSStTr9Y96kTWbTfh8Pvh8Pvj9/rFsLAtMUIJpaBpKN2+ieOsWirdutbYd5aqwvtXrdZTLZUgpoaoqotEoNE3D7OwsgsHgibvdRqNhjS6KxaLVVt1MOMFgcKByVrlcRr1ex5dffskLoc2y2Sy2z1gMQyc1m03rZgdo3VSFQiEEg0EEAgH4/X74fD6Uy2WUSiWUSiU0jAe6g8EggsHg2DS6nYgEU758GS82NzHFevxAzJbnuq4jEAhgYWEBiUQCs8auep34/f4T2xPXajUr2bx//x7FYhFCCKiqimAweO5dnZQSpVIJtVoNkUgEKysrXDHmAHNPoHK5jJkedw+dFLquo1KpoNFoQFEUxONxxONxhMNhTE9Pn1terNVqyOfz+O+//7C3twchBGZnZz0/hzgRCaYZCLCR3gCq1SoqlQoURUE2m0U6nUYoFBr4LktVVeuDmMvlcHR0hIODA+zs7GB/f9/aR8Pc2sBsI96+VXU6ncaFCxcQDofH5q7PjRYXF/H8+fOuEv+wmCWn9u2Gh/3zK5UK6vU6pqamkEqlkEqloGlaz/NVqqpa31+tVrG7u4s3b96gVCohFAq5ZjfYXnnzqMlxuq6jVCpB13WEQiFcvXoViUTCsTsqIQSmp6cxPT2NTCaDZrNpldTK5TKKxSIURYHP54OqqvD5fNA07cSoiJyhaRouXbqE7e3tkcxv1Wo1VIw9ZMz5PfNc0HXdmuNoZ245oKqqbQsUzL52uq5DUZSBkspZAoEA5ufnkU6n8fbtW2xtbUFKiVAo5LmFFkwwZNGNXftqtRp8Ph8uXLiAVCrVVQnMboqiWAmnU1dfGp6LFy/i3bt3qFarQ+nrZi43B1rbdy8uLiISiUBVVfj9/hMX22azCV3XrRuTUqmEQqGAQqFgzXEIIaw5EJ/P13HUY24UZu5iCbRKvel0Gslk0takcpqpqSl88sknSKVS+Pfff/HmzRsEAgFPlSmZYCaY+eGp1WqQUmJqagqJRALpdBqRSMRzd0vkLL/fj+XlZbx48QKqqjp203F0dIRKpYLp6WksLy8jGo12NVI1y2R+vx+hUAjJZBJAa8RjjoBKpRIODw+tCXZd1z/6e7SvglQUBTMzM4jH44jFYtA0bSQT8KqqYnFxEXNzc3j16hXy+TzC4bAnPp9MMGPI3F7V3KbVrFUD+GgJsaqqCIVCuHjxIiKRCGZmZlxTXyd3SiQSyGQy2N3dRTgctvW9K5UKKpUKwuEwvvjiC8TjcVvORyEEAoEAAoHAR89GmdsCNxqNj7YMBmCVYd00rxcKhXDjxg1sb29ja2sLwWDQ9SViJhiPk1KiWq2iWq1aHxDzAzU9PW0tjWwvK5gfNi/cAZH75HI57O7uol6v2zInV6/XUSwWEQqFrAdkh3FhN8tlXlqpNTU1hYWFBcTjcfz+++/I5/OIRCKuSoTtmGA8SEppPfchhICmaZifn7cmvf1+v2tPOPK+QCCAK1eu4LfffkMoFOr7gVld13F4eAhVVfHZZ59hbm6OI+guhcNhrK6uYmtrC9vb2wiHw65MlEwwHmIuFwaAVCqFTCbj+EQj0WnS6TT8fj9evnyJRqPR08SzrusoGvuT5HI5ZLNZzy7DHSWfz4crV64gFovh1atXODo6sr1sOSj+q7qcOVqp1WrWcuF4PM7mgzRy8Xgcq6urePnyJQqFwrkdFMzEIoTAwsICstksz2MbJJNJrK2t4c8//8Tu7i40TXNNwnbHUdAJzWbTaiGRSCRw6dIlaJrG0he5yuzsLG7cuIE//vgDOzs71kOx5hxftVq1VikqioLFxUVkMhlXlnO8LBgMYmVlBe/evcNff/1ltacZ9fWCCcZl6vU6SqUShBCYn59HNpvFLDc8Ixfz+/24du0aisUiyuUyDg4OUCgUUCwWEY1GrZsjrlJ0lhACmUwG0WgUf//9N96/f4/Z2dmhPLN0FiYYF5BSolKpWA+wLS0tIZVKsXxAnqEoCjRNg6ZpyGQyAD48U0LDFQwG8fnnn2NnZwdbW1vY29vDzMwMgj3sXNlsNq1mtoNgghkhc7QCALFYDMvLy4jFYrzLo7HA5DI6QgjMzc0hkUggn89ja2sL+/v71lYZgUDgxL+P2Z6pWq1CURRkMhnUarXCIMfBBDNk7W3ug8EglpaWkEwme7q7ICLqhtnZORaL4eDgAPl8Hvv7+ygUCidGJ1NTU9A0DUtLS4jFYmaD2bP3lu8CE8wQmI0jm81mz23uiYgGJYRANBpFNBrF5cuX0Ww2UalU0Gw2rYdNnXjcgQnGQWZPpVE3jiQiaqcoylAWD3kqwQgh7gFIAPgJQBzAbSnl/dEe1Un1eh2FQgGRSATXrl1DIpHgw5BENHE8lWAMG8Z/TwF8O+Jj+YiU0npCeWVlBclkkqMVIppYXksweSmlKzcHaTQaKBQKSCaTWF5eHunacyIiN/BaggEACCFW0Uo2r0d9LEAruRweHuLTTz9FJpPhqIWICIAY9EGaYRJCbADYQ6s8tg7g1llzMMZrN4zfXg8EAm8AOPGXFYqi+Gu1WkHX9aoD7+9GSQA7oz6IMcFY2ovxtNdVKWXfHTQ9lWCOE0L8A+CulPLpOa97JqVcG9JhjT3G0z6Mpb0YT3sNGs+RlsiMUcbNc172wCyFCSFWpZTP2772HMBttEY0RETkIiNNMFLKR92+1ph3+QVA+yR/FMA/dh8XERENzjNNr4yRy/FlyTkAP3fx7V0nMuoK42kfxtJejKe9Boqnp+ZgjFHMOoA8WqW1h8dKZoO+/0Mp5V273m8SCSGiaP0bxdEqX953y2o/rxBCfAXgNYB1KeUPoz4er+K56Jxur5WeWqZsJBPbEko7IcQ6AE4ODu5rAFEp5Q/Gcu37AJi0u2Sch3Ep5WMhBIQQ95hk+sZz0QG9XCs9UyIzCSFWhRCbxl+y/c+jQoh7QoivjP+v9vCeUbTuGPfsPl63szueUspHbRfEJUz4HFkf8b2N1rkItEbqt4d5vG7Wayx5LnbWz2e/12ulp0YwbYHInfLlTbSWLJsrzp4IIe5IKfNdvPWalPLppD0g6WA8TTk39oobln7ii9bCFdMeWuWdiWfDuTrR5+JxA8Szp2ulpxKM+byLEOKj7Glk1dyx+uprtOqvj43l0Ke93yMhxPp5z9GMKyfi2fYe96SUd+w/au/oM755fEgycUzgqPo0/Z6rxmsm/lw8rp94CiHyvV4rPZVgOlhD64PZziwvPD5nOfSeMakKALlJTjhtBomnOUn9yPg143lSp/hu4sNdZQ7AkyEelxd1PFd5LvasUzwf9nqt9NwczBmiOHmnt4suygtSyudSysfGb1mOaOk7nka99gGAX4xOC6cNwSfdmfE1PrBRo4Sxygn+c50ZS56Lfel0bvZ8rRyXEQwwYHIwAvf43BdOjr7iaaz0W7L5WMbRmfFtSyq82+7OqbHkudi3jp/9Xq6V4zKCaa9bmxJg/bpfjKezGF/7MJb2sjWe45JgnuFk1o2C9et+MZ7OYnztw1jay9Z4jkWCMZbPPRNCtNdY18ASQ18YT2cxvvZhLO1ldzy92irmO7Qy7ROzXm0sr9tAa0ldDsBTO9vIjCPG01mMr30YS3sNK56eSjBEROQdY1EiIyIi92GCISIiRzDBEBGRI5hgiIjIEUwwRETkCCYYIiJyBBMM0ZAJIXJCiAejPg4ipzHBEA3ITBhCiI22duad3EVb6w3je38VQkghxMP2HQaN93xifG3zrL14iNyID1oSDUgI8SuAO2gljnUp5c3zXn/8NUbieCCljJ3y+lUAvwKI9bijKNFIjVO7fqKhMy7+OSnla2PPkY5NAY3XPxvKwRGNGBMM0WC+gdEI8LydPg13ATx09IiIXIJzMESDWUdvrczX2IiRJgVHMER9EELcQ2u3xFUAt4UQNwE87JQ8jMl7W9rIG6W2XwB8j1bXW6DV+fYBOFdDLsEEQ9QHKeUPxkV+Q0p5p8tvuwvgfoevR43Eddxp2/7GAXzbtkc6hBBPANxnciG3YIIh6t8aPoweuhGVUnZ6fd7ck6OdmciOvxfaRkPGKrT4ad9PNCpMMET9uwmgq/kU4/mYTRt/9lNzpGLsPvjAOB4i1+AkP1H/1gD8r8vX3gXws10/+FgZbBOt0lgvoykixzHBEPVvFV1M2htb0B5PCrYw52zal0gbJTWikWOJjKgP5kW8yyXHX8OBZ1+M0th3aCuNGX8Wt/tnEfWDIxii/vQywX+nfbWXjU4rjX0FYM+Bn0XUM45giPrT1QS/MaLoWBozOiuvo7VM+SGATSnlU+NrG2j1OQOAH4UQP0kpHxt/ngOwZywgiBvHtIHTlzUTDR2bXRL1wWhw+f15IxNjjuS5mTCIJgkTDFGXjJFCXkr5VAghpZSii+850TmZaFJwDoaoez8CWDVavpz7QCM7J9Ok4xwMUffMNi+3pZSdWr6YvgE7J9MEY4mMyCFCiM0e+pQRjR0mGCIicgTnYIiIyBFMMERE5AgmGCIicgQTDBEROYIJhoiIHMEEQ0REjvg/brVAGKwkYCEAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# plot the DRT and its confidence region\n", - "plt.semilogx(freq_vec_plot, gamma_fct_plot, linewidth=4, color=\"black\", label=\"exact\")\n", - "plt.semilogx(freq_vec, gamma_fct_est, linewidth=4, color=\"red\", label=\"GP-DRT\")\n", - "plt.fill_between(freq_vec, gamma_fct_est-3*sigma_gamma_fct_est, gamma_fct_est+3*sigma_gamma_fct_est, color=\"0.4\", alpha=0.3)\n", - "plt.rc('text', usetex=True)\n", - "plt.rc('font', family='serif', size=15)\n", - "plt.rc('xtick', labelsize=15)\n", - "plt.rc('ytick', labelsize=15)\n", - "plt.axis([1E-4,1E4,-5,25])\n", - "plt.legend(frameon=False, fontsize = 15)\n", - "plt.xlabel(r'$f/{\\rm Hz}$', fontsize = 20)\n", - "plt.ylabel(r'$\\gamma/\\Omega$', fontsize = 20)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 4d) Predict the $\\gamma$ and the imaginary part of the GP-DRT impedance\n", - "\n", - "This part is explained in Section `2.3.3` of the main article " - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "# initialize the imaginary part of impedance vector\n", - "Z_im_vec_star = np.empty_like(xi_vec_star)\n", - "Sigma_Z_im_vec_star = np.empty_like(xi_vec_star)\n", - "\n", - "gamma_vec_star = np.empty_like(xi_vec_star)\n", - "Sigma_gamma_vec_star = np.empty_like(xi_vec_star)\n", - "\n", - "# calculate the imaginary part of impedance at each $\\xi$ point for the plot\n", - "for index, val in enumerate(xi_vec_star):\n", - " xi_star = np.array([val])\n", - "\n", - " # compute matrices shown in eq (18), k_star corresponds to a new point\n", - " k_star = GP_DRT.matrix_K(xi_vec, xi_star, sigma_f, ell)\n", - " L_im_k_star = GP_DRT.matrix_L_im_K(xi_vec, xi_star, sigma_f, ell)\n", - " L2_im_k_star = GP_DRT.matrix_L2_im_K(xi_vec, xi_star, sigma_f, ell)\n", - " k_star_star = GP_DRT.matrix_K(xi_star, xi_star, sigma_f, ell)\n", - " L_im_k_star_star = GP_DRT.matrix_L_im_K(xi_star, xi_star, sigma_f, ell)\n", - " L2_im_k_star_star = GP_DRT.matrix_L2_im_K(xi_star, xi_star, sigma_f, ell)\n", - "\n", - " # compute Z_im_star mean and standard deviation using eq (26)\n", - " Z_im_vec_star[index] = np.dot(L2_im_k_star.T, np.dot(inv_K_im_full, Z_exp.imag))\n", - " Sigma_Z_im_vec_star[index] = L2_im_k_star_star-np.dot(L2_im_k_star.T, np.dot(inv_K_im_full, L2_im_k_star))\n", - " \n", - " # compute Z_im_star mean and standard deviation\n", - " gamma_vec_star[index] = -np.dot(L_im_k_star.T, np.dot(inv_K_im_full, Z_exp.imag))\n", - " Sigma_gamma_vec_star[index] = k_star_star-np.dot(L_im_k_star.T, np.dot(inv_K_im_full, L_im_k_star))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 4e) Plot the imaginary part of the GP-DRT impedance together with the exact one and the synthetic experiment" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.semilogx(freq_vec_star, -np.imag(Z_exact), \":\", linewidth=4, color=\"blue\", label=\"exact\")\n", - "plt.semilogx(freq_vec, -Z_exp.imag, \"o\", markersize=10, color=\"black\", label=\"synth exp\")\n", - "plt.semilogx(freq_vec_star, -Z_im_vec_star, linewidth=4, color=\"red\", label=\"GP-DRT\")\n", - "plt.fill_between(freq_vec_star, -Z_im_vec_star-3*np.sqrt(abs(Sigma_Z_im_vec_star)), -Z_im_vec_star+3*np.sqrt(abs(Sigma_Z_im_vec_star)), alpha=0.3)\n", - "plt.rc('text', usetex=True)\n", - "plt.rc('font', family='serif', size=15)\n", - "plt.rc('xtick', labelsize=15)\n", - "plt.rc('ytick', labelsize=15)\n", - "plt.axis([1E-4,1E4,-5,25])\n", - "plt.legend(frameon=False, fontsize = 15)\n", - "plt.xlabel(r'$f/{\\rm Hz}$', fontsize = 20)\n", - "plt.ylabel(r'$-Z_{\\rm im}/\\Omega$', fontsize = 20)\n", - "plt.show()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.5" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/tutorial/ex1_simple_ZARC_model.ipynb b/tutorial/ex1_simple_ZARC_model.ipynb deleted file mode 100644 index a51a933..0000000 --- a/tutorial/ex1_simple_ZARC_model.ipynb +++ /dev/null @@ -1,512 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Gaussian Process Distribution of Relaxation Times" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## In this tutorial we will reproduce Figure 7 of the article https://doi.org/10.1016/j.electacta.2019.135316\n", - "\n", - "GP-DRT is our newly developed approach that can be used to obtain both the mean and covariance of the DRT from the EIS data by assuming that the DRT is a Gaussian process (GP). The GP-DRP can predict the DRT and the imaginary part of the impedance at frequencies that were not previously measured.\n", - "\n", - "To obtain the DRT from the impedance we take that $\\gamma(\\xi)$ is a GP where $f$ is the frequency and $\\xi=\\log f$. Under the DRT model and considering that GPs are closed linear transformations, it follows that $Z^{\\rm DRT}_{\\rm im}\\left(\\xi\\right)$ is also a GP.\n", - "\n", - "More precisely we can write\n", - "\n", - "$$\\begin{pmatrix}\n", - "\\gamma(\\xi) \\\\\n", - "Z^{\\rm DRT}_{\\rm im}\\left(\\xi\\right)\n", - "\\end{pmatrix}\\sim \\mathcal{GP}\\left(\\mathbf 0, \\begin{pmatrix}\n", - "k(\\xi, \\xi^\\prime) & \\mathcal L^{\\rm im}_{\\xi^\\prime} \\left(k(\\xi, \\xi^\\prime)\\right)\\\\\n", - "\\mathcal L^{\\rm im}_{\\xi} k(\\xi, \\xi^\\prime) & \\mathcal L^{\\rm im}_{\\xi^\\prime}\\left(\\mathcal L^{\\rm im}_{\\xi} \\left(k(\\xi, \\xi^\\prime)\\right)\\right)\n", - "\\end{pmatrix}\\right)$$\n", - "\n", - "where\n", - "\n", - "$$\\mathcal L^{\\rm im}_\\xi \\left(\\cdot\\right) = -\\displaystyle \\int_{-\\infty}^\\infty \\frac{2\\pi \\displaystyle e^{\\xi-\\hat \\xi}}{1+\\left(2\\pi \\displaystyle e^{\\xi-\\hat \\xi}\\right)^2} \\left(\\cdot\\right) d \\hat \\xi$$\n", - "\n", - "is a linear functional. The latter functional, transforms the DRT to the imaginary part of the impedance.\n", - "\n", - "Assuming we have $N$ observations, we can set $\\left(\\mathbf Z^{\\rm exp}_{\\rm im}\\right)_n = Z^{\\rm exp}_{\\rm im}(\\xi_n)$ with $\\xi_n =\\log f_n$ and $n =1, 2, \\ldots N $. The corresponding multivariate Gaussian random variable can be written as \n", - "\n", - "$$\\begin{pmatrix}\n", - "\\boldsymbol{\\gamma} \\\\\n", - "\\mathbf Z^{\\rm exp}_{\\rm im}\n", - "\\end{pmatrix}\\sim \\mathcal{N}\\left(\\mathbf 0, \\begin{pmatrix}\n", - "\\mathbf K & \\mathcal L_{\\rm im} \\mathbf K\\\\\n", - "\\mathcal L_{\\rm im}^\\sharp \\mathbf K & \\mathcal L^2_{\\rm im} \\mathbf K + \\sigma_n^2 \\mathbf I\n", - "\\end{pmatrix}\\right)$$\n", - "\n", - "where \n", - "\n", - "$$\\begin{align}\n", - "(\\mathbf K)_{nm} &= k(\\xi_n, \\xi_m)\\\\\n", - "(\\mathcal L_{\\rm im} \\mathbf K)_{nm} &= \\left. \\mathcal L^{\\rm im}_{\\xi^\\prime} \\left(k(\\xi, \\xi^\\prime)\\right) \\right |_{\\xi_n, \\xi_m}\\\\\n", - "(\\mathcal L_{\\rm im}^\\sharp \\mathbf K)_{nm} &= \\left.\\mathcal L^{\\rm im}_{\\xi} \\left(k(\\xi, \\xi^\\prime)\\right) \\right|_{\\xi_n, \\xi_m}\\\\\n", - "(\\mathcal L^2_{\\rm im} \\mathbf K)_{nm} &= \\left.\\mathcal L^{\\rm im}_{\\xi^\\prime}\\left(\\mathcal L^{\\rm im}_{\\xi} \\left(k(\\xi, \\xi^\\prime)\\right)\\right) \\right|_{\\xi_n, \\xi_m}\n", - "\\end{align}$$\n", - "\n", - "and $\\mathcal L_{\\rm im} \\mathbf K^\\top = \\mathcal L_{\\rm im}^\\sharp \\mathbf K$.\n", - "\n", - "To obtain the DRT from impedance, the distribution of $\\mathbf{\\gamma}$ conditioned on $\\mathbf Z^{\\rm exp}_{\\rm im}$ can be written as\n", - "\n", - "$$\\boldsymbol{\\gamma}|\\mathbf Z^{\\rm exp}_{\\rm im}\\sim \\mathcal N\\left( \\mathbf \\mu_{\\gamma|Z^{\\rm exp}_{\\rm im}}, \\mathbf\\Sigma_{\\gamma| Z^{\\rm exp}_{\\rm im}}\\right)$$\n", - "\n", - "with\n", - "\n", - "$$\\begin{align}\n", - "\\mathbf \\mu_{\\gamma|Z^{\\rm exp}_{\\rm im}} &= \\mathcal L_{\\rm im} \\mathbf K \\left(\\mathcal L^2_{\\rm im} \\mathbf K + \\sigma_n^2 \\mathbf I \\right)^{-1} \\mathbf Z^{\\rm exp}_{\\rm im} \\\\\n", - "\\mathbf \\Sigma_{\\gamma| Z^{\\rm exp}_{\\rm im}} &= \\mathbf K- \\mathcal L_{\\rm im} \\mathbf K \\left(\\mathcal L^2_{\\rm im} \\mathbf K + \\sigma_n^2 \\mathbf I \\right)^{-1}\\mathcal L_{\\rm im} \\mathbf K^\\top\n", - "\\end{align}$$\n", - "\n", - "The above formulas depend on 1) the kernel, $k(\\xi, \\xi^\\prime)$; 2) the noise level, $\\sigma_n$; and 3) the experimental data, $\\mathbf Z^{\\rm exp}_{\\rm im}$ (at the log-frequencies $\\mathbf \\xi$). " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from math import sin, cos, pi\n", - "import GP_DRT\n", - "from scipy.optimize import minimize\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 1) Define parameters of the ZARC circuit which will be used for the synthetic experiment generation\n", - "\n", - "The impedance of a ZARC can be written as\n", - "$$\n", - "Z^{\\rm exact}(f) = R_\\infty + \\displaystyle \\frac{1}{\\displaystyle \\frac{1}{R_{\\rm ct}}+C \\left(i 2\\pi f\\right)^\\phi}\n", - "$$\n", - "\n", - "where $\\displaystyle C = \\frac{\\tau_0^\\phi}{R_{\\rm ct}}$.\n", - "\n", - "The analytical DRT can be computed analytically as\n", - "\n", - "$$\n", - "\\gamma(\\log \\tau) = \\displaystyle \\frac{\\displaystyle R_{\\rm ct}}{\\displaystyle 2\\pi} \\displaystyle \\frac{\\displaystyle \\sin\\left((1-\\phi)\\pi\\right)}{\\displaystyle \\cosh(\\phi \\log(\\tau/\\tau_0))-\\cos(\\pi(1-\\phi))}\n", - "$$" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "# define the frequency range\n", - "N_freqs = 81\n", - "freq_vec = np.logspace(-4., 4., num=N_freqs, endpoint=True)\n", - "xi_vec = np.log(freq_vec)\n", - "tau = 1/freq_vec\n", - "\n", - "# define the frequency range used for prediction\n", - "# note: we could have used other values\n", - "freq_vec_star = np.logspace(-4., 4., num=81, endpoint=True)\n", - "xi_vec_star = np.log(freq_vec_star)\n", - "\n", - "# parameters for ZARC model, the impedance and analytical DRT are calculated as the above equations\n", - "R_inf = 10\n", - "R_ct = 50\n", - "phi = 0.8\n", - "tau_0 = 1.\n", - "\n", - "C = tau_0**phi/R_ct\n", - "Z_exact = R_inf+1./(1./R_ct+C*(1j*2.*pi*freq_vec)**phi)\n", - "gamma_fct = (R_ct)/(2.*pi)*sin((1.-phi)*pi)/(np.cosh(phi*np.log(tau/tau_0))-cos((1.-phi)*pi))\n", - "\n", - "# we will use a finer mesh for plotting the results\n", - "freq_vec_plot = np.logspace(-4., 4., num=10*(N_freqs-1), endpoint=True)\n", - "tau_plot = 1/freq_vec_plot\n", - "gamma_fct_plot = (R_ct)/(2.*pi)*sin((1.-phi)*pi)/(np.cosh(phi*np.log(tau_plot/tau_0))-cos((1.-phi)*pi)) # for plotting only\n", - "\n", - "# we will add noise to the impedance computed analytically\n", - "rng = np.random.seed(214975)\n", - "sigma_n_exp = 1.\n", - "Z_exp = Z_exact + sigma_n_exp*(np.random.normal(0, 1, N_freqs)+1j*np.random.normal(0, 1, N_freqs))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2) Show the synthetic impedance in the Nyquist plot - this is similar to Figure 7 (a)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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AE45w8NZdzm4dy8bzzmH6449lmQyOZao9k1IUDcDzTgLeWYr63cXXEDfBRewePFi6uvrqa+v5/jjj+eUU06htrZ20jH9/f18+MNlm6jXFKmoGpeIjAL/paqn+BdScazG5YONGyEScZJNesKprXUe0SisXp21CFXlpZdeIh6PsyoSYd6BAzlPu5PJfV8mSgKLcpZ0qKww8HlgDXAY8DqwQoSdHn7vly1bxrZt2zyczZRCyWpcZhoaGHCSVqbLulQii0TGXYqpKi+++CKxWIx4PE4sFiMWi/HKK68AMOLx1As97HNYHmWdC0SBWmCOu/1w8JS0gLH4TfWxxGXG83BZx/AwO77yFX5w8sk89thjxGIxsnX83Y23WtLrGbbNnj2bUCjE4sWLCYVC7I3HWTCSOxXuwUlaCzycN5svfvGLvPvd72bVqlXMnTu3yNKMb6ZqtffyAEaBp4spw+9HNd5VTLnnnnt0y5YtlQ4ju8MOG3+nbopH0plc0tPjZtD9Oco7OGuWJj7wAX300Uf1ySef1K1bt+ru3bt1dHR0fHyXXz75bmKGsrYfdZQerKnJ+LnXuNMfixYt0i9edJFuOe88HT3sMFUR5//q8stVN22qzM9qmiPLXUVLXGV09tln669//etKh5GdiKfEddDDl33evHn6jne8Q7++Zo0emDMne5l1dd4SwKZNzr65ylqwYMrPC0lc54K+niEBjxbRBcNkly1x2aViGb322mtU/ZCkhQth9+6cu028rKurq+OMM86gqamJpqYmGhsbOfnkk5k92/0V++hHczf4e7lb2dDg7JurrPPOy12WR2GmvuwUN4aRiy5CnnySmpNO8u2801EymRybn663t5eOjo6xVcTzMlVG8/LAalx5Wbp0qW7btq3SYWT03HPP6Te/+U29u74+52XdftAfiOi5556rt9xyiz711FN68ODB3CfZtEl17VrVww9XralxnteuLexSK1dZWS55yePx93//9/rjefM8/Z/cVlenn/nMZ/R3v/vd5Etco6qqXV1dYx2wu7q6tK2tbcp9sUvFyhsZGdHZs2fr8PBwpUMZp7+/Xz/ykY+oiCigYfeSKNuX9MCcOTrU31/p0LPL0haWT+JSVadNy8Plc3q736mnnqp33nln1f288xWLxTQSiWhvb++47UNDQ9rR0aE9PT3a0dGhsVgs77LXrVuXdRSJ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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Nyquist plot of the impedance\n", - "plt.plot(np.real(Z_exact), -np.imag(Z_exact), linewidth=4, color=\"black\", label=\"exact\")\n", - "plt.plot(np.real(Z_exp), -np.imag(Z_exp), \"o\", markersize=10, color=\"red\", label=\"synth exp\")\n", - "plt.plot(np.real(Z_exp[20:60:10]), -np.imag(Z_exp[20:60:10]), 's', markersize=10, color=\"black\")\n", - "\n", - "plt.rc('text', usetex=True)\n", - "plt.rc('font', family='serif', size=15)\n", - "plt.rc('xtick', labelsize=15)\n", - "plt.rc('ytick', labelsize=15)\n", - "plt.legend(frameon=False, fontsize = 15)\n", - "plt.axis('scaled')\n", - "\n", - "plt.xticks(range(10, 70, 10))\n", - "plt.yticks(range(0, 60, 10))\n", - "plt.gca().set_aspect('equal', adjustable='box')\n", - "plt.xlabel(r'$Z_{\\rm re}/\\Omega$', fontsize = 20)\n", - "plt.ylabel(r'$-Z_{\\rm im}/\\Omega$', fontsize = 20)\n", - "# label the frequency points\n", - "plt.annotate(r'$10^{-2}$', xy=(np.real(Z_exp[20]), -np.imag(Z_exp[20])), \n", - " xytext=(np.real(Z_exp[20])-2, 10-np.imag(Z_exp[20])), \n", - " arrowprops=dict(arrowstyle=\"-\",connectionstyle=\"arc\"))\n", - "plt.annotate(r'$10^{-1}$', xy=(np.real(Z_exp[30]), -np.imag(Z_exp[30])), \n", - " xytext=(np.real(Z_exp[30])-2, 6-np.imag(Z_exp[30])), \n", - " arrowprops=dict(arrowstyle=\"-\",connectionstyle=\"arc\"))\n", - "plt.annotate(r'$1$', xy=(np.real(Z_exp[40]), -np.imag(Z_exp[40])), \n", - " xytext=(np.real(Z_exp[40]), 10-np.imag(Z_exp[40])), \n", - " arrowprops=dict(arrowstyle=\"-\",connectionstyle=\"arc\"))\n", - "plt.annotate(r'$10$', xy=(np.real(Z_exp[50]), -np.imag(Z_exp[50])), \n", - " xytext=(np.real(Z_exp[50])-1, 10-np.imag(Z_exp[50])), \n", - " arrowprops=dict(arrowstyle=\"-\",connectionstyle=\"arc\"))\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3) Obtain the optimal hyperparameters of the GP-DRT model by minimizing the negative marginal log likelihood (NMLL)\n", - "\n", - "We constrain the kernel to be a squared exponential, _i.e._\n", - "\n", - "$$\n", - "k(\\xi, \\xi^\\prime) = \\sigma_f^2 \\exp\\left(-\\frac{1}{2 \\ell^2}\\left(\\xi-\\xi^\\prime\\right)^2 \\right)\n", - "$$\n", - "\n", - "and modify its two parameters, $\\sigma_f$ and $\\ell$ as well as the noise level $\\sigma_n$. Therefore, the vector of hyperparameters of the GP-DRT is assumed to be $\\boldsymbol \\theta = \\begin{pmatrix} \\sigma_n, \\sigma_f, \\ell \\end{pmatrix}^\\top$.\n", - "\n", - "Following the same derivation from the article we can write that\n", - "\n", - "$$\n", - "\\log p(\\mathbf Z^{\\rm exp}_{\\rm im}|\\boldsymbol \\xi, \\boldsymbol \\theta)= - \\frac{1}{2} {\\mathbf Z^{\\rm exp}_{\\rm im}}^\\top \\left(\\mathcal L^2_{\\rm im} \\mathbf K +\\sigma_n^2\\mathbf I \\right)^{-1} \\mathbf Z^{\\rm exp}_{\\rm im} -\\frac{1}{2} \\log \\left| \\mathcal L^2_{\\rm im} \\mathbf K+\\sigma_n^2\\mathbf I \\right| - \\frac{N}{2} \\log 2\\pi\n", - "$$\n", - "\n", - "We will call $L(\\boldsymbol \\theta)$ the negative (and shifted) MLL (NMLL):\n", - "$$\n", - "L(\\boldsymbol \\theta) = - \\log p(\\mathbf Z^{\\rm exp}_{\\rm im}|\\boldsymbol \\xi, \\boldsymbol \\theta) - \\frac{N}{2} \\log 2\\pi\n", - "$$\n", - "\n", - "the experimental evidence is maximized for\n", - "\n", - "$$\n", - "\\boldsymbol \\theta = \\arg \\min_{\\boldsymbol \\theta^\\prime}L(\\boldsymbol \\theta^\\prime)\n", - "$$\n", - "\n", - "The above minimization problem is solved using the `optimize` method provided by `scipy` package" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "sigma_n, sigma_f, ell\n", - "0.8903599 5.0014151 1.0120875\n", - "0.8136354 5.0035337 1.0291912\n", - "0.8291863 5.0357867 1.2588671\n", - "0.8303934 5.0832376 1.2117780\n", - "0.8304486 5.2060758 1.2283661\n", - "0.8305189 5.3874411 1.2524154\n", - "0.8305232 5.4069003 1.2546652\n", - "0.8305262 5.4070982 1.2546891\n", - "0.8305266 5.4070919 1.2546867\n", - "Optimization terminated successfully.\n", - " Current function value: 53.657989\n", - " Iterations: 9\n", - " Function evaluations: 11\n", - " Gradient evaluations: 153\n", - " Hessian evaluations: 0\n" - ] - } - ], - "source": [ - "# initialize the parameter for global 3D optimization to maximize the marginal log-likelihood as shown in eq (31)\n", - "sigma_n = sigma_n_exp\n", - "sigma_f = 5.\n", - "ell = 1.\n", - "\n", - "theta_0 = np.array([sigma_n, sigma_f, ell])\n", - "seq_theta = np.copy(theta_0)\n", - "def print_results(theta):\n", - " global seq_theta\n", - " seq_theta = np.vstack((seq_theta, theta))\n", - " print('{0:.7f} {1:.7f} {2:.7f}'.format(theta[0], theta[1], theta[2]))\n", - " \n", - "GP_DRT.NMLL_fct(theta_0, Z_exp, xi_vec)\n", - "GP_DRT.grad_NMLL_fct(theta_0, Z_exp, xi_vec)\n", - "print('sigma_n, sigma_f, ell')\n", - "\n", - "# minimize the NMLL L(\\theta) w.r.t sigma_n, sigma_f, ell using the Newton-CG method as implemented in scipy\n", - "res = minimize(GP_DRT.NMLL_fct, theta_0, args=(Z_exp, xi_vec), method='Newton-CG', \\\n", - " jac=GP_DRT.grad_NMLL_fct, callback=print_results, options={'disp': True})\n", - "\n", - "# collect the optimized parameters\n", - "sigma_n, sigma_f, ell = res.x" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 4) Core of the GP-DRT" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 4a) Compute matrices\n", - "Once we have identified the optimized parameters we can compute $\\mathbf K$, $\\mathcal L_{\\rm im} \\mathbf K$, and $\\mathcal L^2_{\\rm im} \\mathbf K$, which are given in equation `(18)` in the article" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "K = GP_DRT.matrix_K(xi_vec, xi_vec, sigma_f, ell)\n", - "L_im_K = GP_DRT.matrix_L_im_K(xi_vec, xi_vec, sigma_f, ell)\n", - "L2_im_K = GP_DRT.matrix_L2_im_K(xi_vec, xi_vec, sigma_f, ell)\n", - "Sigma = (sigma_n**2)*np.eye(N_freqs)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 4b) Factorize the matrices and solve the linear equations\n", - "We are computing\n", - "$$\n", - "\\boldsymbol{\\gamma}|\\mathbf Z^{\\rm exp}_{\\rm im}\\sim \\mathcal N\\left( \\boldsymbol \\mu_{\\gamma|Z^{\\rm exp}_{\\rm im}}, \\boldsymbol \\Sigma_{\\gamma| Z^{\\rm exp}_{\\rm im}}\\right)\n", - "$$\n", - "\n", - "using \n", - "$$\n", - "\\begin{align}\n", - "\\boldsymbol \\mu_{\\gamma|Z^{\\rm exp}_{\\rm im}} &= \\mathcal L_{\\rm im} \\mathbf K\\left(\\mathcal L^2_{\\rm im} \\mathbf K+\\sigma_n^2\\mathbf I\\right)^{-1}\\mathbf Z^{\\rm exp}_{\\rm im} \\\\\n", - "\\boldsymbol \\Sigma_{\\gamma| Z^{\\rm exp}_{\\rm im}} &= \\mathbf K-\\mathcal L_{\\rm im} \\mathbf K\\left(\\mathcal L^2_{\\rm im} \\mathbf K+\\sigma_n^2\\mathbf I\\right)^{-1}\\mathcal L_{\\rm im} \\mathbf K^\\top\n", - "\\end{align}\n", - "$$\n", - "\n", - "The key ingredient is to do Cholesky factorization of $\\mathcal L^2_{\\rm im} \\mathbf K+\\sigma_n^2\\mathbf I$, _i.e._, `K_im_full`" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "# the matrix $\\mathcal L^2_{\\rm im} \\mathbf K + \\sigma_n^2 \\mathbf I$ whose inverse is needed\n", - "K_im_full = L2_im_K + Sigma\n", - "\n", - "# Cholesky factorization, L is a lower-triangular matrix\n", - "L = np.linalg.cholesky(K_im_full)\n", - "\n", - "# solve for alpha\n", - "alpha = np.linalg.solve(L, Z_exp.imag)\n", - "alpha = np.linalg.solve(L.T, alpha)\n", - "\n", - "# estimate the gamma of eq (21a), the minus sign, which is not included in L_im_K, refers to eq (65)\n", - "gamma_fct_est = -np.dot(L_im_K.T, alpha)\n", - "\n", - "# covariance matrix\n", - "inv_L = np.linalg.inv(L)\n", - "inv_K_im_full = np.dot(inv_L.T, inv_L)\n", - "\n", - "# estimate the sigma of gamma for eq (21b)\n", - "cov_gamma_fct_est = K - np.dot(L_im_K.T, np.dot(inv_K_im_full, L_im_K))\n", - "sigma_gamma_fct_est = np.sqrt(np.diag(cov_gamma_fct_est))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 4c) Plot the obtained DRT against the analytical DRT" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# plot the DRT and its confidence region\n", - "plt.semilogx(freq_vec_plot, gamma_fct_plot, linewidth=4, color=\"black\", label=\"exact\")\n", - "plt.semilogx(freq_vec, gamma_fct_est, linewidth=4, color=\"red\", label=\"GP-DRT\")\n", - "plt.fill_between(freq_vec, gamma_fct_est-3*sigma_gamma_fct_est, gamma_fct_est+3*sigma_gamma_fct_est, color=\"0.4\", alpha=0.3)\n", - "plt.rc('text', usetex=True)\n", - "plt.rc('font', family='serif', size=15)\n", - "plt.rc('xtick', labelsize=15)\n", - "plt.rc('ytick', labelsize=15)\n", - "plt.axis([1E-4,1E4,-5,25])\n", - "plt.legend(frameon=False, fontsize = 15)\n", - "plt.xlabel(r'$f/{\\rm Hz}$', fontsize = 20)\n", - "plt.ylabel(r'$\\gamma/\\Omega$', fontsize = 20)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 4d) Predict the $\\gamma$ and the imaginary part of the GP-DRT impedance\n", - "\n", - "This part is explained in Section `2.3.3` of the main article " - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "# initialize the imaginary part of impedance vector\n", - "Z_im_vec_star = np.empty_like(xi_vec_star)\n", - "Sigma_Z_im_vec_star = np.empty_like(xi_vec_star)\n", - "\n", - "gamma_vec_star = np.empty_like(xi_vec_star)\n", - "Sigma_gamma_vec_star = np.empty_like(xi_vec_star)\n", - "\n", - "# calculate the imaginary part of impedance at each $\\xi$ point for the plot\n", - "for index, val in enumerate(xi_vec_star):\n", - " xi_star = np.array([val])\n", - "\n", - " # compute matrices shown in eq (18), k_star corresponds to a new point\n", - " k_star = GP_DRT.matrix_K(xi_vec, xi_star, sigma_f, ell)\n", - " L_im_k_star = GP_DRT.matrix_L_im_K(xi_vec, xi_star, sigma_f, ell)\n", - " L2_im_k_star = GP_DRT.matrix_L2_im_K(xi_vec, xi_star, sigma_f, ell)\n", - " k_star_star = GP_DRT.matrix_K(xi_star, xi_star, sigma_f, ell)\n", - " L_im_k_star_star = GP_DRT.matrix_L_im_K(xi_star, xi_star, sigma_f, ell)\n", - " L2_im_k_star_star = GP_DRT.matrix_L2_im_K(xi_star, xi_star, sigma_f, ell)\n", - "\n", - " # compute Z_im_star mean and standard deviation using eq (26)\n", - " Z_im_vec_star[index] = np.dot(L2_im_k_star.T, np.dot(inv_K_im_full, Z_exp.imag))\n", - " Sigma_Z_im_vec_star[index] = L2_im_k_star_star-np.dot(L2_im_k_star.T, np.dot(inv_K_im_full, L2_im_k_star))\n", - " \n", - " # compute Z_im_star mean and standard deviation\n", - " gamma_vec_star[index] = -np.dot(L_im_k_star.T, np.dot(inv_K_im_full, Z_exp.imag))\n", - " Sigma_gamma_vec_star[index] = k_star_star-np.dot(L_im_k_star.T, np.dot(inv_K_im_full, L_im_k_star))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 4e) Plot the imaginary part of the GP-DRT impedance together with the exact one and the synthetic experiment" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.semilogx(freq_vec_star, -np.imag(Z_exact), \":\", linewidth=4, color=\"blue\", label=\"exact\")\n", - "plt.semilogx(freq_vec, -Z_exp.imag, \"o\", markersize=10, color=\"black\", label=\"synth exp\")\n", - "plt.semilogx(freq_vec_star, -Z_im_vec_star, linewidth=4, color=\"red\", label=\"GP-DRT\")\n", - "plt.fill_between(freq_vec_star, -Z_im_vec_star-3*np.sqrt(abs(Sigma_Z_im_vec_star)), -Z_im_vec_star+3*np.sqrt(abs(Sigma_Z_im_vec_star)), alpha=0.3)\n", - "plt.rc('text', usetex=True)\n", - "plt.rc('font', family='serif', size=15)\n", - "plt.rc('xtick', labelsize=15)\n", - "plt.rc('ytick', labelsize=15)\n", - "plt.axis([1E-4,1E4,-5,25])\n", - "plt.legend(frameon=False, fontsize = 15)\n", - "plt.xlabel(r'$f/{\\rm Hz}$', fontsize = 20)\n", - "plt.ylabel(r'$-Z_{\\rm im}/\\Omega$', fontsize = 20)\n", - "plt.show()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.5" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/tutorials/ex1_simple_ZARC_model.ipynb b/tutorials/ex1_simple_ZARC_model.ipynb index 9a40158..a51a933 100644 --- a/tutorials/ex1_simple_ZARC_model.ipynb +++ b/tutorials/ex1_simple_ZARC_model.ipynb @@ -63,7 +63,9 @@ "$$\\begin{align}\n", "\\mathbf \\mu_{\\gamma|Z^{\\rm exp}_{\\rm im}} &= \\mathcal L_{\\rm im} \\mathbf K \\left(\\mathcal L^2_{\\rm im} \\mathbf K + \\sigma_n^2 \\mathbf I \\right)^{-1} \\mathbf Z^{\\rm exp}_{\\rm im} \\\\\n", "\\mathbf \\Sigma_{\\gamma| Z^{\\rm exp}_{\\rm im}} &= \\mathbf K- \\mathcal L_{\\rm im} \\mathbf K \\left(\\mathcal L^2_{\\rm im} \\mathbf K + \\sigma_n^2 \\mathbf I \\right)^{-1}\\mathcal L_{\\rm im} \\mathbf K^\\top\n", - "\\end{align}$$" + "\\end{align}$$\n", + "\n", + "The above formulas depend on 1) the kernel, $k(\\xi, \\xi^\\prime)$; 2) the noise level, $\\sigma_n$; and 3) the experimental data, $\\mathbf Z^{\\rm exp}_{\\rm im}$ (at the log-frequencies $\\mathbf \\xi$). " ] }, { @@ -106,17 +108,15 @@ "metadata": {}, "outputs": [], "source": [ - "# number of frequencies\n", - "N_freqs = 81\n", - "\n", "# define the frequency range\n", + "N_freqs = 81\n", "freq_vec = np.logspace(-4., 4., num=N_freqs, endpoint=True)\n", "xi_vec = np.log(freq_vec)\n", "tau = 1/freq_vec\n", "\n", "# define the frequency range used for prediction\n", "# note: we could have used other values\n", - "freq_vec_star = np.logspace(-4., 4., num=N_freqs, endpoint=True)\n", + "freq_vec_star = np.logspace(-4., 4., num=81, endpoint=True)\n", "xi_vec_star = np.log(freq_vec_star)\n", "\n", "# parameters for ZARC model, the impedance and analytical DRT are calculated as the above equations\n", @@ -137,7 +137,7 @@ "# we will add noise to the impedance computed analytically\n", "rng = np.random.seed(214975)\n", "sigma_n_exp = 1.\n", - "Z_exp = Z_exact + (sigma_n_exp**2)*(np.random.normal(0, 1, N_freqs)+1j*np.random.normal(0, 1, N_freqs))" + "Z_exp = Z_exact + sigma_n_exp*(np.random.normal(0, 1, N_freqs)+1j*np.random.normal(0, 1, N_freqs))" ] }, { @@ -154,7 +154,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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AE45w8NZdzm4dy8bzzmH6449lmQyOZao9k1IUDcDzTgLeWYr63cXXEDfBRewePFi6uvrqa+v5/jjj+eUU06htrZ20jH9/f18+MNlm6jXFKmoGpeIjAL/paqn+BdScazG5YONGyEScZJNesKprXUe0SisXp21CFXlpZdeIh6PsyoSYd6BAzlPu5PJfV8mSgKLcpZ0qKww8HlgDXAY8DqwQoSdHn7vly1bxrZt2zyczZRCyWpcZhoaGHCSVqbLulQii0TGXYqpKi+++CKxWIx4PE4sFiMWi/HKK68AMOLx1As97HNYHmWdC0SBWmCOu/1w8JS0gLH4TfWxxGXG83BZx/AwO77yFX5w8sk89thjxGIxsnX83Y23WtLrGbbNnj2bUCjE4sWLCYVC7I3HWTCSOxXuwUlaCzycN5svfvGLvPvd72bVqlXMnTu3yNKMb6ZqtffyAEaBp4spw+9HNd5VTLnnnnt0y5YtlQ4ju8MOG3+nbopH0plc0tPjZtD9Oco7OGuWJj7wAX300Uf1ySef1K1bt+ru3bt1dHR0fHyXXz75bmKGsrYfdZQerKnJ+LnXuNMfixYt0i9edJFuOe88HT3sMFUR5//q8stVN22qzM9qmiPLXUVLXGV09tln669//etKh5GdiKfEddDDl33evHn6jne8Q7++Zo0emDMne5l1dd4SwKZNzr65ylqwYMrPC0lc54K+niEBjxbRBcNkly1x2aViGb322mtU/ZCkhQth9+6cu028rKurq+OMM86gqamJpqYmGhsbOfnkk5k92/0V++hHczf4e7lb2dDg7JurrPPOy12WR2GmvuwUN4aRiy5CnnySmpNO8u2801EymRybn663t5eOjo6xVcTzMlVG8/LAalx5Wbp0qW7btq3SYWT03HPP6Te/+U29u74+52XdftAfiOi5556rt9xyiz711FN68ODB3CfZtEl17VrVww9XralxnteuLexSK1dZWS55yePx93//9/rjefM8/Z/cVlenn/nMZ/R3v/vd5Etco6qqXV1dYx2wu7q6tK2tbcp9sUvFyhsZGdHZs2fr8PBwpUMZp7+/Xz/ykY+oiCigYfeSKNuX9MCcOTrU31/p0LPL0haWT+JSVadNy8Plc3q736mnnqp33nln1f288xWLxTQSiWhvb++47UNDQ9rR0aE9PT3a0dGhsVgs77LXrVuXdRSJ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\n", "text/plain": [ "
" ] @@ -168,7 +168,7 @@ "source": [ "# Nyquist plot of the impedance\n", "plt.plot(np.real(Z_exact), -np.imag(Z_exact), linewidth=4, color=\"black\", label=\"exact\")\n", - "plt.plot(np.real(Z_exp), -np.imag(Z_exp), \"o\", markersize=10, color=\"red\", label=\"synthetic experiment\")\n", + "plt.plot(np.real(Z_exp), -np.imag(Z_exp), \"o\", markersize=10, color=\"red\", label=\"synth exp\")\n", "plt.plot(np.real(Z_exp[20:60:10]), -np.imag(Z_exp[20:60:10]), 's', markersize=10, color=\"black\")\n", "\n", "plt.rc('text', usetex=True)\n", @@ -205,7 +205,32 @@ "source": [ "## 3) Obtain the optimal hyperparameters of the GP-DRT model by minimizing the negative marginal log likelihood (NMLL)\n", "\n", - "More needed, JP, please add" + "We constrain the kernel to be a squared exponential, _i.e._\n", + "\n", + "$$\n", + "k(\\xi, \\xi^\\prime) = \\sigma_f^2 \\exp\\left(-\\frac{1}{2 \\ell^2}\\left(\\xi-\\xi^\\prime\\right)^2 \\right)\n", + "$$\n", + "\n", + "and modify its two parameters, $\\sigma_f$ and $\\ell$ as well as the noise level $\\sigma_n$. Therefore, the vector of hyperparameters of the GP-DRT is assumed to be $\\boldsymbol \\theta = \\begin{pmatrix} \\sigma_n, \\sigma_f, \\ell \\end{pmatrix}^\\top$.\n", + "\n", + "Following the same derivation from the article we can write that\n", + "\n", + "$$\n", + "\\log p(\\mathbf Z^{\\rm exp}_{\\rm im}|\\boldsymbol \\xi, \\boldsymbol \\theta)= - \\frac{1}{2} {\\mathbf Z^{\\rm exp}_{\\rm im}}^\\top \\left(\\mathcal L^2_{\\rm im} \\mathbf K +\\sigma_n^2\\mathbf I \\right)^{-1} \\mathbf Z^{\\rm exp}_{\\rm im} -\\frac{1}{2} \\log \\left| \\mathcal L^2_{\\rm im} \\mathbf K+\\sigma_n^2\\mathbf I \\right| - \\frac{N}{2} \\log 2\\pi\n", + "$$\n", + "\n", + "We will call $L(\\boldsymbol \\theta)$ the negative (and shifted) MLL (NMLL):\n", + "$$\n", + "L(\\boldsymbol \\theta) = - \\log p(\\mathbf Z^{\\rm exp}_{\\rm im}|\\boldsymbol \\xi, \\boldsymbol \\theta) - \\frac{N}{2} \\log 2\\pi\n", + "$$\n", + "\n", + "the experimental evidence is maximized for\n", + "\n", + "$$\n", + "\\boldsymbol \\theta = \\arg \\min_{\\boldsymbol \\theta^\\prime}L(\\boldsymbol \\theta^\\prime)\n", + "$$\n", + "\n", + "The above minimization problem is solved using the `optimize` method provided by `scipy` package" ] }, { @@ -217,21 +242,21 @@ "name": "stdout", "output_type": "stream", "text": [ - "sigma_n, sigma_f, ell\n", - "0.890360, 5.001415, 1.012087\n", - "0.813635, 5.003534, 1.029191\n", - "0.829186, 5.035787, 1.258867\n", - "0.830393, 5.083237, 1.211778\n", - "0.830445, 5.206077, 1.228366\n", - "0.830528, 5.387435, 1.252416\n", - "0.830527, 5.406889, 1.254664\n", - "0.830527, 5.407084, 1.254687\n", - "0.830526, 5.407086, 1.254686\n", + "sigma_n, sigma_f, ell\n", + "0.8903599 5.0014151 1.0120875\n", + "0.8136354 5.0035337 1.0291912\n", + "0.8291863 5.0357867 1.2588671\n", + "0.8303934 5.0832376 1.2117780\n", + "0.8304486 5.2060758 1.2283661\n", + "0.8305189 5.3874411 1.2524154\n", + "0.8305232 5.4069003 1.2546652\n", + "0.8305262 5.4070982 1.2546891\n", + "0.8305266 5.4070919 1.2546867\n", "Optimization terminated successfully.\n", " Current function value: 53.657989\n", " Iterations: 9\n", " Function evaluations: 11\n", - " Gradient evaluations: 83\n", + " Gradient evaluations: 153\n", " Hessian evaluations: 0\n" ] } @@ -247,9 +272,11 @@ "def print_results(theta):\n", " global seq_theta\n", " seq_theta = np.vstack((seq_theta, theta))\n", - " print('%f, %f, %f' %(theta[0], theta[1], theta[2]))\n", + " print('{0:.7f} {1:.7f} {2:.7f}'.format(theta[0], theta[1], theta[2]))\n", " \n", - "print('sigma_n, sigma_f, ell')\n", + "GP_DRT.NMLL_fct(theta_0, Z_exp, xi_vec)\n", + "GP_DRT.grad_NMLL_fct(theta_0, Z_exp, xi_vec)\n", + "print('sigma_n, sigma_f, ell')\n", "\n", "# minimize the NMLL L(\\theta) w.r.t sigma_n, sigma_f, ell using the Newton-CG method as implemented in scipy\n", "res = minimize(GP_DRT.NMLL_fct, theta_0, args=(Z_exp, xi_vec), method='Newton-CG', \\\n", @@ -271,7 +298,7 @@ "metadata": {}, "source": [ "### 4a) Compute matrices\n", - "Once we have identified the optimized parameters we can compute $\\mathbf K$, $\\mathcal L_{\\rm im} \\mathbf K$, and $\\mathcal L^2_{\\rm im} \\mathbf K_{nm}$, which are given in equation (18) in the article" + "Once we have identified the optimized parameters we can compute $\\mathbf K$, $\\mathcal L_{\\rm im} \\mathbf K$, and $\\mathcal L^2_{\\rm im} \\mathbf K$, which are given in equation `(18)` in the article" ] }, { @@ -283,17 +310,28 @@ "K = GP_DRT.matrix_K(xi_vec, xi_vec, sigma_f, ell)\n", "L_im_K = GP_DRT.matrix_L_im_K(xi_vec, xi_vec, sigma_f, ell)\n", "L2_im_K = GP_DRT.matrix_L2_im_K(xi_vec, xi_vec, sigma_f, ell)\n", - "Sigma = (sigma_n**2)*np.eye(N_freqs)\n", - "\n", - "# in the next step we will need the inverse of the matrix $\\mathcal L^2_{\\rm im} \\mathbf K + \\sigma_n^2 \\mathbf I$ \n", - "K_im_full = L2_im_K + Sigma" + "Sigma = (sigma_n**2)*np.eye(N_freqs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### 4b) Factorize the matrices and solve the linear equations" + "### 4b) Factorize the matrices and solve the linear equations\n", + "We are computing\n", + "$$\n", + "\\boldsymbol{\\gamma}|\\mathbf Z^{\\rm exp}_{\\rm im}\\sim \\mathcal N\\left( \\boldsymbol \\mu_{\\gamma|Z^{\\rm exp}_{\\rm im}}, \\boldsymbol \\Sigma_{\\gamma| Z^{\\rm exp}_{\\rm im}}\\right)\n", + "$$\n", + "\n", + "using \n", + "$$\n", + "\\begin{align}\n", + "\\boldsymbol \\mu_{\\gamma|Z^{\\rm exp}_{\\rm im}} &= \\mathcal L_{\\rm im} \\mathbf K\\left(\\mathcal L^2_{\\rm im} \\mathbf K+\\sigma_n^2\\mathbf I\\right)^{-1}\\mathbf Z^{\\rm exp}_{\\rm im} \\\\\n", + "\\boldsymbol \\Sigma_{\\gamma| Z^{\\rm exp}_{\\rm im}} &= \\mathbf K-\\mathcal L_{\\rm im} \\mathbf K\\left(\\mathcal L^2_{\\rm im} \\mathbf K+\\sigma_n^2\\mathbf I\\right)^{-1}\\mathcal L_{\\rm im} \\mathbf K^\\top\n", + "\\end{align}\n", + "$$\n", + "\n", + "The key ingredient is to do Cholesky factorization of $\\mathcal L^2_{\\rm im} \\mathbf K+\\sigma_n^2\\mathbf I$, _i.e._, `K_im_full`" ] }, { @@ -302,10 +340,13 @@ "metadata": {}, "outputs": [], "source": [ + "# the matrix $\\mathcal L^2_{\\rm im} \\mathbf K + \\sigma_n^2 \\mathbf I$ whose inverse is needed\n", + "K_im_full = L2_im_K + Sigma\n", + "\n", "# Cholesky factorization, L is a lower-triangular matrix\n", "L = np.linalg.cholesky(K_im_full)\n", "\n", - "# solve the following\n", + "# solve for alpha\n", "alpha = np.linalg.solve(L, Z_exp.imag)\n", "alpha = np.linalg.solve(L.T, alpha)\n", "\n", @@ -315,9 +356,8 @@ "# covariance matrix\n", "inv_L = np.linalg.inv(L)\n", "inv_K_im_full = np.dot(inv_L.T, inv_L)\n", - "np.diag(np.dot(inv_K_im_full, K_im_full))\n", "\n", - "# estimate the sigma of gamma, from eq (21b)\n", + "# estimate the sigma of gamma for eq (21b)\n", "cov_gamma_fct_est = K - np.dot(L_im_K.T, np.dot(inv_K_im_full, L_im_K))\n", "sigma_gamma_fct_est = np.sqrt(np.diag(cov_gamma_fct_est))" ] @@ -336,7 +376,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -367,7 +407,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### 4d) Calculate the imaginary part of the GP-DRT impedance" + "### 4d) Predict the $\\gamma$ and the imaginary part of the GP-DRT impedance\n", + "\n", + "This part is explained in Section `2.3.3` of the main article " ] }, { @@ -418,7 +460,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ]