{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "

Undamped Response to Harmonic Direct-Force Inputs

\n", "

MCHE 485: Mechanical Vibrations

\n", "

Dr. Joshua Vaughan
\n", "joshua.vaughan@louisiana.edu
\n", "http://www.ucs.louisiana.edu/~jev9637/

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\n", "\t\"A
\n", " Figure 1: A Mass-Spring System \n", "

\n", "\n", "This notebook examines the frequency response of a simple mass-spring system like the one shown in Figure 1 to a harmonic, direct-force input.\n", "\n", "The equation of motion for the system is:\n", "\n", "\n", "$ \\quad m \\ddot{x} + kx = f $\n", "\n", "We could also write this equation in terms of the damping ratio, $\\zeta$, and natural frequency, $\\omega_n$.\n", "\n", "$ \\quad \\ddot{x} + \\omega_n^2x = \\frac{f}{m}$\n", "\n", "For information on how to obtain this equation, you can see the lectures at the [class website](http://www.ucs.louisiana.edu/~jev9637/MCHE485.html)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np # Grab all of the NumPy functions with nickname np" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# We want our plots to be displayed inline, not in a separate window\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Import the plotting functions \n", "import matplotlib.pyplot as plt " ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Define the System Parameters\n", "m = 1.0 # kg\n", "k = (2.0 * np.pi)**2. # N/m (Selected to give an undamped natrual frequency of 1Hz)\n", "wn = np.sqrt(k / m) # Natural Frequency (rad/s)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's use the closed-form, steady-state solution we developed in lecture:\n", "\n", "Assume:\n", "\n", "$ \\quad f(t) = \\bar{f} \\sin{\\omega t} $\n", "\n", "Then, the solution $x(t)$ should have the form:\n", "\n", "$ \\quad x(t) = \\bar{x} \\sin{\\omega t} $\n", "\n", "We can then find the amplitude of the frequency response, $ \\bar{x} $, as a function of of the frequency of the input, $ \\omega $, and the amplitude of the force, $ \\bar{f} $. \n", "\n", "$ \\quad \\bar{x} = \\frac{\\bar{f}}{m} \\left(\\frac{1}{\\omega_n^2 - \\omega^2}\\right) $\n", "\n", "So, \n", "\n", "$ \\quad x(t) = \\frac{\\bar{f}}{m} \\left(\\frac{1}{\\omega_n^2 - \\omega^2}\\right) \\sin{\\omega t} $\n", "\n", "or \n", "\n", "$ \\quad x(t) = \\frac{1}{m} \\left(\\frac{1}{\\omega_n^2 - \\omega^2} \\right) f(t) $\n", "\n", "So, $ \\left(\\frac{1/m}{\\omega_n^2 - \\omega^2} \\right) $ gives us the relationship between the input $ f(t) $ and the system response $ x(t) $. Let's plot that for a range of frequencies." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Set up input parameters\n", "w = np.linspace(1e-6, wn*3, 1000) # Frequency range for freq response plot, 0-3x wn with 1000 points in-between\n", "\n", "x_amp = (1/m) / (wn**2 - w**2)\n", "\n", "# Let's mask the discontinuity, so it isn't plotted\n", "pos = np.where(np.abs(x_amp) >= 5)\n", "x_amp[pos] = np.nan\n", "w[pos] = np.nan" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\ntjnsWX/M3ab13KGO5w65y22X+lr7ObDB927d2zH38aFWHV3W7azzsPuZjHmWHfGsf8K7zPM+un3O\nJ1vret7ztPs5e19jM5/VmurZyO/c3e5U67PsqOWEZ50jns98rGP7w51/G6v87o6vtG63z7nHa5zq\ntf1G/664cQvqFngB3LjF/aYVQpX7/CnPF6H3S/zACl/gJ9Xly9OzzfQKdRzq8tygQ9Wy2wrbtD6P\nU56ActZbuycgnOrY9niXz7G1bmc4Pawun/tGPqv11LOR37knLJ30LDvWY93WZ3WkY/kxSafX+Xfb\n9fcuJ9AdWcNrnOj1u3Y/m2Mb+bvixi2oG4f/gPB4xHrOsrLOIZIZacWmiQ9Zz6nudrGFw1jr8NYW\nca+c/lR3aLFv12oOWWvvc+8flHTQ8/m0Dl91zvk61fG89/6SBqPW6afVL+upx2utv/Nur99q1dH5\nPlrr3tWx/KjWN+l8TL1/V7d5fjcruUuLdXYqS8quox4gcIQqIDy6ffm0Gi72OjvuWyu8zjs3XVH/\nlK3Tn+ohLf+y78UbNlo9v1pagaPzM2t9TgfWsG6vZRuxnnpW2/+S37k7j2ysc31r7UPWWmOtvaNj\n+wdbNbXm17k/960zSO6zThPbJdywd7bL8iOdc97cwN+rHcM5cdYnQoZQBYTH6Q1s020kobVsqzZY\nfHD1VSQ5/auW6RjB8U6gt/KMRrmT3L3r9qMj+Kbq6bL5Wn7n7dfvFnI6uUGmFZ7udn8elbSWkaW1\nOKDuv8O7bEeDUPc9Lwtgrhlt3b9RoCtCFRBt3b6ol41qrGQ9l6Bx1182IrEe7hfvvauu6Bwe6sYb\njna5ozXdbjMd63Zr27CuVg493vd66tmI9nbr6ETeOszXusTQEXUc/tyEfV3C0z51D8Ef1fLDk15h\nu7oAYo5QBURbt0N8t7g/ux0a7OaWFZ5rfel5w8emu2Fb5xI1q+kaCju+0LvW3jrs1bFuZ6sJ72G1\ntVq2v/XUsxEdo1PLGmb2OOzmvTzSo5I6Lxu0FjM9QmS3v7lD6v77um2F0bV9GtDoITAohCog2pZc\n7NjtqzQm50u0c4Sg9eXWOdrRbsLY5Ut0yTatkZJNjLr0S2uka1k4cz+Dk13W7Ww2uVK3+PV+Vuup\nZyO6vr772sd7/D5a4feANnbo74K6j+SNdfTvOuTWteTEiC69zjrtV+9Dg8CWRKgCAuLO6TmgxS/m\nA26jx87g0np+f5eXGe9Yp9MjcubxHHYbPba+vDsnL0uLZ47d5dZxwP3i844WfLSjvm95tjkm50ty\n1TPIjDH7Os4+fKe7bC0jQ6u959ZI1xlJh9zGmUeMMYfcppYn5Xn/7rrn3HVPuusdkxOQeoXDdX1W\n66mn472t9Xd+j/se9rlNP495XvvOHu/BO+9pI53xz6j77+CUpJPGmBPGmJNuDbdJGncbkx43xpyW\nc5hwpTA3pv6dKAD4I+ieDty4xfEm58uoZ48mOV8oh7ssn3afO9blubOe1/c2szwiZ8LztJwvvJ49\npeQcpmn1YDqtxaacPXtIyflCnnZvx9fw3ru9L+9tX4/tjnRZd1orN6A85nk/0+7n0uv1T8gZGWl9\nTt4mnN36UW3ks1qxns38zjveg3V/rtjI012/a/PNNfwej6lHLyot9tlq97KSMyLW+nzX0hh0Q3Vx\n4xbkzVhrBSBa3BGCw5KO2rX1C0IXxpizcsLVbXb9c462PPfv5AG7gZ5c7qHeE9ba2wZQ15ic4NX3\n1wYGicN/ABAT3rMD3UPPhzYSqKT2BPnxzZzpuYKPqn9nIwK+IVQBQAy4o1JnPXPZ7tfaG632co+c\nANRva+3IDmwphCogmlojEnSk3pxVJ8WHSKttwzvdSfXnNhtc3FGu2/o5WuWeLbjSWYHAlkWoAiLE\nPcvPavEL9LgxZnozfZDiyD1zrXXCgCSdcOdXhVnrbMbDclpqdDsDdCPu1GJn9n5glAqhxUR1AMCm\nuHO19m12Mr8x5giBCmFGqAIAAOgDDv8BAAD0AaEKAACgDwhVAAAAfUCoAgAA6ANCFQAAQB/8f8Xf\nmtLeF1WrAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Make the figure pretty, then plot the results\n", "# \"pretty\" parameters selected based on pdf output, not screen output\n", "# Many of these setting could also be made default by the .matplotlibrc file\n", "fig = plt.figure(figsize=(6,4))\n", "ax = plt.gca()\n", "plt.subplots_adjust(bottom=0.2,left=0.15,top=0.96,right=0.96)\n", "plt.setp(ax.get_ymajorticklabels(),family='serif',fontsize=18)\n", "plt.setp(ax.get_xmajorticklabels(),family='serif',fontsize=18)\n", "ax.spines['right'].set_color('none')\n", "ax.spines['top'].set_color('none')\n", "ax.xaxis.set_ticks_position('bottom')\n", "ax.yaxis.set_ticks_position('left')\n", "ax.grid(True,linestyle=':',color='0.75')\n", "ax.set_axisbelow(True)\n", "\n", "plt.xlabel(r'Input Frequency $\\left(\\omega\\right)$',family='serif',fontsize=22,weight='bold',labelpad=10)\n", "plt.ylabel(r'$ \\frac{1}{m\\left(\\omega_n^2 - \\omega^2\\right)} $',family='serif',fontsize=22,weight='bold',labelpad=10)\n", "plt.ylim(-1.0,1.0)\n", "plt.xticks([1],['$\\omega = \\omega_n$'])\n", "plt.yticks([0])\n", "\n", "\n", "plt.plot(w/wn,x_amp,linewidth=2)\n", "\n", "# If you want to save the figure, uncomment the commands below. \n", "# The figure will be saved in the same directory as your IPython Notebook.\n", "# Save the figure as a high-res pdf in the current folder\n", "# plt.savefig('MassSpring_ForcedFreqResp_Amplitude.pdf',dpi=300)\n", "\n", "fig.set_size_inches(9,6) # Resize the figure for better display in the notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Magnitude of the Response\n", "We can also plot the magnitude of this." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x_mag = np.abs(x_amp)\n", "\n", "# Make the figure pretty, then plot the results\n", "# \"pretty\" parameters selected based on pdf output, not screen output\n", "# Many of these setting could also be made default by the .matplotlibrc file\n", "fig = plt.figure(figsize=(6,4))\n", "ax = plt.gca()\n", "plt.subplots_adjust(bottom=0.2,left=0.15,top=0.96,right=0.96)\n", "plt.setp(ax.get_ymajorticklabels(),family='serif',fontsize=18)\n", "plt.setp(ax.get_xmajorticklabels(),family='serif',fontsize=18)\n", "ax.spines['right'].set_color('none')\n", "ax.spines['top'].set_color('none')\n", "ax.xaxis.set_ticks_position('bottom')\n", "ax.yaxis.set_ticks_position('left')\n", "ax.grid(True,linestyle=':',color='0.75')\n", "ax.set_axisbelow(True)\n", "\n", "plt.xlabel(r'Input Frequency $\\left(\\omega\\right)$',family='serif',fontsize=22,weight='bold',labelpad=10)\n", "plt.ylabel(r'$\\left| \\frac{1}{m\\left(\\omega_n^2 - \\omega^2\\right)\\right|} $',family='serif',fontsize=22,weight='bold',labelpad=10)\n", "plt.ylim(0.0,0.25)\n", "plt.xticks([1],[r'$\\omega = \\omega_n$'])\n", "plt.yticks([0])\n", "\n", "\n", "plt.plot(w/wn, x_mag, linewidth=2)\n", "\n", "# If you want to save the figure, uncomment the commands below. \n", "# The figure will be saved in the same directory as your IPython Notebook.\n", "# Save the figure as a high-res pdf in the current folder\n", "# plt.savefig('MassSpring_ForcedFreqResp_Magnitude.pdf',dpi=300)\n", "\n", "fig.set_size_inches(9,6) # Resize the figure for better display in the notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Normalization\n", "Just as we did for seismic inputs, we can also normalize the frequency response by dividing both the numerator and denominator of the expression for $\\bar{x}$ by the natural frequency $ \\omega_n $. We find that:\n", "\n", "$ \\quad \\bar{x} = \\frac{\\bar{f}}{m \\omega_n^2 \\left( 1 - \\Omega^2\\right)}$\n", "\n", "As a final normalization step, we can normalize the amplitude by plotting $\\frac{m \\omega_n^2}{\\bar{f}} \\bar{x}$ as a function of $\\Omega$." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Set up input parameters\n", "wnorm = np.linspace(0,4,500) # Frequency range for freq response plot, 0-4 Omega with 500 points in-between\n", "\n", "x_amp = 1 / ((wn**2 * m) * (1 - wnorm**2))\n", "xnorm_amp = x_amp * (m * wn**2)\n", "\n", "# Let's mask the discontinuity, so it isn't plotted\n", "pos = np.where(np.abs(xnorm_amp) >= 100)\n", "xnorm_amp[pos] = np.nan\n", "wnorm[pos] = np.nan" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Make the figure pretty, then plot the results\n", "# \"pretty\" parameters selected based on pdf output, not screen output\n", "# Many of these setting could also be made default by the .matplotlibrc file\n", "fig = plt.figure(figsize=(6,4))\n", "ax = plt.gca()\n", "plt.subplots_adjust(bottom=0.2,left=0.15,top=0.96,right=0.96)\n", "plt.setp(ax.get_ymajorticklabels(),family='serif',fontsize=18)\n", "plt.setp(ax.get_xmajorticklabels(),family='serif',fontsize=18)\n", "ax.spines['right'].set_color('none')\n", "ax.spines['top'].set_color('none')\n", "ax.xaxis.set_ticks_position('bottom')\n", "ax.yaxis.set_ticks_position('left')\n", "ax.grid(True,linestyle=':',color='0.75')\n", "ax.set_axisbelow(True)\n", "\n", "plt.xlabel(r'Normalized Frequency $\\left(\\Omega\\right)$',family='serif',fontsize=22,weight='bold',labelpad=10)\n", "plt.ylabel(r'$\\frac{m \\omega_n^2}{\\bar{f}} \\bar{x}$',family='serif',fontsize=22,weight='bold',labelpad=10)\n", "plt.ylim(-4.0,4.0)\n", "plt.xticks([0,1],['0','1'])\n", "plt.yticks([0,1])\n", "\n", "plt.plot(wnorm,xnorm_amp,linewidth=2)\n", "\n", "# If you want to save the figure, uncomment the commands below. \n", "# The figure will be saved in the same directory as your IPython notebook.\n", "# Save the figure as a high-res pdf in the current folder\n", "# plt.savefig('MassSpring_ForcedFreqResp_NormAmp.pdf',dpi=300)\n", "\n", "fig.set_size_inches(9,6) # Resize the figure for better display in the notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Magnitude of the Response\n", "We can also plot the magnitude of this." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAGRCAYAAABbtdZEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt8HNV5P/7P2YtW0sqSLNnGxnZiCzBCgGJskwQISQFz\nCWkTQgzk3rQJdm7fpmm/hdBc2v6ahJomaZJeEkPyTUrbJGBDQtpAEm65QUrwDRGEMNgGDBgsrS62\npdVqd+f8/tiZ1Wq1K+1lZp/Zmc/79drXSrOzM8/us/Y+OufMOUprDSIiIiKqjYB0AERERER+wuKL\niIiIqIZYfBERERHVEIsvIiIiohpi8UVERERUQyy+iIiIiGqIxRcRERFRDbH4IiIiIqohFl9ERERE\nNcTiax6XXXaZBuDYzTAMR4/PW/W3kb/4S/3i8pV6/HvfdyS3Y3/3/+kXl6/Ux765Tfy18sYbb7zx\nVtWtJCy+5jE0NOTo8fv6+hw9PlVPx+MAANXcVNbzSs5tJJK5TyTKOj4REdUnFl/CVq5cKR0CzUNP\nWMVXc1nPKzW3yiy+NIsvIiJfYPElrLOzUzoEmke25auxvJavUnOrGhsz52HxRUTkCyy+hA0MDEiH\nQPMwJiYAlN/yVWpus8XX5GR5gRERUV1i8SUsGo1Kh0Dz0JOZlq9AU3ktX6Xmlt2ORET+wuJLGMd8\nuZ/OtnyVV3xxzBcRERXC4kvYoUOHpEOgeeh4pjtQldnyVWpus8XXJIsvIiI/YPElbHx8XDoEmoeu\ncMxXqbnlmC8iIn9h8SWsu7tbOgSag9Z6+mrHMlu+Ss5ttuWLxRcRkR+w+BIWi8WkQ6C5JJNAOg2E\nw1DhcFlPLTW3VlHH4ouIyB9YfAnjmC93y3Y5ltnqBZQx5svsdgSLLyIiX2DxJay3t1c6BJpDpUsL\nAaXn1irsDPNcRETkbSy+hCU4vYCrGeNWy1d5g+2B0nNrzR+mWXwREfkCiy9h/f390iHQHPRE5orF\nQEtL2c8tObfZqx1ZfBER+QGLL2E9PT3SIdActDldhIqW3/JVam4DTZxqgojIT1h8CYuY0wyQO2mr\n27G5/GWgSs5tdsB9Atowyj4PERHVFxZfwvr6+qRDoDkYZstXoIKWr1Jzq5TiRKtERD7C4ksY13Z0\nt+lux/JbvsrJreKgeyIi32DxJayzs1M6BJpDNcVXObnlRKtERP7B4kvYwMCAdAg0B6vbsdx1HYHy\ncsuWLyIi/2DxJSxaQYsK1Y41w32ggjyVk9vsmC8WX0REnsfiSxjHfLlbttuxgnm+KhrzxW5HIiLP\nY/EljGs7uptxvPJux3Jyy25HIiL/YPElbNxsWSF3ys5wX0G3Yzm5VY2ZOcFYfBEReR+LL2Hd3d3S\nIdAcqpnhvpzcsuWLiMg/WHwJi8Vi0iHQHLIz3FfQ8lVObjnmi4jIP1h8CeOYL3ebnmqi/OKrrDFf\n2asdWXwREXkdiy9hvb290iHQHKbHfJXf7VhObtntSETkHyy+hCUSCekQaA76eOUz3JeTWxZfRET+\nweJLWH9/v3QINIdq5vkqJ7dcWJuIyD9YfAnr6emRDoGK0Ol0phhSKlsclaOc3LLli4jIP1h8CYtE\nItIhUBHW0kKquRkqUP4/lXJyy+KLiMg/WHwJ6+vrkw6BitDHjwOobLwXUF5uVRPXdiQi8gsWX8K4\ntqN7GWbxFViwoKLnl7W2IxfWJiLyDRZfwjo7O6VDoCL0MbPla0H5g+2B8nJrrR2pJ1h8ERF5HYsv\nYQMDA9IhUBHG8WMAgEBLZS1f5eTWKr4Mc5wZERF5F4svYdEKxxOR87ItXy2V5aic3AbMGfR1nMUX\nEZHXsfgSxjFf7mW1fKkKW77KGvPVbF7tOM7ii4jI61h8CePaju5ltXwFKhzzVdbajtkxXyy+iIi8\njsWXsHFzBnVyH+OY1fJVWfFVTm6t6SxYfBEReR+LL2Hd3d3SIVARusqpJsrJbXaS1YkJaMOo6HxE\nRFQfWHwJi8Vi0iFQEUZ2wH1lLV/l5FYFg0BjZkZ8ru9IRORtLL6EccyXe2lrqokKW77KzW32ikd2\nPRIReRqLL2G9vb3SIVAR1bZ8lZvb7KB7jgMkIvI0Fl/CEomEdAhUxHTLV2XFV7m55RWPRET+wOJL\nWH9/v3QIVES25avCbsdyc6uiXGKIiMgPWHwJ6+npkQ6Bishe7Vhht2O5uVVN5hJD7HYkIvI0Fl/C\nIpGIdAhURHaerwpbvsrNbcDqduQSQ0REnsbiS1hfX590CFSA1jo78L3Slq9yczvd7cjii4jIy1h8\nCePaji41OQkkk0A4DFVh62S5uZ2+2pHFFxGRl7H4EtbZ2SkdAhVgdTkGWlsrPka5ueXVjkRE/sDi\nS9jAwIB0CFSAcfQoAEBVUXyVm1triSGDxRcRkaex+BIWNRdUJnfRY5niK9BWefFVbm4DXFybiMgX\nWHwJ45gvdzKOjgGortux4jFfLL6IiDyNxZcwru3oTsZRa8xXW8XHKDe3LL6IiPyBxZewcU6o6Uo6\nO+arsjm+gPJzm51qglc7EhF5GosvYd3d3dIhUAHWgPtquh3LzW0gmplPzBg/XvE5iYjI/Vh8CYvF\nYtIhUAF2FF/l5la1mAPuj7M1lIjIy1h8CeOYL3fSY5kB96qKqx3LHvNlzqRvHGfLFxGRl7H4Etbb\n2ysdAhUwPclq5QPuy81tdqoJjgMkIvI0Fl/CEomEdAhUgB3djuXm1mr50mz5IiLyNBZfwvr7+6VD\noAKsSVar6XYsN7fZbke2fBEReRqLL2E9PT3SIVAB2ZavBZVPNVFublVjIxAIAIkEdDJZ8XmJiMjd\nWHwJi0Qi0iFQAdMz3Fc+5qvc3Cql2PVIROQDLL6E9fX1SYdABWhzhvtquh0rya016J5dj0RE3sXi\nSxjXdnQfnUhAx+NAKJRd8qcSleSWLV9ERN7H4ktYZ2endAiUxzDn+Aq0t0MpVfFxKsmtNdGqwYlW\niYg8i8WXsIGBAekQKI8xOgoACLRVPt4LqCy31hJDmksMERF5FosvYVFzjA+5R7b4am+v6jiV5JZL\nDBEReR+LL2Ec8+U+VvGlqiy+KhrzFeUSQ0REXsfiSxjXdnQfY8Selq9Kchto4RJDRERex+JL2Di/\nZF3Hrm7HSnLLqx2JiLyPxZew7u5u6RAoj7audlxYXfFVSW45zxcRkfex+BIWi8WkQ6A8drV8VZJb\ntnwREXkfiy9hHPPlPtPFV3VTTVSSW2WuJWmYM+wTEZH3sPgS1tvbKx0C5Zme56u6lq9KchswlzPS\nx45WdW4iInIvFl/CEomEdAiUx65ux0pyG1iQKb6MY2z5IiLyKhZfwvr7+6VDoDx2FV+V5Fa1msXX\nGFu+iIi8isWXsJ6eHukQKI8xmrnaUVU55quS3Ga7HY+y+CIi8ioWX8IikYh0CJRDJ5OZqSYCgarX\ndqwktwGr5YvFFxGRZ7H4EtbX1ycdAuUwhocBAIGFC6GCwaqOVUlu1YIFgFLQx45Bp9NVnZ+IiNyJ\nxZcwru3oLkbMLL46O6s+VkVrOwYCnOuLiMjjWHwJ67ThS57skzYnRg10dlR9rEpzy65HIiJvY/El\nbGBgQDoEymEMm8VXR/VFcaW55RWPRETexuJLWNRcy4/cwep2DNrQ8lVpbnnFIxGRt7H4EsYxX+5i\nZLsdZcZ8AUAgu8TQWNUxEBGR+7D4Esa1Hd3FzuKr0tyq1swUF1zfkYjIm1h8CRsfH5cOgXKkrasd\nO6rvdqw0t+x2JCLyNhZfwrq7u6VDoBzWgPugDS1fleaWVzsSEXkbiy9hMbObi9xhep6v6lu+Ks3t\n9NWOHPNFRORFLL6EccyXu2THfC1aVPWxKs2t1fLFbkciIm9i8SWst7dXOgQy6XQaxsgIgMzyQtWq\nNLfZbsdjHHBPRORFLL6EJRIJ6RDIZIyMAFpDtbdDhUJVH6/S3HKSVSIib2PxJay/v186BDJZXY52\nDLYHKs8tr3YkIvI2Fl/Cenp6pEMgk52D7YHKc8urHYmIvI3Fl7BIJCIdApnsnGAVqDy32W5HznBP\nRORJLL6E9fX1SYdApnTMvkW1gcpzay0vpI8eg9balliIiMg9WHwJ49qO7mEM27eoNlB5blU4DNXc\nDBgGNFdAICLyHBZfwjpt6uKi6tnd7VhNbnnFIxGRd7H4EjYwMCAdApmmiy97Wr6qye30RKsc90VE\n5DUsvoRFo1HpEMiUXVS7s/rZ7YHqcssrHomIvIvFlzCO+XIPOxfVBqrL7fQVj5zlnojIa1h8CePa\nju5hHBkEAAQW2VN8VZNbTrRKRORdLL6EjfNqNlfQiUTmasdg0JZFtYHqcstuRyIi72LxJay7u1s6\nBAKQHjRbvRYvhgoGbTlmNblV5lxfxhgH3BMReQ2LL2Ex8wo7kpV++RUAQHDpCbYds5rcBha2AwCM\n0VG7wiEiIpdg8SWMY77cwThyBAAQPMG+4quqMV8LFwIAjBEWX0REXsPiS1hvb690CAQg/YrZ8rVk\niW3HrCa3gYWZucasWfeJiMg7WHwJSyQS0iEQgPTLLwMAAja2fFWT20CHWXyNsPgiIvIaFl/C+vv7\npUMgAIbV8rV0qW3HrCa3wQ62fBEReRWLL2E9PT3SIRByuh1tbPmqJreBDnPM1/CIXeEQEZFLsPgS\nFolEpEMgOFN8VZNb1doKBIPQx45BT03ZFhMREclj8SWsr69POgTCdPEVsHGqiWpyqwKBnCse2fpF\nROQlLL6EcW1HeToehx4dA8LhbMFjh2pzG+C4LyIiT2LxJazTpkWcqXLW7PbBJUugAvb9k6g2txz3\nRUTkTSy+hA0MDEiH4HvZLkcb5/gCqs8tW76IiLyJxZewaDQqHYLvGQ4sLQRUn1trotU0iy8iIk9h\n8SWMY77kOXGlI2DHmC+r25HFFxGRl7D4Esa1HeU5VXxVm9vsRKtc35GIyFNYfAkbHx+XDsH30ma3\no51LCwHV55ZLDBEReROLL2Hd3d3SIfje9NJC9hZf1eaWA+6JiLyJxZewWCwmHYLvpV58EQAQXLbM\n1uNWm1uO+SIi8iYWX8I45kuWNgykX3oJABBcscLWY1eb2+mWL87zRUTkJSy+hPX29kqH4GvG4CAw\nNYXAwoUINDfbeuxqc8tuRyIib2LxJSyRSEiH4GvpF8wux5X2tnoB1edWRaNAOAw9MQEdj9sUFRER\nSWPxJay/v186BF9LvfACAPu7HIHqc6uUmh73xekmiIg8g8WXsJ6eHukQfC1tFV/Ll9t+bDtya3U9\ncpZ7IiLvYPElLBKJSIfga1bxFXKg5cuO3FpLDHHcFxGRd7D4EtbX1ycdgq+lHBzzZUdug5xolYjI\nc1h8CePajrLSL1rdjvYXX3bkNjvmK8bii4jIK1h8Cevs7JQOwbe01tmrHUMr7B/zZUduA4sXAzCn\nxCAiIk9g8SVsYGBAOgTfMkZGocfHoVpaoNrabD++HbkNLlkCAEgfOVL1sYiIyB1YfAmLRqPSIfhW\ntstx5QoopWw/vh25DSzJtHylj7Dli4jIK1h8CeOYLznZKx0dGO8F2JNbq+XLYMsXEZFnsPgSxrUd\n5WRnt3dgvBdgT26DS04AAKQHWXwREXkFiy9h4+Pj0iH4lpOz2wP25DawKDNo3xgcgk6nqz4eERHJ\nY/ElrLu7WzoE33JydnvAntyqhobMLPeGASMWsyEqIiKSxuJLWIxfqGJSBw8CAEKrVzlyfLtyy0H3\nRETewuJLGMd8ydCGgdRzzwEAQqtXO3IOu3LLQfdERN7C4ktYb2+vdAi+lD58GJhMILB4MQItLY6c\nw67cBjjonojIU0JzPaiUaq1VIOXSWh+VjsEOiUQCTU1N0mH4TuqAs12OgH25DZrdjsYrLL6IiLyg\naPGllGoDsAuABlDqDJQhAO0ABh1+jlZK7dBa31Di/q7V39+P9evXS4fhO+nseC9nuhwB+3LLWe6J\niLylaPGltR4DcHINY/Glnp4e6RB8KVWD4suu3HLAPRGRt3DMl7BIJCIdgi/VoviyK7cccE9E5C0s\nvoT19fVJh+BLqYPPAnC2+LIrt4HFZrcjB9wTEXmCo8WXUmqVk8f3Aq7tWHs6nUbq+ecBAMHVqxw7\nj125DZ5gtny9cgRaa1uOSUREcmwtvpRSV+b8/E0A+5VSH8rb5yyl1Fo7z1vPOjs7pUPwnfSLLwJT\nUwgsPQGB5mbHzmNXblVLC1RTE3Q8Ds3lqIiI6p7dLV9n5/y8H8CHAdyfu4PWeg+Ak5RS/9fmc9el\ngYEB6RB8pxbjvQD7cquUmh50z+kmiIjqnt3F14ypIrTWt2itD+bvpLW+A8At+a1ifhSNRqVD8J1a\nFV925jZoTrRqHHnFtmMSEZEMu4uv3AEpO5RS31BKvb3gjpmpLHyPY75qL3XgWQDOF1925jbAub6I\niDzDyQH37QAuBnCHUiqtlPqZUur/KqUuVEq1mrPn+352Ua7tWHupp/cBAEInn+ToeezMbXDZUgBA\n+qXDth2TiIhkzLm8UJVuAHCV+fPZADYC+GtkijKrheyqAs/zlXEOoK655L5M8RVes8bR89iZ29Dy\n5QDMiwWIiKiu2V185Y75utccXA8AewDcDABKqS4AmwB0aa3vtPn8dae7u1s6BF8xRkdhvPwKVGMj\ngq96laPnsjO3Qav4eukl245JREQy7O52fDTn5/ZCO2itD2itb9Jaf1gpdaPN5687sVhMOgRfsVq9\nQmtOgQo4O8ewnbkNnrgMAJB+kcUXEVG9s/Xbx7yK0fr5H5VS/1BoTi9zzNeFAHxfeXDMV22lnrKK\nr1MdP5etY77Y7UhE5BmO/umvtf4UMnN6XZj30DUA7gPg7IjnOtDb2ysdgq9kx3t1O1982ZnbwKJF\nQEMDjJERGPG4bcclIqLac3xtR631HVrrB/K23YLMlZCfcvr8bpdIJKRD8JXkwFMAnB9sD9ibWxUI\nsOuRiMgjxBbW1lrfz7m+gP7+fukQfCVljfmqQcuX3bkNLjsRAJB+iV2PRET1rGbFl1IqXatz1ZOe\nnh7pEHwjHYvBGBqCamlB8MQTHT+f3bmdHvfFli8ionrmaPGllGrL/dXJc9WrSCQiHYJvZAfbn3IK\nlHL+42h3bkPLrZYvFl9ERPVs3uJLKbVaKfVzpdTTSqlv5Gy/SCl1W4H9VymlrjRnsF+olLrSfEjn\n70tAX1+fdAi+kdxnjveqQZcjYH9urdY6XvFIRFTfSmn5uh7ANgCXANitlLpNKdWqtb4fmVnr812F\nTCvXTchMrHqxuZ0tXwVwbcfaSfY/CQAIn1qb4svu3Aatli92OxIR1bVSZrjflTN/1y0AbjHXaLwF\nwHCB/e8zZ7a/I287W74K6OzslA7BN5KPPw4ACPeeWZPz2Z1ba8xXii1fRER1raQxX0qptUqpG82u\nRGitv4RMq1ehb5cuszhbZVuUHjYwMCAdgi/oqanpaSZOP70m57Q7t9lux8MvQWv+LUNEVK/mLb7M\nObk6AezUWh/N2X4HgIsKPKULwBiAT5ljxaxxYux2LCAajUqH4AvJffuAqSmEuroQaGmpyTntzm2g\npQWqrQ2YTMAYLtToTERE9aCkhbXN8V2Ftu8psPk+87Fb8ncvLzR/4Jiv2kg+/nsAQPjMM2p2Tidy\nGzzxRKTGxpB+8UUE2WVNRFSXqppqQin1jFLqUbOb8UNKqQu11nuKFGVUANd2rI3seK8zazPeC3Am\nt6EV5lxfz/NzQ0RUr0pq+ZrD+txZ6pVSZ5ndjNfndlHmUkqt1VrvrfK8njE+Pi4dgi9MmS1fDTUs\nvpzIbXDVKgBA6rnnbD82ERHVRlUtX/nLA+Vc5Viwm9K0EQCUUq3WAH4/6+7ulg7B83QqhZS51E/4\njNoMtgecyW1o1asBAKlnn7X92EREVBtOzHC/H8D6OR63Bt7fBGBrdqNPC7FYLCYdguelnnkGenIS\nwVe9CoH29pqd14nchl5tFV9s+SIiqlfVdjsCAJRS7wBwtvnrRchMtDqf/QC25/y+GcCX7Iinnhw6\ndIhzfTlsqs8c73VG7QbbA87kNmR2O6bZ7UhEVLdsKb7MaSfuUEqtRmaqiV0lPG0HgJvN5xwAAKXU\nAQC7tdbP2hFXPejt7ZUOwfOSezLXfzSsfU1Nz+tEboMrVgDBINIvvQSdSEBxbVAiorpja7ej1vog\ngBsxs0Ur36i1r9b6Eq31KQBuQKY78p0A7lNKxcyrKL+Rs06kJyUSCekQPG9qZ+ZvgYYNc/WG28+J\n3KpwGMEVywGtkeKVskREdanaqSauzVk42zIK4KRizykw/xe01rsBbNNaX621Pllr3YlMN+RuZNaU\nfMBcU3JVNfG6Ub85EJycYRw/juTAABAKoaHGrYxO5dYa95XmuC8iorpUVbejVUiZY75GAaxDptux\nlDFf+ce6I+/3PQD2ILOeJJRSbeZxv1VNzG7T09MjHYKnTe3ZCxgGwr1nQjU11fTcTuU2tGoVEr/6\nNa94JCKqU3aO+bLGbHUVmxG/SvcDuNeB44qKcMyOo6Z27gQANKzfUPNzO5XboHXFIwfdExHVpWq7\nHVvN2e2vVEq1mmO+diqlPmRTfLku0lrf4MBxRfX19UmH4GlTu3cDABrWr6v5uZ3KLef6IiKqb9UO\nuP8WMotoXwJgt1LqUQDXYo4xX5XKn9DVK7i2o3O0YWBql1l8bah9y5dTuc1ON8ExX0REdanabsdt\nZhejNS5rNYBNAG6vNjC/4Bxfzknt3w89NobA0qUILT+x5ud3KrfZbsdDh6DTaahg0JHzEBGRM6pt\n+ZoxXbg5fcQ/cmHt0g0MDEiH4FlTj/wOABARaPUCnMttoKkJgaUnAMkk0i+95Mg5iIjIOdWu7XiH\nOQXEBXYF5DfRaFQ6BM9KPPwwAKDhnNeLnN/J3IZWdwHILJ1ERET1pdoB97cDGAFwg1Jq2JwY9Ual\n1Fp7wvM+jvlyhtYaiYd/CwCIvOE8kRiczG34lJMBAKmnWXwREdWbarsdb9Naf9icqb4DmYlRhwFs\nqT40fzjEWcodkXr6aRiDgwgsWYLQSbZf/1ESJ3MbWrMGAJB8+mnHzkFERM6wZZ4vS87EqFSi8fFx\n6RA8KfFQpssxct65UEqJxOBkbkMns+WLiKheVdvydZ+5/uICW6Lxoe7ubukQPMka7xU591yxGJzM\nbXjNKQCA5NP7oLV27DxERGS/aouvrQA6AexRSj3th4Ww7RaLxaRD8BxtGNPjvc6TK76czG1gyRKo\n1lbo0TEYQ0OOnYeIiOxXbfG1y1oMG8AGAPchM+HqrMWzqTCO+bJfsr8fenQUweXLEXzVq8TicDK3\nSqnprsd9HPdFRFRPqp1q4hal1IVKqVVa6zGt9R3mAPxrCuwuM/DG5Xp7e6VD8JzEg78AAETOf4PY\neC/A+dxOdz2y+CIiqifVtnxBa/2A1vrZEvar+lxelEgkpEPwnMkHHgAANF50kWgcTuc2lJ1ugsUX\nEVE9YUEkrL+/XzoETzFGRzG1cxcQCiFy/htEY3E6t+FTMtNN8IpHIqL6wuJLWE9Pj3QInjL5y18C\nhoGG174WgQWyF+E6nVur5YvdjkRE9WXOeb7cfNWi1vqodAx2iEQi0iF4yuT9DwIAGi+SX/HK6dwG\nV6yAamyEceQIjJERBBYudPR8RERkj6LFl1KqDcAuABqlD5YPIbPY9qDDz9FKqR1a6xtK3N+1+vr6\nsHYtV2OygzYMJB40i68LLxSOxvncqkAAodO6kdyzF8knBxA59xzHzkVERPYpWnxprccAnFzDWHyJ\nazvaZ2r3HhjDwwiuWIHQKadIh1OT3IZ7Ts8UX088weKLiKhOcMyXsM7OTukQPGPy7rsBAI2XXSo6\nxYSlFrkNn54ZV5Z84gnHz0VERPZg8SVsYGBAOgRP0Fojfvc9AICmt1wuHE1GLXIbPv10AEDyCV41\nS0RUL1h8CYtGo9IheELy8ceRPnQIgSVL0LBhg3Q4AGqT2/Bp3YBSSO7bB80544iI6gKLL2Ec82WP\n+E8yXY5Nl10KFXDHx7oWuQ1EowitXg2kUpxygoioTrjjW8rHuLZj9bTWmDS7HBsvd0eXI1C73HLc\nFxFRfWHxJWx8fFw6hLqXfKIfqQMHEFi4EJFzXi8dTlatchs+4wwAHPdFRFQvWHwJ6+7ulg6h7sXv\nuAMA0PTWP4IKzTlvcE3VKrds+SIiqi8svoTFYjHpEOqaTqUw8aO7AADN73iHcDQz1Sq3uVc8asOo\nyTmJiKhyLL6EccxXdRIPPQTjyBEEV69GeN1Z0uHMUKvcBpcsQWDpCdDHjiF14GBNzklERJVj8SWs\nt7dXOoS6NrHjTgBA8zuudMXEqrlqmduGszKF59Tu3TU7JxERVYbFl7AE52aqmHHsGCbvyVzl2Hzl\n24Wjma2WubWKr+SePTU7JxERVYbFl7D+fl6hVqmJO38IHY+j4ZxzEHr1q6XDmaWWuW0wu1yn9uyt\n2TmJiKgyLL6E9fT0SIdQl7TWmPjP/wIARN/3HuFoCqtlbsO9vUAggGR/P4x4vGbnJSKi8rH4EhaJ\nRKRDqEvJPXuR7O9HoKMDTZddJh1OQbXMbSAaRejUU4F0GsnHH6/ZeYmIqHwsvoT19fVJh1CXxv/z\nPwEAzddcDeXSArbWuc12Pe7muC8iIjdj8SWMazuWLx2LYeKuzNxe0Xe/Wzia4mqdW6v4SnLcFxGR\nq7H4EtbZ2SkdQt0Zv/U/gMkEIhddhFDXaulwiqp1brPTTezaBa11Tc9NRESlY/ElbGBgQDqEuqIn\nJzH+3X8HACzYfK1wNHOrdW5Dp5wC1d6G9OHDSHPyXiIi12LxJSwajUqHUFcm7roLxtAQwj09aDjv\nXOlw5lTr3KpAAJHXvhYAkPjt/9b03EREVDoWX8I45qt02jBw/Js3AwBaNl/ruhnt80nktuH1rwcA\nTP0viy8iIrdi8SWMazuWbvLue5Datw/BE09E09veKh3OvCRyGzknU3wlHnmk5ucmIqLSsPgSNj4+\nLh1CXdCGgaNf/RoAoOVjH4VqaBCOaH4SuQ2ffjrUggVIP/c80i8drvn5iYhofiy+hHV3d0uHUBcm\n770XqSfymE1ZAAAgAElEQVSfRGDpCYi+8xrpcEoikVsVDKLh7LMBAAl2PRIRuRKLL2GxWEw6BNfT\nhoFjX/oKAGDBRz8K1dgoHFFppHIbef3rALD4IiJyKxZfwjjma37xH/4Iyf5+BJctQ/Td75IOp2RS\nuY2ccw4AIPHQQyLnJyKiubH4Etbb2ysdgqvpRAJH//FLAIAFf/WXUE1NwhGVTiq34d4zoVpbkX72\nOaSee04kBiIiKo7Fl7BEIiEdgquN3/ofSB86hNCpa9C8aZN0OGWRyq0KhRB5wxsAAJO/+KVIDERE\nVByLL2H9/f3SIbhWenAQR7+cGevVesMNUMGgcETlkcxt4wV/AABI/JLFFxGR27D4EtbT0yMdgmuN\nff6L0MeOIXLhhWjceJF0OGWTzG3kTW8CACQeehg6mRSLg4iIZmPxJSwSiUiH4EqJRx5BfMcOIBJB\n+9//netnsy9EMreh5ScidMop0MePY2rXLrE4iIhoNhZfwvr6+qRDcB2dSmH0058BACz46EcQWrVK\nNqAKSec28qY3AuC4LyIit2HxJYxrO852/FvfQurJAQRf9Sos+NhHpcOpmHRus+O+7n9ANA4iIpqJ\nxZewzs5O6RBcJfnUUzh6U2ZqifbP/31dTS2RTzq3kXPOgYpGkezvR4rzyRERuQaLL2EDAwPSIbiG\nTiYx8olPAokEmt/1TjRedKF0SFWRzq2KRNB44QUAgMmf/Vw0FiIimsbiS1g0GpUOwTWOfe3rSD7+\nOIIrVqDtbz4nHU7V3JDbxksvAQDEWXwREbkGiy9h0uOC3GJq124c+/o/A0ph4Ve/gsCCBdIhVc0N\nuW288EIgFMLUI48gPTwiHQ4REYHFlziu7QikYzEMb/kwkE6j5doPZdcmrHduyG2grQ2Rc88B0mkk\n7r9fOhwiIgKLL3Hj4+PSIYjS6TRGPvZ/kD58GA3r16P1hk9Jh2Qbt+S28dJLAQDxu+8WjoSIiAAW\nX+K6u7ulQxB17MtfQeLXv0agsxMd3/wGVEODdEi2cUtumy5/MxAIYPLBX8AYHZUOh4jI91h8CYvF\nYtIhiIn/z09w7GtfBwIBdPzbvyJ44jLpkGzlltwGlyxB5NxzgWQS8Xt+Kh0OEZHvsfgS5oZxQRIS\njz6K4T/7BACg9dM3IPKG84Qjsp+bctt0xdsAAPEf3SUcCRERsfgS1tvbKx1CzaUOHMTwn3wQSCQQ\nfd970bJli3RIjnBTbpvefBkQDiPx8MNIHzkiHQ4Rka+x+BKWSCSkQ6ip9MsvY+h974MxMoLIRReh\n7fN/X5eLZpfCTbkNtLdnlhsyDMR//N/S4RAR+RqLL2H9/f3SIdRMenAQQ9e8C+lnn0O490x0fONf\noUIh6bAc47bcNl1xBQBgYvsO4UiIiPyNxZewnp4e6RBqIh2LYeiadyL1zDMIndaNzv/6LwRcMAO8\nk9yW26ZLL4Fqb0Py97/H1O9/Lx0OEZFvsfgSFolEpENwXPqVVzKF11P7EFqzBot+8H0EOxZKh+U4\nt+VWNTai+corAQAT3/+BcDRERP7F4ktYX1+fdAiOSh08iMErrkTqyQGETj4Zi277PoKLFkmHVRNu\nzG30ne8EAEz88EfQ8bhwNERE/sTiS5gb1v9zytTjj2PwiiuRfv55hNe+Bot+eAeCS5ZIh1Uzbsxt\n+PQehM88E3psjHN+EREJYfElrLOzUzoER8R/cjeG3v4OGENDiLzxfCy6/TYEOzqkw6opt+Y2+u53\nAQDG//1W4UiIiPyJxZewgYEB6RBspQ0DR7/8FQxv3gIdj6Np0yZ0/vt3PT+4vhC35rbpHVdCtbZi\naudOTD3+uHQ4RES+w+JLWNRDRUl6eATDH/wQjn3ln4BAAK2f+ywWfvUrnlqvsRxuzW0gGkXz1VcB\nAMb/33eEoyEi8h8WX8LcOC6oEolHHsHgJZdi8uf3QrW1ofPW72LBls2enUC1FG7ObcsH/hhQChN3\n/Rhpl6xBSUTkFyy+hLlp/b9K6EQCR7fehKFNVyN9+DAa1q/Hkp/dg8YLLpAOTZybcxtavRqRCy4A\nEgmM3/of0uEQEfkKiy9h4+Pj0iFUbGrPHhx58+U49vV/BrRGy8c/hkV3bEfIxS0+teT23C7YshlA\npuvR4LQTREQ1w+JLWHd3t3QIZTNGRjD6mc9i8K1XZCZO7erCojt3oO2GT0GFw9LhuYbbc9tw3rkI\nr30NjOFhTPzgNulwiIh8g8WXsFgdjbfR6TTGb/0PvHL+mzD+ne8CAFo+vAVLfv5TRF77WtngXMjt\nuVVKYcHHPgYAOP7NbdDJpHBERET+wOJLmJvHBVm01ojfex8GL7scozf8NYyRETScey6W/PynaPvs\nZ6CamqRDdKV6yG3jZZcidNJJSL/wAibuvFM6HCIiX1Baa+kYXG3Dhg16586djh3fMAwEAu6sgbXW\nSPziFzj6pS8jufcxAEBw+XK0fe6zaHzL5b6+krEUbs5trok77sTIn30CwRUrcMKvfgHlsjUpiYjq\nSElfjO7/ZvC4RCIhHcIsOpVC/L//B4N/9DbE3vt+JPc+hsCiRWj7m8/hhF8+iKY/fAsLrxK4MbeF\nNF3xNoROXYP0Cy9g/Hvflw6HiMjzWHwJ6+/vlw4hyxgdxbFvfhOvnPsGDH/4I0ju2YNARwdaP/Np\nnPDbh9Cy+Vp2MZbBTbmdiwoG0XrdXwEAjn3t6zAmJoQjIiLytpB0AH7X09Mjen6dTiPxm99g4rbb\nEf/pzwCztSbU1YXoB/8UzVdt8uXSQHaQzm05Gi+9FOG1r0Fy72MY/3/fwYKPf0w6JCIiz+KYr3l4\nccyX1hrJPXsRv/tuxH90F9KHD2ceUAqR89+Alg9+EJELL4Cqg/FKblYvY74sk7/6FWLveg9UWxuW\nPvRrBBYulA6JiKjelDQmhy1fwvr6+rB27VrHz2PE45h65BFMPvAgJu++Z7rgAhB89avQfNVVaL5q\nE0IrVjgei1/UKrd2iZx/PiLnnYfEQw/h6Je+jPYvfF46JCIiT/JVy5dSah2AG7TWV5X6HKdbvmKx\nGDo7O20/rp6aQrK/H4lf/waTv/o1pnbuBKamso8Hly1D4+VvRtNbLkfD2WezlcsBTuXWScknn8SR\nS98MaI3F99yNhjNOlw6JiKiesOXLYhZd15i/dknGks+OL2edSiH13PNI9j2GqT2PIbl3L6Z+//vs\n+C0AgFII956JyBvfiCZzfA8LLmfVW+EFAOHTTkP0Ax/A+Le/jbHPfBaLfngHr2wlIrKZL4ovrfVu\nALvNImyjdDy5BgYGSlqGRk9OIn34MNKHX0b6pZeQevZZpJ5+BslnnkbqwMEZrVqWUFcXGs55PRrP\nPx8N552HYAfH8NRSqbl1m9a//CTid92FqUcfRfzOH6L5HVdKh0RE5Cm+KL7cKHXoEOI/+Qmig0M4\n2tycWdolmYROJGCMHYUxNgY9NgZjbAzG8DCMeZaqCS5fjvBppyF81lo0rDsLDb29CLS31+jVUCHR\nOr1KNNDWhta/vgGjf/GXGPv8F9B40YX8LBER2YjFl5DUwYM4+vdfQADAsVKeEAohuHQpgicuQ/DE\nExFcsQLhU05B6JSTETr5ZE4H4UIrV66UDqFizVdtwsT3f4CpRx/F6Of+Fh1f/6p0SEREnsFBPwUo\npTYrpXYqpXYePnw4u0bfoUOHMDAwACAzmHrv3r0wDAPxeBy7du1CPB6HYRjYu3dvdlHlgYGBgs8/\n1tKCibdfAeN970Xjxz+GY+99D5qu+yu0/s3ncPTPP4Hw1/4Ji+7cgfFv3Qzjf36MEw88g+SO2xG7\n8Yvo+Nd/QWrztdh38kkInXkmEoFA2eevNn4+f/7nW/vXY/zDIyNo//KXoCMRxO+4A/Gf/7yu4ufz\n+Xw+n8+XeH6p/Hi14y1a6/WlPsfpqx3rdVwQzc8LuT1+y7cw9rd/h8CSJTjhgfs49xcR0dy4tmM9\nqPcvZyrOC7mNfvBP0fC618I4cgSjn/ks/PTHGhGRU1h8CbOaN8l7vJBbFQhg4Ze/BNXUhPiP7sLE\nbbdJh0REVPdYfAmz+pPJe7yS29Dq1Wi/8YsAgNFPfwbJJ58UjoiIqL75rfjqkA4gX29vr3QI5BAv\n5bb5qk1ovuZqYDKB4Q9/FMb4uHRIRER1yxfFl1KqSym1FcBWAOuUUtuUUpul4wKARO4s9OQpXstt\n2xc+j9Cpa5B65hmMXnc9x38REVXIF8WX1vqA1vp6rfV6rbXSWm/RWt8sHRcA9Pf3S4dADvFabgNN\nTej45jegolHEf3QXjv/zv0iHRERUl3xRfLlZT0+PdAjkEC/mNrxmDRb+y9cBpXB0602I332PdEhE\nRHWHxZewSCQiHQI5xKu5bbrkErT+9Q0AgJE/+wSmHn9cOCIiovrC4ktYX1+fdAjkEC/ntuUjH0bz\nVZug43HE3vv+zOLuRERUEhZfwup5/T+am5dzq5RC+9Z/QOT882EMDWHoXe9G+vBh6bCIiOoCiy9h\nnZ2d0iGQQ7yeWxWJoOPbtyB81lqkX3gBQ+9+L9LDI9JhERG5HosvYdZCneQ9fshtIBpF5623IrRm\nDVL79iF2zTuRHh6WDouIyNVYfAmLRqPSIZBD/JLbYMdCLPrefyLU1YVkfz+Grroa6aEh6bCIiFyL\nxZcwL48L8js/5Ta4bBkW7bgdoVNOQWrgKQxtuppjwIiIimDxJcwr6//RbH7LbfCEEzIF2GndSD39\nNAbf9nYk9+2TDouIyHVYfAkb5xp5nuXH3AYXLcKi229Hw4YNSL/4IgavuBKJ3/1OOiwiIldh8SWs\nu7tbOgRyiF9zG+xYiEU/+B4aL70EemwMQ+98Nya275AOi4jINVh8CYvFYtIhkEP8nFvV1ISOW25G\n9I/fDyQSGPnzT2L0c38LnUxKh0ZEJI7FlzC/jQvyE7/nVgWDaP/iF9D+DzcC4TDGv/1tDL3rPUj7\nuCglIgJYfInr7e2VDoEcwtxmRN/3XizafhsCS5Zg6re/xeBllyPxyCPSYRERiWHxJSyRSEiHQA5h\nbqdFzj4bS+7+H4TXrUP6pZcwtOlqHL3pH9kNSUS+xOJLWH9/v3QI5BDmdqbgsmVYfOcOtPyfjwNa\n49jXvo7BKzch9dxz0qEREdUUiy9hPT090iGQQ5jb2VQ4jLZPXY9Ft9+G4LJlSO7ejSMXXYzjt3wL\nOp2WDo+IqCZYfAmLRCLSIZBDmNviIueegyX3/gxNb/0j6HgcY3/7dxh82xVIPvmkdGhERI5j8SWs\nr69POgRyCHM7t8DChej4xr+h4zvfRmDpUiT37MWRyy7H2I3/AOP4cenwiIgcw+JLmJ/W//Mb5rY0\nTZdcghMevB/R978PSKVw/F/+Fa+88U2Y2L4D2jCkwyMish2LL2GdnZ3SIZBDmNvSBVpb0X7jF7H4\nv3+M8FlrYbxyBCN//kkMvvVtnJaCiDyHxZewgYEB6RDIIcxt+RrWnYXFP74LC7/6TwgsWYLknr0Y\nunITht7zXkw99ph0eEREtmDxJSwajUqHQA5hbiujAgE0X7UJJ/z6l1jwF5+EamlB4he/xODlf4jY\nh65F8qmnpEMkIqqK0lpLx+BqGzZs0Dt37pQOg8i30sPDOP5v38D4d74LPTkJKIXGyy7Fgo98BA3r\n10mHR0SUS5WyE1u+hPl9/T8vY27tEezoQNtnPo0THv4Noh/4Y6ChAZP3/BSDb30bBq98B+L33seB\n+URUV1h8CRsfH5cOgRzC3NoreMIJaP/C57H0fx9Gy8c/BtXaiqlHfofhD/wJjly4Ece/810YR49K\nh0lENC92O86D3Y5E7mQcP47x//oejt98C4yXXwYAqOZmNL397Wj54/cjfDpXGCCimiup25HF1zyc\nLr5isRinJPAo5rY2dDKJyZ/9HMf//VZMPfxwdnv4rLVo3rQJTW99K4IdCwUjJCIf4ZivesBxQd7F\n3NaGCofR9IdvweLtt2HJg/cj+qd/ArVgAZJ79mLs05/By+vWI3btZsR/9jPoqSnpcImI2PI1H6db\nvgzDQCDAGtiLmFs5RjyOyZ/+FBM77kDiV78GzAH5gYUL0Xj55Wh6y5sROfdcqHBYOFIi8hh2O9rB\n6eIrHo+jqanJseOTHObWHdIvv4yJH/4IE9u3I/XUvux21d6GpksuQdNb3oLI+W+A4kLoRFQ9Fl92\ncLr42rVrF9avX+/Y8UkOc+suWmuk+p9E/O67Eb/7HqT25RRiLS2IvPGNaLzwAjRe8AcILl0qGCkR\n1TEWX3ZgyxdVirl1t+TTTyP+k7sxefc9SD7xxIzHwqefjsgFf4DGiy5Ew7p1UKGQUJREVGdYfNmB\nY76oUsxt/Ui98AISDzyIyQceQOI3D0HH49nH1IIFiLzudWg45/WInHcuwj09UMGgYLRE5GIsvuzg\ndPG1d+9erF271rHjkxzmtj7pyUkkfvc7TN7/ABIPPIjUgQMzHldtbYi8/nWInHsuGl73WoRPO40t\nY0RkYfFlB87zRZVibr0h9eJLmPrtb5F4+GEkHv4t0nlTiKimJoTXvgYN69ejYf06NKxfjyDzTuRX\nLL7swBnuiShX6tAhsxD7X0zt3In0s8/O2ie46tVoWLceDb1nInzmGQiffjoCCxbUPlgiqjUWX3Zw\nuvgaGBhAd3e3Y8cnOcytP6RjMUzt2o2pXbswtWsXknsfmzFmzBJctQoNZ56B8JlmQXbGGQh2dAhE\nTEQOYvFlB6eLr0OHDmHlypWOHZ/kMLf+pFMpJJ98ElO79yD5xBNIPv44kgNPAQVm1w8sXYrwqWsQ\nWrMG4VNPRXjNGoTWnMJWMqL6xeLLDux2JKJq6akpJPc9jeQTv0fycfP2xBMFW8gAIHjiiQiduiZT\njJ26BqGukxDqWo1ARweUKun/diKSweLLDmz5okoxtzQXnU4j/fzzSO7bh9RT+6bv9+8HEomCz1Gt\nrQitXoXQ6tXTt1WrEFy9mouHE7lDScUXr48WNj4+Lh0COYS5pbmoYDBbQOHSS7PbdSqF1HPPI7Xv\nKSSf2ofU008jdfAgUgefhT56FMnH+pB8rG/28drbEFq1CqEVKxFcsRzBlSumf16xAoGWllq+PCKa\nA1u+5sFuRyJyA601jOFhpA4cROrgQaQPHswWZamDB6HnKfZVeztCK1ciuHIFgsuXI7RiBYLLliG4\ndCmCy5YhsGQx5ysjqh67He3Aeb6oUswt1YrWGsbgIFLPPY/0C4eQfuFFpA69MP3zCy8U7crMCgQQ\nWLwoU4zl3ALWz8uWIrhkCVRrK8edERXHbsd6cOjQIX5BexRzS7WilEJwyRIElywBzt4w63FtGDCG\nhsyi7BDSL7yQub38snl7BcbgIIxXjsB45UjBbs2sSATBzk4EFi9CYNFiBBcvQmDRIgQXLcoUb4sW\nZx5bvBiB9nYoLrFFNAtbvubBtR2pUswt1ROdTCJ9ZBBGtiDLuR3O3BtHjszbvTlDMIhAZ2emMFu4\n0Ly1T//c0TFru2ptZcFG9YwtX/UgkUigqalJOgxyAHNL9USFwwgtPxFYfuKc+xnxOIyhIRiDQ0gP\nDWbuBwcz24aGkM55TI+OwThyBMaRI6UHEgwi0NaWU5iZxVpbG1RrKwLmTbVZP7dlf1bRKAs3qgss\nvoT19/dj/fr10mGQA5hb8qJAUxMCK1cCJUyjoqemYAzFkI4NwRgZybmNZu6Hh2dt08eOZbYPD1cQ\nXABqwYLpAq21FQGrMFuQ+Vm1tCDQ0gLVEkUgmrlXLS0IRDP3qqUFqrGR49rIUex2nIfT3Y7xeJyt\nIx7F3BKVT09NwRgdnV2sHR2DHjsK42jmpo8eg3F0LPOzub2sLtG5BINQ0WhOQZZTqEVbEMgv2KLN\nUE3NUE1NCDRn7lVzk3nfPH0fDNoTH7kZux3rQSQSkQ6BHMLcEpVPNTRMXzxQJp1KZVrOrAItW6yN\nZYq1sTEYx49Dj49DHz8Ow7zXx8dhjE/fYzIBffQo0keP2vviIhGopkYEmprzCrO8Qm1GEdecaYmL\nRKAaGzPHaGyEaozM2K4ikZn7sPvV1Vh8Cevr68PatWulwyAHMLdEtaVCIShzAH81dDI5ozgzjo9D\nW8VZoeJtYgI6HocxEYeOx6HjE+a2yexjemICSCSgEwmkR8dsesVzyCnGCt0j9/fGvAKuoQGINECF\nGzI/NzRANYShGiI5Pzdkfo80QIXD5n6RnMfM57G1ryAWX8K4/Ix3MbdE9UmFw7YUcbm01sDkJIz4\nZKY4Mwuy7L1VuE1MwLC2TU5O308mMveJBGDe6yL3MG86kWnBExUM5hRwZlEWDkNFzOIt+3Om2MsW\nd+Fw5rFQCAg3QIVDmd/D+Y/l/B4OZY4RDkGFprdZz1fhBiASQfikLtn3BCy+xHEeKO9ibonIopQC\nmpoQbGoC4Ow6nNowpouvQgWaWcih2ONTU8DUVKYFcGoKOjEFTCUyvyesx6Yy+yWs/RKZx6znTE1l\nisB0OrOAfDwON4wwDyxejGV7d0uH4a/iSym1GYB1CU2X1vomyXgAYGBgAN3d3dJhkAOYWyKSoAIB\nwBw7JklrDaRS08Vc9pbMFHPZn6cyxVsyOV3MJZOZQi6VBKaS0KlU5vcZj6Uyz02loJMpIDk1fZ9K\nmc9LmtsyPwfa20XfE4tvii+z8ILWeof5+zql1Dat9RbJuKLRqOTpyUHMLRH5mVJquluQ/x/O4Jvi\nC8AWrXV20iWt9W6l1EbJgACOC/Iy5paIiArxxbWoSql2AOsKPDQqXYAdOnRI8vTkIOaWiIgK8UvL\nVxeA0QLbh5Epyu7L3Wh2UW42fz2ulHrKwdgWARhy8Pgkh7klIvKXn2qtL5tvJ78UXx2YHmifaxTA\nrEvStNY3A7jZ6aAAQCm1U2u9oRbnotpibomIqBBfdDsSERERuYWfiq+OAtvaAcRqHQgRERH5l1+K\nr53IFFr5OgBIz7ZWk+5NEsHcEhHRLEprN8w56zyl1H4A67XWo7nbtNYnCYZFREREPuOXli8A2Arg\nBusXpdSsqxyJiIiInOabli8gO4XEAWS6IF2xvBB5k1JqO4DbrBUViIiILL4qvtxEKbUVwCbz120s\nBL3BbFHdCmAjgKtYfBERUT6/zPPlKkqpbQA2aK1PMmff36WUOkl6nUmqnJnHg5h5YUehiX2JiMjn\n/DTmyxXMlpHNAK4FAPMCgOsBbDYfozqktR7VWi/UWivwKkciIpoDi6/auwHILOxtbcjpmmLLlzfs\nlw6AiIjci8VX7W1CZtB/IVfXMhAiIiKqPRZfNWSOCwIKjwUaReGJYImIiMhDWHzVVpd5X2iR72Fg\nRoFGREREHsTiS0ahdSaJiIjIB1h81VaxsV6AWZDlLn9ERERE3sPiq4ZyCqtiXYssvIiIiDyOxVft\n7cD02C8A2XFe7QBuF4mIiIiIaobFV+1tA7KTrVo25D5Gde8k854XTxAR0Sxc21GAuehyl9Z6vbW8\nEID7uLxQ/TKL6fsxu+AaBbBTa31x7aMiIiI3YvElxFzf0ZpU9Wat9fWS8RAREVFtsPgiIiIiqiGO\n+SIiIiKqIRZfRERERDXE4ouIiIiohlh8EREREdUQiy8iIiKiGmLxRURERFRDLL6IiIiIaojFFxER\nEVENsfgiIiIiqiEWX0REREQ1xOKLiIiIqIZYfBHNQym1TSml824bi+w7UmBfrZTaVOu4nVbgfbmu\nwD6bzPdE7PUXyMmcsZgxF8rhXLfttXo9VDmlVJebjkP+xeKLaB5a6y0ATgJwfc7m7Uqp9gK7rwZw\nVc7vOwCcpLXe4WCIUq5H5n3ZPcc+WwC0A7imJhEVthqZOEdL2dnM1UIAF+dsvs88xkLzfj2Am3Ie\nL/RZIBcx/zgYtulwXcX+ACMqBYsvohJorQ9orfO/bG8psN+o+eVtFVvXaq0P1CLGWjNf6wEAO+fY\nbQsyRcr1c+zjqBLjLPSc+3I23Wt+BkbN+91a6+sxs0Ajl1JKbQawW2tdsABXSm1WSl1ntnpat63F\nWrjMz8bFbAGjSrH4Iiqf9aW8aY4urEcBjBb7z94vzELleg8XoPch0/LXIR0LFWa2UF+cV0xbj3Up\npXYBGNZa36S13mHdANwIYJtSamuRQ98IoNhjRHNi8UVUvusBWMVEse7HUdjXxUHudhvY7ehmW5Ep\nlGYw/93uAnBboWEB5h9OVwHYXGg8o/n4AXY/UiVYfBGVz/pP2cLB1j6ilGpXSumcTfeBLV9utkFr\nXWhc4lYA7XnDCWYwC6wbAWwt8kfWbch0rROVhcUXUQXM/8ytcUwbC/1lPBdzjMku80q5XeaYlNzH\nt+ZfoWd+6W9XSu03n9NeYL/N5r7Wsfdbxza7WLabV/+NFOtOyTnufvMYI+bxSr5iscCVkFvzHs+P\ne96rQ83Xdm/Oe1b0PTfH7+wyY7/X5rE5M1o6zM/CjUVeV8G82fC6tPmcTTnbtxaJYWPO82e8z0XO\nMWc85uP5n7l15nNGzNdZtDsu77M/Y1/zfco99kjO5zf/sXm7/JRS61B8rN9GzH2xiMXaZ1YLl5n7\ndSUcg2gmrTVvvPFW4g2ABtCV8/suc1v+9s0A9hc5xnZz/005+2oA23L2aQfQBWDE2hfAveZ2a9tm\nc98uAPvNbbvMx7cC2JYT23Xm9u3mz/vzz5lz3v3mrcvcti7ndW4u8Hqs81xXIH7reVuLPGdTzrat\n5rZZ71vO/tZr3mj+vn2O93eX+b5tNV/7/vxzlpjv7GszzzuS+a+z4P4l562K17XZPJ4Vy3V5x8iP\nYWNefNY5Zr2GUuPJ+8zda55rW87nbNZny3zevTmfx9xYcj/71r8HjUzLVO7zN5WTQzP3Bfe1Yi/h\nGOvyP98F8rLOzv9nePP+TTwA3nirpxtmF1ldOV8U+3O2Fyy+cr5Y8osR64t1Y95268vq3pwvxP35\n++Y8Pz++rTnbtxaJuz1nu/XltisvDutLctaXFQoUXwXOX+j15hZr63LiyX8PNhU6d86xNxaIc3/e\nvlmJVUUAAAbPSURBVNflHL+S4mvWbZ7nzZu3Ml+XtW9+sbwJxd+3XYW2576uSt/nvNeYH+u6Ise3\nPvvbc7ZdV2Rf673anLf9uvzP5jx52IUihZF5joJ/IBV5X4oVcVsLffZ5422uG7sdiaqgM1fxWWM+\nukroCrEevy1v+215j+fbqLW+2fx5PYD1usDVWwB26JlXFt6b83N20HHePrldcsWuSrQuHrCr+64d\n01eNAtPTdtxc4HVZ78m2vO335j0OTHcFz9hXzzGup0Q3ITO/11Uocb4w01x5K+d1WT/PGF+o7Z0/\nrpx4ct2XmzOd6YobBWZNRlro+NbnLf91WPvmT1GyBQUGz8+hHcXztQ2lfZ7PBuZ8r2MAOsuIiYjF\nF1G1zC9X6z/m68xxJrOYY32s8T75RY71e7HxI7lfbqO68ABiIDPFRS6raCo07cWsQss87kKt9Xoz\n5i5zXNEN5i62DCzXWl9svQZzTNE6ZL4kC80HZn1B5sdrvZe579mGIvsC5RVN+WI6M23GDpQ3Z9lc\neSvndRXbt9i2SpQTz3zntz537UDxz77OTOugtNZX5T3/dism69+Ted9VZsHZpYtPc3IzgNESxjJu\nwtw5PwBe7UplYvFFZI9rMf3lXuzqx+xf2QUKoezvRQaHlzIweMZx8pQ17YU5YH4EmVaPi2HfF3z+\nebow3cpxbf77kvde7FIzB4tvz9nP+vKz7gu9D3a9htvn3yWrYN7KeV15+zoyfUkF73OuXSWcIvez\nP28ezM+BVWRZhf8WZAomW5jnuB5zXK1oFnwd87ScjsK+FmHyCRZfRCUq8sUDYMacQEDmP+JCXTTZ\nL50Cx8r+XuTLKVZ6pJUzv2xGAFwN4CKt9Uk6s7xSfjepXawvdmtiS6vgsN6P3GJjodlKUuhmFVtz\ntW7Z0jphnqvUbsxieSvndeXuW6jlsazWyCKf43Lf53LN98dFIVb34iYz5s2weVoXs9W6a45/21uQ\n+cNqPr6eTJnKx+KLqHwF/6M2x73cXGwf84vL+k86/wvI+r1YC1etZoi3vtyuzesis30eK3MKAau7\nMfcL7gZkvmjzWwg3oIC8bl7rfSr0BW9b64TOLC1UioJ5K+d15e27Lm+f3O68Us06XwXvc1ny/qCY\nNWWDOf3EjNdhfv6s592PTNd5oXGOcxmd648m0xaYn7cCSunm7AInVKYysfgiKp31pVHwywkAzFai\nuQol60s7f6Fp6/dyBhM7wSpQ8v+St+K2pfXI/EK0Bl7ndzduzDu/1co0q+Ax57DKbQ2x3r8tefvl\njutxy4So5bwua9/8LrJiRQNQvBDNHiOvMCknnkoUPL557K1FWtWsFuR1qKzLcRgF8m22rm4Csn80\nzRowb8WV83ux9/okZK6cJCoZiy+ieZj/Uef+R7zVmjyzyFPyBw9nmd0c9yEzMN+aIHMzMoN6by7w\nV7b1xTFfq431+ElFts/VXZVbTFotC9uUUhutCTFzn2RO4pn7RWQdp9AVX1159xbri/y+vO7Gbchr\n3TFbmXYjM5ntvWZMG80rS7cj5/02j3UfgHVmnNYFA7dguhi5eL7WkJznWc42t5VafM6btzJfl7Wk\n1UZzslFrYt8tmPtqPgC43pwEdZ35/ua20lxtvaZy4sl7bfmfuWKv/0bzNXSZk6tel3PsYl17uePr\n8q/CLMVuFMiBWehdnNPFXah46gKw09xnrla/dtSuZZq8QnquC954c/sNMycrzb3Nmggz5znXYY45\nhMzHrXmYdmH2fEabC5xvBHlzDWHmPE+5++VO6pl7uw4z57yaMUeZ+bzt5nOtAfebc841gunJS4ud\nex1yJiPNe2wjZs4xVuw2a06lvPfMmjC2q8j7uxWZL1TrNazDzHmpZsxvVsJ7mnsreM5y8lbF69qW\n97pyJzstNJ/XxrzPmTVZbNE5y+aLZ57PXNHPVoHXoM37OeddM/efdzLUOd7bWRMDm4/N+XnA7H/3\nxeYLqyg23vx9U1prEBFRfVJK7UemCLtYlz8myvWUUttRZPHrEp7bhczEtBfbH1m223a7U8cn72K3\nIxERuUbu1ZBmd9/GSgovIDvQv6OM7uJyXQ2br8Akf2DxRURErmC2cu3PGW93C8qb1LaQG5Epkpxw\nsZ5ewYCoZCy+iIjqW6kXZdQDa2D72ebFAQeqLW7MVrN5L7Iol3kRzr3z7khUAIsvIqI6ZK5CoDE9\n/cc2c/xXPbOu3tyEzLxeRa8cLtO1mJ4p3y5s9aKKccA9ERF5njmWrMuOixKUUptZeFE1WHwRERER\n1RC7HYmIiIhqiMUXERERUQ2x+CIiIiKqIRZfRERERDXE4ouIiIiohv5/OW9HNxFuin0AAAAASUVO\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xnorm_mag = np.abs(xnorm_amp)\n", "\n", "# Make the figure pretty, then plot the results\n", "# \"pretty\" parameters selected based on pdf output, not screen output\n", "# Many of these setting could also be made default by the .matplotlibrc file\n", "fig = plt.figure(figsize=(6,4))\n", "ax = plt.gca()\n", "plt.subplots_adjust(bottom=0.2,left=0.15,top=0.96,right=0.96)\n", "plt.setp(ax.get_ymajorticklabels(),family='serif',fontsize=18)\n", "plt.setp(ax.get_xmajorticklabels(),family='serif',fontsize=18)\n", "ax.spines['right'].set_color('none')\n", "ax.spines['top'].set_color('none')\n", "ax.xaxis.set_ticks_position('bottom')\n", "ax.yaxis.set_ticks_position('left')\n", "ax.grid(True,linestyle=':',color='0.75')\n", "ax.set_axisbelow(True)\n", "\n", "plt.xlabel(r'Normalized Frequency $\\left(\\Omega\\right)$',family='serif',fontsize=22,weight='bold',labelpad=10)\n", "plt.ylabel(r'$\\left| \\frac{m \\omega_n^2}{\\bar{f}} \\bar{x} \\right|$',family='serif',fontsize=22,weight='bold',labelpad=10)\n", "plt.ylim(0.0,5.0)\n", "plt.xticks([0,1],['0','1'])\n", "plt.yticks([0,1])\n", "\n", "plt.plot(wnorm, xnorm_mag, linewidth=2)\n", "\n", "# If you want to save the figure, uncomment the commands below. \n", "# The figure will be saved in the same directory as your IPython notebook.\n", "# Save the figure as a high-res pdf in the current folder\n", "# savefig('MassSpring_ForcedFreqResp_NormMag.pdf',dpi=300)\n", "\n", "fig.set_size_inches(9,6) # Resize the figure for better display in the notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Licenses\n", "Code is licensed under a 3-clause BSD style license. See the licenses/LICENSE.md file.\n", "\n", "Other content is provided under a [Creative Commons Attribution-NonCommercial 4.0 International License](http://creativecommons.org/licenses/by-nc/4.0/), CC-BY-NC 4.0." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# This cell will just improve the styling of the notebook\n", "# You can ignore it, if you are okay with the default sytling\n", "from IPython.core.display import HTML\n", "import urllib.request\n", "response = urllib.request.urlopen(\"https://cl.ly/1B1y452Z1d35\")\n", "HTML(response.read().decode(\"utf-8\"))" ] } ], "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.6.2" } }, "nbformat": 4, "nbformat_minor": 1 }