mirror of
https://github.com/wassname/simpeg.git
synced 2026-06-28 20:24:27 +08:00
395 lines
27 KiB
Plaintext
395 lines
27 KiB
Plaintext
{
|
|
"metadata": {
|
|
"name": "InterpolationMatrix"
|
|
},
|
|
"nbformat": 3,
|
|
"nbformat_minor": 0,
|
|
"worksheets": [
|
|
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"import numpy as np\n",
|
|
"import scipy.sparse as sp\n",
|
|
"from SimPEG.utils import spzeros, mkvc"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 1
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"#x = unique(mesh.gridEx[:,0])\n",
|
|
"#y = unique(mesh.gridEx[:,1])\n",
|
|
"#z = unique(mesh.gridEx[:,2])\n",
|
|
"x = np.linspace(-1000,1000,5)\n",
|
|
"y = np.linspace(-1000,1000,5)\n",
|
|
"z = np.linspace(-1000,1000,5)"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 2
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"xr1 = np.linspace(-500,500,5)\n",
|
|
"yr1 = np.linspace(-500,500,5)\n",
|
|
"zr1 = 0"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 3
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"xr, yr = meshgrid(xr1, yr1, indexing='ij')\n",
|
|
"zr = np.ones((xr.shape[0],xr.shape[1]))*zr1"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 4
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"xr = mkvc(xr)\n",
|
|
"yr = mkvc(yr)\n",
|
|
"zr = mkvc(zr)"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 5
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"nx = max(x.shape)\n",
|
|
"ny = max(y.shape)\n",
|
|
"nz = max(z.shape)\n",
|
|
"npts = max(xr.shape)\n",
|
|
"\n",
|
|
"Q = np.zeros((npts, nx*ny*nz))\n",
|
|
"\n",
|
|
"for i in range(npts):\n",
|
|
"\t# in x-direction \n",
|
|
" im = np.argmin(abs(x-xr[i]))\n",
|
|
" if xr[i] - x[im] >= 0: # Point on the left\n",
|
|
" ind_x1 = im\n",
|
|
" ind_x2 = im+1\n",
|
|
" elif xr[i] - x[im] < 0: # Point on the right\n",
|
|
" ind_x1 = im-1\n",
|
|
" ind_x2 = im \n",
|
|
" dx1 = xr[i] - x[ind_x1]\n",
|
|
" dx2 = x[ind_x2] - xr[i]\n",
|
|
" # in y-direction\n",
|
|
" im = np.argmin(abs(y-yr[i]))\n",
|
|
" if yr[i] - y[im] >= 0: # Point on the left\n",
|
|
" ind_y1 = im\n",
|
|
" ind_y2 = im+1\n",
|
|
" elif yr[i] - y[im] < 0: # Point on the right\n",
|
|
" ind_y1 = im-1\n",
|
|
" ind_y2 = im \n",
|
|
" dy1 = yr[i] - y[ind_y1]\n",
|
|
" dy2 = y[ind_y2] - yr[i] \n",
|
|
" # in z-direction\n",
|
|
" im = np.argmin(abs(z-zr[i]))\n",
|
|
" if zr[i] - z[im] >= 0: # Point on the left\n",
|
|
" ind_z1 = im\n",
|
|
" ind_z2 = im+1\n",
|
|
" elif zr[i] - z[im] < 0: # Point on the right\n",
|
|
" ind_z1 = im-1\n",
|
|
" ind_z2 = im \n",
|
|
" dz1 = zr[i] - z[ind_z1]\n",
|
|
" dz2 = z[ind_z2] - zr[i] \n",
|
|
" dv = (x[ind_x2] - x[ind_x1]) * (y[ind_y2] - y[ind_y1]) *(z[ind_z2] - z[ind_z1])\n",
|
|
"\n",
|
|
" Dx = x[ind_x2] - x[ind_x1]\n",
|
|
" Dy = y[ind_y2] - y[ind_y1]\n",
|
|
" Dz = z[ind_z2] - z[ind_z1]\n",
|
|
"\n",
|
|
" # Get the row in the matrix\n",
|
|
"\n",
|
|
" v = np.zeros((nx,ny,nz));\n",
|
|
" \n",
|
|
" v[ ind_x1, ind_y1, ind_z1] = (1-dx1/Dx)*(1-dy1/Dy)*(1-dz1/Dz);\n",
|
|
" v[ ind_x1, ind_y2, ind_z1] = (1-dx1/Dx)*(1-dy2/Dy)*(1-dz1/Dz);\n",
|
|
" v[ ind_x2, ind_y1, ind_z1] = (1-dx2/Dx)*(1-dy1/Dy)*(1-dz1/Dz);\n",
|
|
" v[ ind_x2, ind_y2, ind_z1] = (1-dx2/Dx)*(1-dy2/Dy)*(1-dz1/Dz);\n",
|
|
" v[ ind_x1, ind_y1, ind_z2] = (1-dx1/Dx)*(1-dy1/Dy)*(1-dz2/Dz);\n",
|
|
" v[ ind_x1, ind_y2, ind_z2] = (1-dx1/Dx)*(1-dy2/Dy)*(1-dz2/Dz);\n",
|
|
" v[ ind_x2, ind_y1, ind_z2] = (1-dx2/Dx)*(1-dy1/Dy)*(1-dz2/Dz);\n",
|
|
" v[ ind_x2, ind_y2, ind_z2] = (1-dx2/Dx)*(1-dy2/Dy)*(1-dz2/Dz);\n",
|
|
" \n",
|
|
" \n",
|
|
" Q[i,:] = mkvc(v)\n",
|
|
"Q = sp.csr_matrix(Q)"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 6
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"import scipy.io\n",
|
|
"\n",
|
|
"# import file into a dictionary\n",
|
|
"f = scipy.io.loadmat('q.mat')\n",
|
|
" \n",
|
|
"# read in the structure\n",
|
|
"Qmat= f['q']\n",
|
|
"Qmat = Qmat.todense()\n",
|
|
"Q = Q.todense()"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 7
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"norm(Q-Qmat)"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"output_type": "pyout",
|
|
"prompt_number": 13,
|
|
"text": [
|
|
"0.0"
|
|
]
|
|
}
|
|
],
|
|
"prompt_number": 13
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"plt.subplot(131)\n",
|
|
"spy(Q)\n",
|
|
"plt.subplot(132)\n",
|
|
"spy(Qmat)\n",
|
|
"plt.subplot(133)\n",
|
|
"spy(Qmat-Q)"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"output_type": "pyout",
|
|
"prompt_number": 15,
|
|
"text": [
|
|
"<matplotlib.image.AxesImage at 0x8469588>"
|
|
]
|
|
},
|
|
{
|
|
"output_type": "display_data",
|
|
"png": "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\n4gAAAABJRU5ErkJggg==\n",
|
|
"text": [
|
|
"<matplotlib.figure.Figure at 0x84d4cc0>"
|
|
]
|
|
}
|
|
],
|
|
"prompt_number": 15
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"a = np.random.rand(5)\n",
|
|
"ind = np.logical_and(a>0.1,a<0.5)\n",
|
|
"print ind"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"stream": "stdout",
|
|
"text": [
|
|
"[False False False False False]\n"
|
|
]
|
|
}
|
|
],
|
|
"prompt_number": 10
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"def interpmat(x,y,z,xr,yr,zr):\n",
|
|
"\n",
|
|
" \"\"\" Local nterpolation computed for each receiver point in turn \"\"\"\n",
|
|
"\n",
|
|
" nx = max(x.shape)\n",
|
|
" ny = max(y.shape)\n",
|
|
" nz = max(z.shape)\n",
|
|
" npts = max(xr.shape)\n",
|
|
"\n",
|
|
" Q = np.zeros((npts, nx*ny*nz))\n",
|
|
"\n",
|
|
" for i in range(npts):\n",
|
|
" \t# in x-direction \n",
|
|
" im = np.argmin(abs(x-xr[i]))\n",
|
|
" if xr[i] - x[im] >= 0: # Point on the left\n",
|
|
" ind_x1 = im\n",
|
|
" ind_x2 = im+1\n",
|
|
" elif xr[i] - x[im] < 0: # Point on the right\n",
|
|
" ind_x1 = im-1\n",
|
|
" ind_x2 = im \n",
|
|
" dx1 = xr[i] - x[ind_x1]\n",
|
|
" dx2 = x[ind_x2] - xr[i]\n",
|
|
" # in y-direction\n",
|
|
" im = np.argmin(abs(y-yr[i]))\n",
|
|
" if yr[i] - y[im] >= 0: # Point on the left\n",
|
|
" ind_y1 = im\n",
|
|
" ind_y2 = im+1\n",
|
|
" elif yr[i] - y[im] < 0: # Point on the right\n",
|
|
" ind_y1 = im-1\n",
|
|
" ind_y2 = im \n",
|
|
" dy1 = yr[i] - y[ind_y1]\n",
|
|
" dy2 = y[ind_y2] - yr[i] \n",
|
|
" # in z-direction\n",
|
|
" im = np.argmin(abs(z-zr[i]))\n",
|
|
" if zr[i] - z[im] >= 0: # Point on the left\n",
|
|
" ind_z1 = im\n",
|
|
" ind_z2 = im+1\n",
|
|
" elif zr[i] - z[im] < 0: # Point on the right\n",
|
|
" ind_z1 = im-1\n",
|
|
" ind_z2 = im \n",
|
|
" dz1 = zr[i] - z[ind_z1]\n",
|
|
" dz2 = z[ind_z2] - zr[i] \n",
|
|
" dv = (x[ind_x2] - x[ind_x1]) * (y[ind_y2] - y[ind_y1]) *(z[ind_z2] - z[ind_z1])\n",
|
|
"\n",
|
|
" Dx = x[ind_x2] - x[ind_x1]\n",
|
|
" Dy = y[ind_y2] - y[ind_y1]\n",
|
|
" Dz = z[ind_z2] - z[ind_z1]\n",
|
|
"\n",
|
|
" # Get the row in the matrix\n",
|
|
"\n",
|
|
" v = np.zeros((nx,ny,nz));\n",
|
|
" \n",
|
|
" v[ ind_x1, ind_y1, ind_z1] = (1-dx1/Dx)*(1-dy1/Dy)*(1-dz1/Dz);\n",
|
|
" v[ ind_x1, ind_y2, ind_z1] = (1-dx1/Dx)*(1-dy2/Dy)*(1-dz1/Dz);\n",
|
|
" v[ ind_x2, ind_y1, ind_z1] = (1-dx2/Dx)*(1-dy1/Dy)*(1-dz1/Dz);\n",
|
|
" v[ ind_x2, ind_y2, ind_z1] = (1-dx2/Dx)*(1-dy2/Dy)*(1-dz1/Dz);\n",
|
|
" v[ ind_x1, ind_y1, ind_z2] = (1-dx1/Dx)*(1-dy1/Dy)*(1-dz2/Dz);\n",
|
|
" v[ ind_x1, ind_y2, ind_z2] = (1-dx1/Dx)*(1-dy2/Dy)*(1-dz2/Dz);\n",
|
|
" v[ ind_x2, ind_y1, ind_z2] = (1-dx2/Dx)*(1-dy1/Dy)*(1-dz2/Dz);\n",
|
|
" v[ ind_x2, ind_y2, ind_z2] = (1-dx2/Dx)*(1-dy2/Dy)*(1-dz2/Dz);\n",
|
|
" \n",
|
|
" \n",
|
|
" Q[i,:] = mkvc(v)\n",
|
|
" Q = sp.csr_matrix(Q)\n",
|
|
" return Q"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 16
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"Q = interpmat(x,y,z,xr,yr,zr)"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 17
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"Q = Q.todense()\n",
|
|
"norm(Q-Qmat)"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"output_type": "pyout",
|
|
"prompt_number": 18,
|
|
"text": [
|
|
"0.0"
|
|
]
|
|
}
|
|
],
|
|
"prompt_number": 18
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"plt.subplot(131)\n",
|
|
"plt.plot(mkvc(Qmat))\n",
|
|
"plt.subplot(132)\n",
|
|
"plt.plot(mkvc(Q))\n",
|
|
"plt.subplot(133)\n",
|
|
"plt.plot(mkvc(Qmat-Q))"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"output_type": "pyout",
|
|
"prompt_number": 29,
|
|
"text": [
|
|
"[<matplotlib.lines.Line2D at 0xcfc4ef0>]"
|
|
]
|
|
},
|
|
{
|
|
"output_type": "display_data",
|
|
"png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAD9CAYAAABdoNd6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X9UVGX+B/D3oCZYRhGY+iXGRlhm0IRJhsGvBmwhYizq\nFh3BzTqJ+0XNxFo9rX07xx9tPzbbFWNboDbbdpV196y2/tiMoHYY12QGtmxzwCwFNVv7Ap5FVLBR\nnu8frCPDDAPG/OR5v87hnLlznzv3uXyGt9c7z31GIYQQICKiIS3I1x0gIiLPY9gTEUmAYU9EJAGG\nPRGRBBj2REQSYNgTEUnAZdgvWrQIt99+O+66664+26xZswYqlQpTp07FkSNH3N5Bcj/WNfAZjUZo\nNBrExMSguLjYaZu+anjhwgU8+uij+N73voe4uDjU1NR4q9vkS8IFo9EoPv74YzF58mSn600mk5g+\nfbpobW0V5eXlIisry9XLkZ9gXQNfQkKCqK6uFk1NTSI2NlY0NzfbrXdVw5/85Cfi2WefFR0dHcJq\ntYp///vf3u4++YDLM/t77rkHt956a5/rTSYTcnJyEBYWhry8PDQ0NLj9HyNyP9Y1sLW1tQEAUlJS\noFQqkZGRAZPJZNfGVQ2rqqrwzDPPIDg4GMOHD0doaKhX+0++MXwwG5vNZixcuNC2HBERgWPHjmHi\nxIl27RQKxWB2Q24kBnDDNOsaGHr+/ouLi+1q66yGx48fxw033IDOzk4sXboUDQ0NeOCBB1BYWIjg\n4GCnr0u+N5C/2YEY1Ae0QgiHjvT1Rrna9np+1q5d6/Ht/vxnAaD7Jzp6LdLTry3/5S/XHgO+7ac7\ntpOprt39v/qzFqWl15YfflggIeHa8t//7h/1Gei2lZWVyM3NtS2XlJQMqIYA0NnZiaNHj+LBBx+E\nwWCAxWLBn/70p4Cqq7d+z/6wnTsNKuz1ej3q6+tty83NzVCpVIPuFPkW6+rfdDqd3QeuFovFoU1f\nNYyOjkZsbCyys7MREhKCvLw87Nu3zyv9Jt8adNjv2LEDra2tKC8vh0ajcVe/yIdYV/929Rq70WhE\nU1MTKisrHdq4qmFMTAxMJhO6urrw17/+Fenp6V7rO/mOy2v2eXl5qK6uRktLC+644w6sX78eVqsV\nAFBQUICkpCTMmDEDiYmJCAsLw9atW93aubS0NK9uFxbm3f15e7urZKsr4N39DaY+A922qKgIBQUF\nsFqtWLFiBQoLC1FWVgag/xq+8soreOSRR9DZ2Yn09HTk5uZ+5/5+l777ejtf7HOwf7PuoBDuvjDk\nbCcKhduvP7nLjh1ATk7348xM4PJloKqqe/kvfwHmzbvW1k8PYcDcXQd/risA9PyYobQUWLKk+/HD\nDwOHDwOHDnUv//3vwPTp3u+fO7mzFv5eV5m4sxa8g5aISAIMeyIiCTDsiYgkwLAnIpIAw56ISAIM\neyIiCTDsiYgkwLAnIpIAw56ISAIMeyIiCTDse+g9iy+n9R66WFuSjfRhz4CXQ8+6suYkI+nDnohI\nBgx7IiIJMOyJiCTAsCcikgDDnohIAgx7IiIJMOyJiCTAsCcikgDDnohIAgx7IiIJSB/2Qvi6B+Rr\nfA+QDKQPeyIiGTDsiYgkwLDvgbMhyoO1Jdkw7Hvofe2W13IDV3+1Y21JNtKHPc/wiO8BkoH0YU8U\niIxGIzQaDWJiYlBcXOy0zZo1a6BSqTB16lQcOXLEbt2VK1eg1WqRnZ3tje6SHxju6w4Q0fUrLCxE\nWVkZlEolZs2a5bDebDZj//79qKurQ0VFBVatWoW9e/fa1m/evBlxcXFob2/3ZrfJh3hmTxRg2tra\nAAApKSlQKpXIyMhwaGMymZCTk4OwsDDk5eWhoaHBtu6rr77Cu+++i8WLF0Pwwwtp8MyeKMDU1tZC\nrVbbluPi4hzamM1mLFy40LYcERGB48ePQ6VS4cknn8TGjRtx7ty5Pvexbt062+O0tDSkpaW5pe/k\nmsFggMFg8MhrM+yJhiAhhNOz9r1792LMmDHQarUuQ6Vn2JP39P6Hdf369W57bV7GIQowOp3O7gNX\ni8Xi0Eav16O+vt623NzcDJVKhY8++gi7d+/GnXfeiby8PHz44Yd45JFHvNJv8i2GPVGACQ0NBdA9\nIqepqQmVlZUObfR6PXbs2IHW1laUl5dDo9EAAF544QWcOnUKjY2N2L59O+6991787ne/82r/yTf6\nDfv+hnh1dHTg0UcfhVarRWpqKnbt2uWRjpJ7sa6BraioCAUFBUhPT8eyZcsAAGVlZSgrKwMAJCUl\nYcaMGUhMTMQvfvELbNy40enrKHiTgTxEPxISEkR1dbVoamoSsbGxorm52W59SUmJWLp0qRBCiKam\nJqFSqURXV5ddmwHsxmd27BCi+35KIWbPFmLmzGvLu3Zde+zHhzBgPesw1Ova1WVfu7Kya48XLhRC\nq722fOCAr3s7eO6shT/XVTburIXLM3tnQ7xMJpNdm9DQULS3t8NqteLs2bMYNWoUzxb8HOtKJB+X\no3GcDfGqqalBVlaW7bm8vDzs2bMH4eHhuHz5Mg4ePOj0tTiUy/v6GsbFugY+Tw7Ro6Fp0EMvf/Wr\nX2H48OH417/+hc8++wxZWVk4ceIEgoLs/9PAoVzeN5hhXKyrf/PkED0amlxexnE2xCs5OdmujdFo\nxI9+9COMGjUKer0e48ePx9GjRz3TWw+TZYpj2erqzFCtLVFfXIa9syFeer3ers19992HPXv2oKur\nC8ePH8fZs2ftLhGQ/2FdieTT72Wcq0O8rFYrVqxYgfDwcNvwroKCAuTm5qK+vh6JiYmIiIjA5s2b\nPd5pGjzWlUguiv8M7/HsThQKv51w6Z13gAce6H58//3A5cvA++93L+/eDcyZc62tnx7CgLm7Dv5c\nVyGAnh8vvP468D//0/34kUeAw4eBjz/uXv7oI2DaNO/30Z3cWQt/rqts3FkL3kFLRCQBhj0RkQQY\n9kREEmDYExFJgGFPRCQBhj0RkQSkD3uOMCO+B0gG0oc9EZEMGPZERBJg2BMRSYBh34Mss14Sa0vy\nYdgTEUmAYU9EJAGGPRGRBBj2PfQeb83x14Grv9qxtiQb6cOeH9QR3wMkA+nDnohIBgx7IiIJMOyJ\niCTAsCcikgDDnohIAgx7ogBkNBqh0WgQExOD4uJip23WrFkDlUqFqVOn4siRIwCAU6dO4fvf/z4m\nTZqEtLQ0lJeXe7Pb5EPDfd0BIrp+hYWFKCsrg1KpxKxZsxzWm81m7N+/H3V1daioqMCqVauwd+9e\njBgxAps2bUJCQgJaWlqQlJSE7OxsjB492gdHQd7EM3uiANPW1gYASElJgVKpREZGhkMbk8mEnJwc\nhIWFIS8vDw0NDQCAsWPHIiEhAQAQHh6OSZMmoa6uznudJ5/hmT1RgKmtrYVarbYtx8XFObQxm81Y\nuHChbTkiIgLHjh3DxIkTbc99+eWXsFgsSEpKcth+3bp1tsdpaWlIS0tzT+fJJYPBAIPB4JHXZtj3\nwCmO5THUayuEgOg1J4Six0G3t7dj/vz52LRpE2688UaH7XuGPXlP739Y169f77bX5mUcogCj0+ls\nH7gCgMVicWij1+tRX19vW25uboZKpQIAWK1WPPjgg1i4cCHmzp3r+Q6TX2DYEwWY0NBQAN0jcpqa\nmlBZWenQRq/XY8eOHWhtbUV5eTk0Gg2A7jP+/Px8TJ48GStXrvRqv8m3eBmHKAAVFRWhoKAAVqsV\nK1assI3OAYCCggIkJSVhxowZSExMRFhYGLZu3QoAOHDgALZu3YopU6ZAq9UCAF588UVkZmb67FjI\nOxj2RAEoNTXVNsIG6B6KWVBQYNfmpZdewksvvWT33IwZM9DV1eWVPpJ/4WUcIiIJSB/2HIEjh551\nZc1JRtKHPRGRDBj2REQSkD7s+V2kxPcAyUD6sCcikkG/YT+QqVRra2uh0+mg0Wg4h0aAYF2J5NLv\nOPveU6nm5eUhPDzctl4IgUWLFmHTpk1IT09HS0uLRztM7sG6EsnF5Zm9s6lUTSaTXZu6ujpMmTIF\n6enpAGAXGOSfWFci+bg8s3c2lWpNTQ2ysrJsz1VUVEChUOCee+7BLbfcguXLlzv9MgVOmep9fU2X\nyroGPk9OhUtD06CnS+js7MShQ4dQVVWFixcvYubMmTh8+DBCQkLs2gXClKlD7WabwUyXOpTq6ozM\ntSU5ubyM42wq1eTkZLs206ZNw+zZszF27FioVCokJibCaDR6prfkFqwrkXxchr2zqVT1er1dm+Tk\nZFRXV+PixYs4e/YsPvnkE0yfPt1zPaZBY12J5NPvZZzeU6mGh4fbTaV622234bHHHkNiYiIiIiKw\nYcMG3HTTTR7vOA0O60okF4Xo/d1lntiJQuHwFWn+4p13gAce6H78gx8AVitQUdG9vHdv93NX+ekh\nDJi76+DPde3qAoYNu7b8xhvAj3/c/fjRRwGLBbj6PdsffQRMm+b9PrqTO2vhz3WVjTtrwTtoe+j9\nO+X7PXD1VzvWlmQjfdgH+qgMGjy+B0gG0oc9EZEMGPZERBJg2BMRSYBhT0QkAYY9EZEEGPZERBJg\n2BMRSYBhT0QkAYZ9D0NtimPqG2tLsmHYExFJgGFPRCQBhj1RADIajdBoNIiJiUFxcbHTNmvWrIFK\npcLUqVPtvqxmINvS0DPoryUkIu8rLCxEWVkZlEql0+8GNpvN2L9/P+rq6lBRUYFVq1Zh7969TrfN\ny8vjF8pLgGf2RAGmra0NAJCSkgKlUomMjAyHNiaTCTk5OQgLC0NeXh4aGhr63NZkMnmv8+QzPLPv\nobUV6Oy8tnzpku/6Qu7V0XHt8dmzwP/9n+/6Mli1tbVQq9W25bi4OIc2ZrMZCxcutC1HRETg2LFj\naGxsdNi2pqYGWVlZdtsvWLDO9njy5DTcdVea+w6AMG4ckJjo+LzBYIDBYPDIPqUP+54hcPCg/br/\n/V/v9oU8Z8WKa4/37PFdP7xFCOHwDUeK6xhv2t6+zvb44EHHvw0anP/+b+dhn5aWhrS0NNvy+vXr\n3bZP6cO+q6vvdWfPeq8fRAOl0+mwevVq27LFYnFoo9frUV9fb7ue39zcDJVKhbCwMIdtMzMzHbaX\n4R9E2fCaPVGACQ0NBdA9qqapqQmVlZUObfR6PXbs2IHW1laUl5dDo9EAAG655RaHbfV6vfc6Tz4j\n/Zk9USAqKipCQUEBrFYrVqxYYRthAwAFBQVISkrCjBkzkJiYiLCwMGzdurXPbTkSRw4K4YWvkffn\nb6vftg14+GHn68aMsf8gz08PYcDcXQd/ruuVK8DwAZ7KHDwIJCd7tj+e5s5a+HNdZePOWvAyDhGR\nBBj2REQSYNgTEUmAYe9CEH87RDRESB9nru4z4ZznRDRUSB/2REQyYNgTEUmAYU9EJAGGPRGRBKQP\ne94oSEQykD7sXeE/BIGLtSOyJ33Yc3gl8T1AMmDY8w+diCQgfdgTEcmg37A3Go3QaDSIiYlBcXFx\nn+1qa2sxfPhw7Ny5060dJM9gXYnk0m/YX/1ShKqqKrz22mtoaWlxaHPlyhU8/fTTyMzM5DzYAYJ1\nJZKLy7Bva2sDAKSkpECpVCIjIwMmk8mhXXFxMXJychAREeGZXpJbsa5E8nH5XT61tbVQq9W25bi4\nONTU1CArK8v23OnTp7Fr1y58+OGHqK2t7fMb7NetW2d73Psb1MkzDAYDDAaDw/Osa+Drq7ZEfRn0\nd9CuXLkSL730ku3rs/r6737PUAgUgT7Fce/wXb9+/YC3Hcp1HQoGU1uSk8uw1+l0WL16tW3ZYrEg\nMzPTrs0//vEP5ObmAgBaWlqwb98+jBgxAnPmzPFAd91PximOZagrEdlzGfahoaEAukduREVFobKy\nEmvXrrVrc/z4cdvjxx57DNnZ2QwEP8e6Esmn38s4RUVFKCgogNVqxYoVKxAeHo6ysjIAQEFBgcc7\nSJ7BuhLJRSG8MKbu6nVff/SHPwALFjhf91//BZw+fW3ZTw9hwNxdB3+u6+XLwIgRA2t78CCQnOzZ\n/niaO2vhz3WVjTtrEeAfQQ4e39NEJAPpw56ISAYMeyIiCUgf9q6GV/ISDxENFQz7ITqWngaO7wGS\ngfRhTxRI2tvbMXfuXERFRWHevHk4f/6803Z9zWq6evVqaDQa3H333Vi5ciU6Ojq81XXyMYY9UQAp\nKSlBVFQUvvjiC0RGRqK0tNRpu96zmra2tgIAMjIyYLFYUFdXhwsXLqC8vNyb3ScfYtgTBRCz2Yz8\n/HyMHDkSixYtcjpbqbNZTWtqagAAM2fORFBQEIKCgjBr1ixUV1d7tf/kO4OeCI2IvKfnjKVqtRpm\ns9llG8D5rKYA8MYbb2Dx4sVO98PZTH3Dk7OZMuxd4Ad35AszZ87EmTNnHJ5//vnn3XY35YYNGzB6\n9Gg89NBDTtdzNlPf8ORspgx7Ij9TWVnZ57q3334bDQ0N0Gq1aGhogE6nc2jT36ymv/3tb1FRUYEP\nPvjAvR0nv8Zr9kQBRK/XY8uWLejo6MCWLVuQ7GRSn56zmjY1NaGyshJ6vR4A8N5772Hjxo3YvXs3\ngoODvdp38i3pw17G+ewpcC1duhQnT55EbGwsTp8+jSVLltjW9bwmf3VW0/T0dCxbtgzh4eEAgCee\neALnz59Heno6tFotli1b5vVjIN+QftbL7duBvDzn6yIjga++urbsp4cwYJz10rmaGuA/J74Bi7Ne\nDk2c9ZKIiK4Lw56ISAIMeyIiCTDsiYgkwLAnIpIAw94FDkgIXKwdkT3pw55fXkK8n4JkIH3YExHJ\ngGFPRCQBhj0RkQQY9i7wWi4RDRUMeyIiCTDsiYgkIH3Yc3gl8T1AMmDYu/hD5zV7IhoqpA97IiIZ\nMOyJiCTAsCcikgDDnohIAgx7IiIJMOyJiCTQb9gbjUZoNBrExMSguLjYYf22bdsQHx+P+Ph4LFiw\nAEePHvVIR31hKI+/lrmuRDLqN+wLCwtRVlaGqqoqvPbaa2hpabFbr1KpYDQa8emnn2LWrFl47rnn\nPNZZT5B1LP1Qr+v1kPU9QHJxGfZtbW0AgJSUFCiVSmRkZMBkMtm1mTZtGkJDQwEAWVlZqK6u9lBX\nyV1YVyL5DHe1sra2Fmq12rYcFxeHmpoaZGVlOW3/+uuvIzs72+m6devW2R6npaUhLS3t+ntL18Vg\nMMBgMDg8z7oGvr5qS9QXl2F/PaqqqrB161Z89NFHTtf3DIVAEej/ve8dvuvXr7/u1xiKdR0K3FFb\nkovLyzg6nQ5HjhyxLVssFiQnJzu0++c//4klS5Zg9+7duOWWW9zfS3Ir1pVIPi7D/uo1W6PRiKam\nJlRWVkKv19u1OXnyJB588EFs27YN0dHRnuuphwzlETd9kaGuRGSv38s4RUVFKCgogNVqxYoVKxAe\nHo6ysjIAQEFBATZs2ICzZ89iyZIlAIARI0bAbDZ7ttc0aKwrkWSEF3hpN99JebkQ3ef3jj+RkfbL\ngc7ddfDnun77bd917f1jMvm6twN37tw5MWfOHHHHHXeIuXPnivb2diGEYy2qq6uFWq0W0dHR4tVX\nX3V4nVdeeUUoFArR2trqsM6f6yobd9aCd9C6EOgf0NLQU1JSgqioKHzxxReIjIxEaWmp03au7qM4\ndeoUKisroVQqvdVt8gMMe6IAYjabkZ+fj5EjR2LRokUO90cA/d9H8dRTT+Hll1/2Wp/JP7ht6CUR\neV7PeyTUarXTz1Fc3Uexa9cuREZGYsqUKS73w/snfMOT908w7In8zMyZM3HmzBmH559//nmI7zh8\nTKFQoKOjAy+88AIqKyttz/f1erx/wjc8ef8Ew57Iz/QM497efvttNDQ0QKvVoqGhATqdzqGNTqfD\n6tWrbcsWiwWZmZk4duwYmpqaEB8fDwD46quvMHXqVJjNZowZM8b9B0J+hdfsiQKIXq/Hli1b0NHR\ngS1btji9Ga6v+ygmT56Mb775Bo2NjWhsbERkZCQ+/vhjBr0kGPZEAWTp0qU4efIkYmNjcfr0adt9\nEADs5ja6eh9Feno6li1bhvDwcIfXUnC4mVQU4rteBLyenSgU3/lao6f94Q/AggXO10VGAl99dW3Z\nTw9hwNxdB3+u67ffAiNHDqytyQQkJXm2P57mzlr4c11l485aSH9m7+rkhu93OfAEl2QgfdgTEcmA\nYe8Cz/iIaKiQPux5qYb4HiAZMOz5h05EEpA+7ImIZMCwJyKSAMOeiEgCDHsXOBqHiIYKhj0RkQQY\n9kREEmDYExFJgGFPRCQBhj0RkQQY9kREEmDYu8CpFIhoqJA+7DmWnvgeIBlIH/auzt4ZAkQ0VEgf\n9kREMmDYExFJgGFPRCQBhj0RkQQY9kREEmDYExFJgGHvAodeEtFQwbAnIpIAw56ISAJ+HfYGg8Gr\n2wHe3Z/3j88/sK6e2dbXAunvIJD66i79hr3RaIRGo0FMTAyKi4udtlmzZg1UKhWmTp2KI0eOuK1z\nDAX3btcT6+q5/XkyhNrb2zF37lxERUVh3rx5OH/+vNN2rur71ltvQaPRYNKkSXj66ae/c197C6S/\ng0Dqq7v0G/aFhYUoKytDVVUVXnvtNbS0tNitN5vN2L9/P+rq6rBq1SqsWrXKY50l92FdA1NJSQmi\noqLwxRdfIDIyEqWlpU7b9VXfw4cP4/XXX8fu3bthsVhYV4m4DPu2tjYAQEpKCpRKJTIyMmAymeza\nmEwm5OTkICwsDHl5eWhoaPBcb72sq8vXPfAM2evaWyBNZW02m5Gfn4+RI0di0aJFDnUDXNd33759\nyM/PR0xMDAAgIiLCe50n3xIuVFZWitzcXNtySUmJePbZZ+3aPPzww6KiosK2rNfrxZdffmnXBgB/\n/OSHdR26PwP5u73vvvtEYWGhmDp1qsjPzxcWi8Xh797Xx8Ef53UdrOEYJCEERK9TI0WvAeq915P/\nY119Z+bMmThz5ozD888//zyWL1+Oo0ePIjg4GBcvXoRGo8GJEyf6fc2rtbt06RLOnj2L/fv3o6qq\nCsuXL8eHH35o15Z1HZpcXsbR6XR2H8xZLBYkJyfbtdHr9aivr7ctNzc3Q6VSubmb5E6sq3+rrKzE\nZ5995vAzZ84c6HQ62yW1hoYG6HQ6h+2d1Vev1wMAkpOTMX/+fISEhCA7OxtHjhxBZ2endw6MfMpl\n2IeGhgLo/mS/qakJlZWVtjfNVXq9Hjt27EBrayvKy8uh0Wg811tyC9Y1cOn1emzZsgUdHR3YsmWL\nwz/SgOv6Tps2Dfv27YMQAiaTCRMnTkRwcLBXj4F8pL/rPAaDQajVajFx4kSxefNmIYQQpaWlorS0\n1Nbm6aefFhMmTBB33323qK+vd9s1JvIc1jUwnTt3TsyZM0fccccdYu7cuaK9vV0IIcTp06fF/fff\nb2vnrL5CCHH58mVRUFAg1Gq1mDdvnjCbzV4/BvIN913970N1dbVQq9UiOjpavPrqqw7rlUqluOuu\nu0RCQoLQ6XRCCOdv6Mcee0yMGTNGjBs3TkRHRwuNRiMqKiqcvvGFEGLz5s0iOjpahIaGiltvvVVM\nnjxZCCFEfX29GDt2rBg2bJi4/fbbRUJCgnj33XcdtouOjhZarVbExcWJ1NRU8fLLLwutViuUSqWI\niYnpc59KpVKMGjVKTJgwQaSmpopt27YNaJ8qlUoEBweL6OhoodfrxS9/+UtRX18vpkyZIkaNGiVu\nvvlmp/vra7uBHKNGoxH79++3PV9fXy+0Wq248847xTPPPMO6sq6s6xCpqxBeCPuEhARRXV0tmpqa\nRGxsrGhubrZbP2HCBNHa2mr33M9//nOxfPly0dnZKR5//HGxceNGYTQaRVVVlbjhhhvEiRMnhMFg\nEOPHj3doJ4QQ33zzjYiNjRUnTpwQr776qoiNjbW9eWbPni1ycnLEhg0bxPTp00Vtba1tvz2327lz\np4iNjRVCCNHc3CxCQkLEW2+9JdauXSvGjRsnDhw44HSftbW14je/+Y3QarWiublZ3HnnnWLmzJkD\n2ud7770ntFqt6OzsFJMmTRIpKSliwYIFYvHixWLatGnioYcecnqMzrYbyP4MBoPQarW2dbNnzxbb\nt28XLS0tDtuxrqwr6xq4dRVCCI9OlzCQ8dz/uZRkt+xsLPE999yDxsZGjB49GlFRUUhNTcWFCxeQ\nm5vrMObYZDIhMzMTUVFReOKJJzBs2DB0/WfQ/Oeff47Jkydj1KhReOCBB+z603O7H/7whwgJCcH5\n8+cRHh4OhUKBqKgoHD58GHl5efjkk0+c7jMxMRH5+fkQQiA4OBiTJk3C4cOHB7TPWbNmQQiBM2fO\n4PLly2hqasKlS5fw+OOPIycnByqVyukxOttuIPtLTU2FEMJ2F+bnn3+O+fPn47bbbnPYjnVlXVnX\nwKzrVR4N+9raWqjVattyXFwcampq7NooFArce++9mDdvHnbv3u2wnVqthtlsBgAcOnQII0eOtG1r\ntVpx7tw5h3Ymk8nuA0WVSoWOjg58+eWXGDNmDACguLgYb7zxBt588020t7cD6H7T9twuNjYWJpMJ\nH3zwAa5cuYKkpCTU1tYiNTUVNTU1LvcZGxuLnTt34tNPP0VkZOSA9tnV1YXGxkaoVCrMnz8f48eP\nt/0u4uLicOLECaf7c7bd9R5jz99NX7ViXVlX1jXw6nqVzydCO3DgAD799FO8+OKLeOqpp3DmzJnr\nGufbe+z3QCxduhSNjY147rnn0N7ejrKyMgDOxxd3dHSgsLAQSqUSN910k9Px585YrVb87Gc/wzPP\nPINhw4YNaJ9BQUHIzMzE73//e2zbtg0XLlywrXe1T2fbXc8xOvsdXk8NnGFdWVdnWFff1dWjYT+Q\n8dzjxo0DAGg0GsyZMwd79uzpcyxxQkICLl26ZNt2xIgRuOmmmxza9R4jfuzYMYSEhCA6OhrffPMN\nxowZA4VCgRMnTiAnJwfvvPOO0+0aGhqwadMmLF68GFar1XZM1dXVSE5O7nOfVqsV77//PvLz87Fk\nyZLr2ueRI0eQnZ2NefPm4euvv7b9Lurr6xEVFdXnMfbe7nr2p9PpbL+bq+rr650O62NdWVfWNbDq\nepVHw74Bqas3AAAB80lEQVS/8dwXL160/XelubkZFRUVyMzM7HMscUJCAtrb23Hy5EkYDAbceOON\n+OMf/+jQLikpCRUVFbZ2CoUCQUHdh6pWq1FSUoKWlhbs3LkTX3/9Ne6//36H7f72t7/h1KlTiI+P\nx8qVK6FWq7F9+3ZMnjwZ27dvR3x8vNN9njhxAj/4wQ8QEhJim1FwIPs8dOgQ9u7di6CgIHz77bd4\n//33MWXKFAQHB+PXv/41/vznP+P48eMO++tru4Eco8FgQFBQEEaPHm3r5/bt29HS0oJ33nnHYew9\n68q6sq6BV1cblx/fukFf432FEOL48eMiPj5exMfHi3vvvVe8+eabQgjnQ7lyc3PFuHHjxLBhw8Sw\nYcPEuHHjxHvvvdfnUK6ioiIxceJEcfPNN4vbbrtNjBgxQkRGRornnntO3HrrrWLEiBFi7Nix4skn\nn7QbXXB1O6VSKRQKhYiPjxcJCQm2Y4iKiupzKFdRUZEYP368ACCio6NFQkKCSEhIEKWlpf3uMzIy\nUgQHB4uJEyeKjIwM8fbbbwuLxSKmTJkiQkJCnA7lcrXdQI5Ro9EIo9Foe95isQitVismTJggfvrT\nn7KurCvrOkTqKoQQCiE4EQYR0VDn8w9oiYjI8xj2REQSYNgTEUmAYU9EJAGGPRGRBBj2REQS+H/x\n7w0VJIln3wAAAABJRU5ErkJggg==\n",
|
|
"text": [
|
|
"<matplotlib.figure.Figure at 0xca3aac8>"
|
|
]
|
|
}
|
|
],
|
|
"prompt_number": 29
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 16
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": []
|
|
}
|
|
],
|
|
"metadata": {}
|
|
}
|
|
]
|
|
} |