Working codes

This commit is contained in:
seogi committed 2014-03-03 10:50:26 -08:00
1 parent 9c22a43759
commit 3f7a521833
5 files changed
+357 -216

No files matched your search

+3 -2
View File
@@ -136,15 +136,16 @@ class BaseDepthModel(Model.BaseModel):
Model.BaseModel.__init__(self, mesh)
self.mesh = mesh
self.active_ind = kwargs['active_ind']
self.c = kwargs['c']
def transform(self, m):
weight = abs(self.mesh.gridCC[:,2])**1.0
weight = abs(self.mesh.gridCC[:,2])**self.c
weight = weight/weight.max()
weight[~self.active_ind] = 1.
return m*weight
def transformDeriv(self, m):
weight = abs(self.mesh.gridCC[:,2])**1.0
weight = abs(self.mesh.gridCC[:,2])**self.c
weight = weight/weight.max()
weight[~self.active_ind] = 1.
return Utils.sdiag(weight)
+4 -4
View File
@@ -215,10 +215,10 @@ if __name__ == '__main__':
Bbczx, Bbczy, Bbczz = MagSphereAnalFun(M3.gridFz[(indzd|indzu),0], M3.gridFz[(indzd|indzu),1], M3.gridFz[(indzd|indzu),2], 100, 0., 0., 0., mu_0, mu_0*(1+chiblk), H0, flag)
Bbc_anal = np.r_[Bbcxx, Bbcyy, Bbczz]
fig, ax = plt.subplots(1,1, figsize = (10, 10))
ax.plot(Bbc_anal)
ax.plot(Bbc)
plt.show()
# fig, ax = plt.subplots(1,1, figsize = (10, 10))
# ax.plot(Bbc_anal)
# ax.plot(Bbc)
# plt.show()
err = np.linalg.norm(Bbc-Bbc_anal)/np.linalg.norm(Bbc_anal)
if err < 0.1:
+9 -6
View File
@@ -332,6 +332,8 @@ def MagneticsDiffSecondaryInv(mesh, model, data, **kwargs):
from SimPEG import Optimization, Regularization, Parameters, ObjFunction, Inversion
prob = MagneticsDiffSecondary(mesh, model)
miter = kwargs.get('maxIter', 10)
if prob.ispaired:
prob.unpair()
if data.ispaired:
@@ -339,7 +341,7 @@ def MagneticsDiffSecondaryInv(mesh, model, data, **kwargs):
prob.pair(data)
# Create an optimization program
opt = Optimization.InexactGaussNewton(maxIter=5)
opt = Optimization.InexactGaussNewton(maxIter=miter)
opt.bfgsH0 = Solver(sp.identity(model.nP),flag='D')
# Create a regularization program
reg = Regularization.Tikhonov(model)
@@ -387,11 +389,12 @@ if __name__ == '__main__':
prob.pair(data)
dpred = data.dpred(chi)
fig = plt.figure( figsize = (8,5) )
ax = plt.subplot(111)
dat = plt.imshow(np.reshape(dpred, (xr.size, yr.size), order='F'), extent=[min(xr), max(xr), min(yr), max(yr)])
plt.colorbar(dat, ax = ax)
plt.show()
# fig = plt.figure( figsize = (8,5) )
# ax = plt.subplot(111)
# dat = plt.imshow(np.reshape(dpred, (xr.size, yr.size), order='F'), extent=[min(xr), max(xr), min(yr), max(yr)])
# plt.colorbar(dat, ax = ax)
# plt.show()
+3 -3
View File
@@ -52,9 +52,9 @@ class MagFwdProblemTests(unittest.TestCase):
dpred = data.projectFieldsAsVector(B)
err = np.linalg.norm(dpred-np.r_[bxa, bya, bza])/np.linalg.norm(np.r_[bxa, bya, bza])
plt.plot(dpred)
plt.plot(np.r_[bxa, bya, bza])
plt.show()
# plt.plot(dpred)
# plt.plot(np.r_[bxa, bya, bza])
# plt.show()
if err > 0.05:
raise Exception('Anaytic test is failed T.T')
+338 -201
View File
@@ -25,24 +25,7 @@
"output_type": "stream",
"stream": "stdout",
"text": [
"Warning: Python backend is being used for solver. Run setup.py from the command line.\n",
"Warning: mumps solver not available.\n",
"Warning: upgrade your scipy to 0.13.0"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Populating the interactive namespace from numpy and matplotlib"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n"
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
@@ -53,9 +36,9 @@
"collapsed": false,
"input": [
"# import matplotlib.pyplot as plt\n",
"hxind = ((5,25,1.5),(21, 25),(5,25,1.5))\n",
"hyind = ((5,25,1.5),(21, 25),(5,25,1.5))\n",
"hzind = ((5,25,1.5),(20, 25),(5,25,1.5))\n",
"hxind = ((5,25,1.3),(21, 25),(5,25,1.3))\n",
"hyind = ((5,25,1.3),(21, 25),(5,25,1.3))\n",
"hzind = ((5,25,1.3),(40, 25),(5,25,1.3))\n",
"hx, hy, hz = Utils.meshTensors(hxind, hyind, hzind)\n",
"mesh = Mesh.TensorMesh([hx, hy, hz], [-hx.sum()/2,-hy.sum()/2,-hz.sum()/2])\n",
"\n",
@@ -67,9 +50,10 @@
"# model = BaseMag.BaseMagModel(mesh)\n",
"\n",
"active_ind = ((mesh.gridCC[:,2]>-500)&(mesh.gridCC[:,2]<0)) & ((mesh.gridCC[:,0]>-800) & (mesh.gridCC[:,0]<800) & (mesh.gridCC[:,1]>-800) &(mesh.gridCC[:,1]<800))\n",
"\n",
"activemodel = Model.ActiveModel(mesh, active_ind, 1e-4)\n",
"options = {'active_ind': active_ind}\n",
"# active_ind = mesh.gridCC[:,2]<0\n",
"activemodel = Model.ActiveModel(mesh, active_ind, chibkg)\n",
"c = 1.5\n",
"options = {'active_ind': active_ind, 'c': c}\n",
"depthmodel = BaseMag.BaseDepthModel(mesh, **options)\n",
"model = Model.ComboModel(mesh, [BaseMag.BaseMagModel, depthmodel, activemodel ])\n",
"\n",
@@ -94,19 +78,16 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
"prompt_number": 103
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"weight = abs(mesh.gridCC[:,2])**1.0\n",
"weight = abs(mesh.gridCC[:,2])**c\n",
"weight = weight/weight.max()\n",
"weight[~active_ind] = 1.\n",
"data.mtrue = (chi*1/weight)[active_ind]\n",
"# data.mtrue = (chi)[active_ind]\n",
"\n",
"# data.mtrue = chi\n",
"\n",
"data.dtrue = data.dpred(data.mtrue)\n",
"std = 0.1\n",
@@ -117,7 +98,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
"prompt_number": 104
},
{
"cell_type": "code",
@@ -136,13 +117,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "iVBORw0KGgoAAAANSUhEUgAAAe8AAAElCAYAAADN+mofAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXmspFd99/k551lrr1t3v7247W5sbOMkbSDmzcCEEQGi\nLIjJIBQ7CsgWI4VIKBmyoKBRQlASHCUZySJCL3qJEzJ/sEwSJkhJmEAEhn/yhhcDiW1we+n17rfu\nrb2e/Zk/qs69p8tt021f467O+UhHdW/V85znPE/Veb7nt5zziDzPcwwGg8FgMEwN8pVugMFgMBgM\nhmvDiLfBYDAYDFOGEW+DwWAwGKYMI94Gg8FgMEwZRrwNBoPBYJgyjHgbDAaDwTBlGPE2GF4iRSEQ\nL6I0Go1XuukGg2GCaenPwszzNhheGkII/uBF7Pd/Aqb7GQzXF9PSn+0f2pEMhhsY55VugMFgODSm\noT8bt7nBYDAYDFOGsbwNhkPAdCSD4cZhGvrzNLTRYLjumQY3m8FguDqmoT8b8TYYDgHTkQyGG4dp\n6M/T0EaD4bpnGkbqBoPh6piG/mzE22A4BExHMhhuHKahP09DGw2G655pGKkbDIarYxr6sxFvg+EQ\nMB3JYLhxmIb+PA1tNBiue6ZhpG4wGK6OaejPRrwNhkNgGjq7wWC4OqahPxvxNhgOAdORDIYbh2no\nz2Z5VIPhEHBeRJnkgQceYHFxkbvuumv/vd/6rd/i9ttv50d/9Ef5hV/4Bdrt9st7IgaD4VD688uN\nEW+D4Trh/vvv50tf+tJl773tbW/j8ccf57vf/S633norH/vYx16h1hkMhmvhSoPxX/zFX+T06dOc\nPn2am2++mdOnTwNw7tw5CoXC/me/+qu/+gPrnwbvgMFw3XMYHelNb3oT586du+y9t771rft/33PP\nPfzt3/7tIRzJYDC8EIfRn++//34+8IEP8J73vGf/vc9+9rP7f//mb/4m9Xp9//9Tp07x7W9/+4fa\nRoPhPz1X4zb79ri8WB5++GHuvffel1CDwWC4Gg7DDX6lwbgiz3M+//nP89WvfvVF12/E22A4BK6m\nI71+XBQPX0P9f/iHf4jrutx3333X1jCDwXDNXE1/fnRcXgzf+MY3WFxc5OTJk/vvnT17ltOnT1Or\n1fiDP/gD3vjGN77kNhoMhh/Ay5mw8ld/9Vf84z/+I//yL//yMh7FYDAorqY/3zMuik9dQ/2f+cxn\nLhuIr6yscPHiRWZmZnj00Ud55zvfyeOPP06lUnneOox4GwyHwMvVkb70pS/xJ3/yJzzyyCP4vv8y\nHcVgMOi8nMKYJAlf+MIXePTRA7vddV1c1wXg7rvv5uTJkzz11FPcfffdz1uPyTY3GA6Bw5hacu+9\n9/ITP/ETPPnkkxw7doyHH36YD3zgA/R6Pd761rdedRaqwWB4abycU8W+8pWvcPvtt7OysrL/3s7O\nDmmaAvDss8/y1FNPccstt7xgPcbyNhgOgcPoSJ/5zGee894DDzxwCDUbDIZr4TD687333ssjjzxC\ns9nk2LFjfPSjH+X+++/nc5/73HMST7/+9a/zu7/7uziOg5SST37yk5dlol8Jked5fgjtNBj+0yKE\n4OyL2O9mRlmnBoPh+mFa+rOxvA2GQ2Aa1kI2GAxXxzT0ZyPeBsMhYDqSwXDjMA39eRraaDBc9zgv\npiclh94Mg8FwCExDfzbZ5gaDwWAwTBnG8jYYDgF7CkbqBoPh6piG/mzE22A4BBzrlW6BwWA4LKah\nPxvxNhgOgRc1UjcYDNcl09Cfp6CJBsP1z4tKcDEYDNcl09Cfp6CJBsMUMAVuNoPBcJVMQX824m0w\nHAamJxkMNw5T0J+noIkGwxRgepLBcOMwBf15CppoMEwBpicZDDcOU9Cfp6CJBsMUMAUxMoPBcJVM\nQX824m0wHAamJxkMNw5T0J+noIkGwxRgepLBcOMwBf3ZrG1uMBgMBsOUMQXjC4NhCpiCGJnBYLhK\npqA/G/E2GA4D05MMhhuHKejPU9BEg2EKMD3JYLhxmIL+bGLeBsNhYL2IcgUeeugh7rrrLl7zmtfw\n0EMPvfztNhgMz+WQ+vPLyRSMLwyGKeAQetJjjz3Gpz71Kb75zW/iOA4//dM/zc/93M9x8uTJl165\nwWC4eqZAGY3lbTAcBvaLKBN8//vf55577sH3fSzL4id/8if5u7/7ux9O+w0GwwGH0J9fbox4GwyH\nwSF09te85jV84xvfYHd3l8FgwD/8wz9w6dKlH077DQbDAVMg3lPgHDAYpoCriHl9rQlf233+z1/9\n6lfzoQ99iLe97W2USiVOnz6NlGZ8bTD80JmCqWIiz/P8lW6EwTDNCCHI3/Ei9vsivFD3+/CHP8zx\n48f5lV/5lZfQOoPBcC28XP35sDHDeoPhMDgkN9vW1hYAFy5c4Atf+AL33Xffy9xwg8HwHA6hPz/w\nwAMsLi5y11137b/3kY98hKNHj3L69GlOnz7NP/3TP+1/9rGPfYxXvepVvPrVr+af//mfr6qJBoPh\npXJIbrZ3vetdNJtNHMfhE5/4BNVq9XAqNhgMV88h9Of777+fD3zgA7znPe/Zf08IwQc/+EE++MEP\nXrbtE088wec+9zmeeOIJVldX+amf+inOnDnzgmEzI94Gw3XE17/+9Ve6CQaD4RB405vexLlz557z\n/pVc63//93/Pvffei+M4nDhxglOnTvFv//ZvvOENb3je+o14GwyHgelJBsONw1X0569twte2rr3q\nj3/84/z1X/81r3vd6/izP/sz6vU6a2trlwn10aNHWV1dfcF6TMzbYDgMpmBqicFguEquov+++Qh8\n5PRBuRre//73c/bsWb7zne+wvLzMb/zGbzzvtkKIH9hEg8HwUpmCqSUGg+EqeZn688LCwv7f73vf\n+/j5n/95AI4cOcLFixf3P7t06RJHjhx5wbpekuUdBAH33HMPP/ZjP8Ydd9zB7/zO7wCwu7vLW9/6\nVm699Vbe9ra30Wq19ve51ow6g2EquAEsb9OfDYYxL1N/Xl9f3//7C1/4wn4m+jve8Q4++9nPEkUR\nZ8+e5amnnuLHf/zHX7CulzzPezAYUCwWSZKEN77xjfzpn/4pX/ziF5mbm+O3f/u3+eM//mP29vZ4\n8MEHeeKJJ7jvvvv45je/edUZdQbD9Y4QgvxFTMUW//WHOy/0ajD92fCfncPqz/feey+PPPIIOzs7\nLC4u8vu///t87Wtf4zvf+Q5CCG6++WY++clPsri4CMAf/dEf8fDDD2PbNg899BBvf/vbX/B4L3n8\nXywWAYiiiDRNmZmZ4Ytf/CKPPPIIAO9973t585vfzIMPPviiMuoMhqngOrSkXwymPxsMHEp//sxn\nPvOc9x544IHn3f7DH/4wH/7wh6+6/pfcxCzLuPvuu3nmmWd4//vfz5133snm5ub+aGJxcZHNzU2A\nq86o+0GBeoPhh8VVW8Y3SMz7sPuz6cuG64kbqT+/ZPGWUvKd73yHdrvN29/+dr761a9e9rkQ4gU7\n8PN9tvnkPBfSY/z35J5xeQNNZ4ZKtUO52qZc7TDn7rCUb7CSr7PEBmlmsZkt7pdQuFhWiiVTpJVx\nJF/ltvQMr07OcFv6JJtry3zkI5LG6z7Av515A359wKlbn+LUbWc4ddsZrFLCUBQZUmBAkVrcZinY\nYjHcZDHYwnUi8HOEn4OfITKQ8UHJm4J8e1y2JL/zZY8T730v/1r/L/xr/R4K5T5z5a39UhY9igzG\npc+J7kVuaZ8bl/OsVpY5Vz3O+doxzlWPURQDyvQoix4l+lSyLpW0Rznr8t8+usXP/u6PcUbeyhnr\nVp4Wp3j1xTPcdukpbrv0FLesn+Oxo3fwH8fu5LGjd/D9lVuRZEhSLDLcLOQ1e09w194TvGbvCW7a\nvcg3W6/jf+y9nn/b+3G+N7yd2Vu2mL1lm7X/91O84Y/fwtrFY6xdOsrqxWPs7s1RPbZH9WiL6rE9\nCgsDAnyGFBhSwCHmTh4fl8dYZp0d5thmnh3maVEnxSLBJsXCJ+AmzvPfP/JlfvMjPm4ecia5jTPp\nrTyZ3sZadpSh9MelQNj0ib/tET/qEX/bww4TZl7bpH73LjN377J8ZI2T+TOcyp/mZP4Mgpyn5Ks4\nI1/FGXEru6LB/yf+16vvCDeI5f3y9OeLQAh0tBJzecDQGRf1N0Ay3i4GckCMixxv54+LN972T4D/\nDdgbb1/VigNkWhGM7tA2Bw9kVnWLiYJ2TLXtHwH/O9DWzkc/B31bC3DHbS2MXwUQjEsIpOPtpPaq\nyv8F/B/j7dT2EihpJQd6QHdcYvWNjIsz3q44fk2A3fG12h3/r9r3f4/PbaiVbHyd3XER4zZnWtsL\nWh1S+/6S8TaM24l2Tf4b8Ovj90OtxON9VInH7VDXbPL8C+P2qTYycX0T4C1cNVPQnw+tibVajZ/9\n2Z/lW9/6FouLi2xsbLC0tMT6+vp+ht21ZNT9R+lOdrI59tI6pBkz6Q5Fu0ujuEPDbdKQO8zmTWaz\nXeayJnNZk25coR3PkEQurWiGgVXC8hNsL8byEwoiYEfMsWm1qNKmW6ogSj1mT+xw0n2KktfjxNxZ\njlsXONJdJ4h8BqLCnphlg2WcfsRG5wgz7Rb1dotGYZfZRpPZepNGY4dAFtilRkfWaLt1YsslTS3S\nwCbt2qwH58maJ2nGDbLAotAIaOS7HHUucbx0Dk+EOMT7pUKHAkMckYCAAJ8WddazJc6mN1OUA8qi\nR5kulbHwl2SfIgN2ZMaGXCKUPgUCltjAKcR0Z8qcS4/T9So0Z2ewaxHHvfOU8w7d0VCAnqgQCo+e\nU6ZZnGE9W8SyEuKCTb3c5LaZJ6hFe7jLAW4jYM8e4mURTj/G2k4R53PEVoYvA6qlDvPzO5Line truncated
"text": [
"<matplotlib.figure.Figure at 0xa401400>"
"<matplotlib.figure.Figure at 0x837da50>"
]
}
],
"prompt_number": 4
"prompt_number": 105
},
{
"cell_type": "code",
@@ -157,132 +138,58 @@
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 5,
"prompt_number": 106,
"text": [
"[<matplotlib.lines.Line2D at 0xa3ced68>]"
"[<matplotlib.lines.Line2D at 0x47ec290>]"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0xa3cecc0>"
"<matplotlib.figure.Figure at 0x4f05ed0>"
]
}
],
"prompt_number": 5
"prompt_number": 106
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"inv, reg = MagneticsDiffSecondaryInv(mesh, model, data)"
"options = {'maxIter': 10}\n",
"inv, reg = MagneticsDiffSecondaryInv(mesh, model, data, **options)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 6
"prompt_number": 119
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"m0 = (np.ones(mesh.nC)*1e-4*1/weight)[active_ind]\n",
"m0 = (np.ones(mesh.nC)*chibkg*1/weight)[active_ind]\n",
"data_ini = data.dpred(m0)\n",
"# m0 = (np.ones(mesh.nC)*1e-4)[active_ind]\n",
"\n",
"reg.mref = m0*0."
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 7
"prompt_number": 120
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"dobj = inv.objFunc.dataObj(m0)\n",
"print dobj\n",
"print model.transform(m0)"
"dobj = inv.objFunc.dataObj(m0)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"550874.334999\n",
"[ 1.25676273e-06 1.25676273e-06 1.25676273e-06 ..., 1.25676273e-06\n",
" 1.25676273e-06 1.25676273e-06]\n"
]
}
],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"data_ini = data.dpred(m0)\n",
"colorbar(mesh.plotImage(model.transform(m0)))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stderr",
"text": [
"C:\\Users\\SEOGI\\AppData\\Local\\Enthought\\Canopy\\App\\appdata\\canopy-1.0.1.1189.win-x86_64\\lib\\site-packages\\matplotlib\\colorbar.py:808: RuntimeWarning: invalid value encountered in divide\n",
" z = np.take(y, i0) + (xn-np.take(b,i0))*dy/db\n",
"C:\\Users\\SEOGI\\AppData\\Local\\Enthought\\Canopy\\App\\appdata\\canopy-1.0.1.1189.win-x86_64\\lib\\site-packages\\matplotlib\\colorbar.py:561: RuntimeWarning: invalid value encountered in greater\n",
" inrange = (ticks > -0.001) & (ticks < 1.001)\n",
"C:\\Users\\SEOGI\\AppData\\Local\\Enthought\\Canopy\\App\\appdata\\canopy-1.0.1.1189.win-x86_64\\lib\\site-packages\\matplotlib\\colorbar.py:561: RuntimeWarning: invalid value encountered in less\n",
" inrange = (ticks > -0.001) & (ticks < 1.001)\n"
]
},
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 9,
"text": [
"<matplotlib.colorbar.Colorbar instance at 0x000000000E4D3408>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0xa394940>"
]
}
],
"prompt_number": 9
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print (model.transform(m0)/mu_0).max()\n",
"print model.transform(m0)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"1.0001\n",
"[ 1.25676273e-06 1.25676273e-06 1.25676273e-06 ..., 1.25676273e-06\n",
" 1.25676273e-06 1.25676273e-06]\n"
]
}
],
"prompt_number": 10
"outputs": [],
"prompt_number": 121
},
{
"cell_type": "code",
@@ -301,26 +208,26 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "iVBORw0KGgoAAAANSUhEUgAAAe8AAAElCAYAAADN+mofAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXuwJkWd5/3JrKrnnNP3BrRZuplA7SZopMVGbkaAw4Zy\nWYjtIGSDAWIEgX3HwHBch52VwfeNEQ3nBda9xCqBr84og+4uYoSrELtsh8OKjW4sthccRnCG49g9\n0zTgDHKx6ct5nqrK94/MX9Wv8qnnXLoPw3l66huRp+qpU5esrPzlN3+XzDTOOUeHDh06dOjQYWxg\nX+8MdOjQoUOHDh0Who68O3To0KFDhzFDR94dOnTo0KHDmKEj7w4dOnTo0GHM0JF3hw4dOnToMGbo\nyLtDhw4dOnQYM3Tk3aHDEWKZMZjDSMccc8zrnfUOHTpEGBd5Nt047w4djgzGGD51GNf9P0Anfh06\nLC2Mizyn/2BP6tDhKEb2emegQ4cOi4ZxkOfObN6hQ4cOHTqMGTrNu0OHRUAnSB06HD0YB3kehzx2\n6LDkMQ5mtg4dOswP4yDPHXl36LAI6ASpQ4ejB+Mgz+OQxw4dljzGoafeoUOH+WEc5Lkj7w4dFgGd\nIHXocPRgHOR5HPLYocOSxzj01Dt06DA/jIM8d+TdocMioBOkDh2OHoyDPI9DHjt0WPIYh556hw4d\n5odxkOeOvDt0WASMg7B36NBhfhgHee7Iu0OHRUAnSB06HD0YB3nupkft0GERkB1GasP27ds55ZRT\n2LRpE3feeWfrOR/+8IfZtGkTp59+Oo8//vi8rv3sZz/L5s2bOe2007jllluq40888QTvfOc7Oe20\n03jb295Gv98H4Ec/+hFbtmxh06ZN/Kt/9a8WXiAdOowxFkueX0t05N2hwxJBURR86EMfYvv27Tz1\n1FPcd999/OxnP2uc89BDD/Hzn/+c6elpvvCFL3DTTTfNee0jjzzCgw8+yBNPPMFPf/pTfv/3fx+A\nPM953/vexxe+8AV++tOfsmPHDtLU6xw33XQTX/ziF5menmZ6eprt27f/A5ZEhw7jjxtuuIF169ax\nZcuW6thVV13F1q1b2bp1K29605vYunUrALt372Zqaqr63wc/+ME57z8O1oEOHZY8FkOQdu7cycaN\nGznppJMAL+gPPPAAmzdvrs558MEHue666wA455xzePnll3n++efZtWvXyGs/97nPceutt5JlXj94\nwxveAMC3vvUt3va2t1WNy9q1awF47rnn2LdvH2effTYA1157Ld/85je55JJLFuEtO3RY+lgMeb7+\n+uv53d/9Xa699trq2Fe/+tVq//d///dZs2ZN9Xvjxo0NS9pc6DTvDh0WAfMxq/0U+IpKMfbu3cuJ\nJ55Y/d6wYQN79+6d1znPPvvsyGunp6d59NFHOffcc7ngggv44Q9/WB03xnDJJZfwjne8g09/+tPV\nMzZs2FDda/369UP56NDhaMZimM3PP//8qkMcwznH1772Na6++urDzmOneXfosAiYjyCdFZLgS9H/\njTHzepZzbp658sjznJdeeonHHnuMH/zgB1x55ZX84he/YDAY8L3vfY8f/vCHTE1N8e53v5t3vOMd\nrF69ekH379DhaMN85PnHIR0Ovvvd77Ju3Tre8pa3VMd27drF1q1bWb16NZ/61Kc477zzjjiPHTp0\nmAOLEbCyfv169uzZU/3es2dPQwNuO+eZZ55hw4YNDAaDkddu2LCB9773vQCcddZZWGt54YUXOPHE\nE3nXu97FMcccA8Cll17Kj3/8Y377t3+bZ555pvGM9evXL8IbdugwHpiPPJ8TkuBPFnD/++67j2uu\nuab6fcIJJ7Bnzx7Wrl3Lj3/8Yy6//HKefPJJVq5cOfIendm8Q4dFQHoYKcaZZ57J9PQ0u3fvpt/v\nc//997Nt27bGOdu2bePLX/4yAI899hhr1qxh3bp1s157+eWX8+1vfxuAp59+mn6/z3HHHcdFF13E\nX/zFX3Dw4EHyPGfHjh289a1v5fjjj2fVqlV8//vfxznHV77yFS6//PJFL7MOHZYqFkOeRyHPc77x\njW/wW7/1W9WxXq9XmdjPOOMM3vKWtzA9PT1nHjt06HCEWAzNO01T7rrrLi6++GKKouDGG29k8+bN\nfP7znwfgAx/4AJdeeikPPfQQGzduZPny5dxzzz2zXgs+6vWGG25gy5Yt9Hq9ivzXrl3LzTffzFln\nnYUxhssuu4x/9s/+GQB3330373//+zl48CCXXnppF6zW4R8VXsuhXw8//DCbN2/mhBNOqI698MIL\nrF27liRJ+MUvfsH09DRvfvObZ72PcQt1oHXo0KEBYwxPH8Z1J7Nw/3WHDh1eWyyWPF999dXs2LGD\nX/3qV7zxjW/kk5/8JNdffz3XX38973znO/md3/md6tz/9t/+G3/4h39IlmVYa/nkJz/JZZddNns+\nO/Lu0OHIYIxh12Fc9yY68u7QYalhXOS5M5t36LAIGIe5kDt06DA/jIM8d+TdocMioBOkDh2OHoyD\nPI9DHjt0WPLIDkeS8kXPRocOHRYB4yDP3VCxDh06dOjQYczQad4dOiwC0jHoqXfo0GF+GAd57si7\nQ4dFQJa83jno0KHDYmEc5Lkj7w4dFgGH1VPv0KHDksQ4yPMYZLFDh6WPwwpw6dChw5LEOMjzGGSx\nQ4cxwBiY2Tp06DBPjIE8d+TdocNioJOkDh2OHoyBPI9BFjt0GAN0ktShw9GDMZDnMchihw5jgE6S\nOnQ4ejAG8jwGWezQYQwwBj6yDh06zBNjIM8deXfosBjoJKlDh6MHYyDPY5DFDh3GAJ0kdehw9GAM\n5Lmb27xDhw4dOnQYM4xB/6JDhzHAGPjIOnToME+MgTx35N2hw2Kgk6QOHY4ejIE8j0EWO3QYA3SS\n1KHD0YMxkOcxyGKHDmOAMTCzdejQYZ4YA3nuyLtDh8VAJ0kdOhw9GAN5HoMsdugwBugkqUOHowdj\nIM9jkMUOHcYAnSR16HD0YAzkeQyy2KHDGGAMfGQdOnSYJ8ZAnjvy7tBhMdBJUocORw/GQJ67GdY6\ndFgMpIeRWrB9+3ZOOeUUNm3axJ133tl6zoc//GE2bdrE6aefzuOPPz6vaz/72c+yefNmTjvtNG65\n5ZbG//72b/+WFStW8O///b+vjl1wwQWccsopbN26la1bt/LCCy8soDA6dBhzLII833DDDaxbt44t\nW7ZUx2677TY2bNhQydX//J//s/rf7bffzqZNmzjllFP41re+Na8sdujQ4UixCGa2oij40Ic+xMMP\nP8z69es566yz2LZtG5s3b67Oeeihh/j5z3/O9PQ03//+97npppt47LHHZr32kUce4cEHH+SJJ54g\nyzL+/u//vvHcm2++mcsuu6xxzBjDf/2v/5UzzjjjyF+sQ4dxwyLI8/XXX8/v/u7vcu2111bHjDHc\nfPPN3HzzzY1zn3rqKe6//36eeuop9u7dy3ve8x6efvpprB2tX3ead4cOSwQ7d+5k48aNnHTSSWRZ\nxlVXXcUDDzzQOOfBBx/kuuuuA+Ccc87h5Zdf5vnnn5/12s997nPceuutZFkGwBve8Ibqft/85jd5\n85vfzKmnnjqUH+fca/WqHToc9Tj//PNZu3bt0PE2uXrggQe4+uqrybKMk046iY0bN7Jz585Z79+R\nd4cOi4F5mNW+8yu47Wd1irF3715OPPHE6veGDRvYu3fvvM559tlnR147PT3No48+yrnnnssFF1zA\nD3/4QwBeffVV/u2//bfcdtttra903XXXsXXrVj71qU8ttDQ6dBhvLII8j8JnP/tZTj/9dG688UZe\nfvllAJ599lk2bNhQndMm+zE68u7QYTEwD2G/YD3ctrVOMYwx83rUQjXiPM956aWXeOyxx/j0pz/N\nlVdeCXj/2+/93u+xbNmyoXv+l//yX/jpT3/Kd7/7Xb773e/yla98ZUHP7NBhrLEI8tyGm266iV27\ndvGTn/yEf/JP/gn/+l//65HnztUedD7vDh0WA4vgI1u/fj179uypfu/Zs6fRG28755lnnmHDhg0M\nBoOR127YsIH3vve9AJx11llYa3nhhRfYuXMnX//61/noRz/Kyy+/jLWWqakpPvjBD3LCCScAsGLF\nCq655hp27tzJ+973viN/yQ4dxgGv0VCxN77xjdX+v/yX/5J//s//OdAu1+vXr5/1XkekeR86dIhz\nzjmHt7/97Zx66qnceuutALz44otceOGFnHzyyVx00UWVaQAWHlHXocNYYBGiU88880ymp6fZvXs3\n/X6f+++/n23btjXO2bZtG1/+8pcBeOyxx1izZg3r1q2b9drLL7+cb3/72wA8/fTT9Pt9jjvuOB59\n9FF27drFrl27+MhHPsItt9zCvffey+mnn87JJ5/MrbfeymAw4Otf/zoPP/xwJ88d/vFgkUaPxHju\nueeq/W984xtVJPq2bdv46le/Sr/fZ9euXUxPT3P22WfPmcXDxuTkJI888gjLli0jz3POO+88vve9\n7/Hggw9y4YUX8tGPfpQ777yTO+64gzvuuOOwIuo6dBgLLIINK01T7rrrLi6++GKKouDGG29k8+bN\nfP7znwfgAx/4AJdeeikPPfQQGzduZPny5dxzzz2zXgt+yMoNN9zAli1b6PV6Ffm3Pf+RRx7BOce7\n3vUuPvOZz3D//fdzzDHH8P73v59bbrmlk+cO/ziwCPJ89dVXs2PHDl544QVOPPFEPvGJT/Cd73yH\nn/zkJxhjeNOb3lTJ9qmnnsqVV17JqaeeSpqm3H333XOazY1bpJDSAwcO8Ju/+Zv86Z/+KVdccQU7\nduxg3bp1PP/881xwwQX85V/+JbfffjvW2mqc6SWXXMJtt93GueeeuxhZ6NDhdYExBvehw7Line truncated
"text": [
"<matplotlib.figure.Figure at 0xb4096d8>"
"<matplotlib.figure.Figure at 0x8e37950>"
]
}
],
"prompt_number": 11
"prompt_number": 122
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"beta = Parameters.BetaSchedule(coolingFactor = 10, coolingRate = 2, beta0 = 1e14)\n",
"beta = Parameters.BetaSchedule(coolingFactor = 10, coolingRate = 1, beta0 = 1e17)\n",
"inv.objFunc.beta = beta\n",
"inv.opt.maxIterLS = 40\n"
"inv.opt.maxIterLS = 20"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 12
"prompt_number": 123
},
{
"cell_type": "code",
@@ -331,7 +238,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 13
"prompt_number": 124
},
{
"cell_type": "code",
@@ -345,7 +252,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 20
"prompt_number": 125
},
{
"cell_type": "code",
@@ -364,7 +271,7 @@
"============================ Inexact Gauss Newton ============================\n",
" # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n",
"-----------------------------------------------------------------------------\n",
" 0 1.00e+14 1.67e+08 1.28e-07 1.80e+08 9.58e+08 0 Skip BFGS "
" 0 1.00e+17 1.73e+08 1.09e-07 1.11e+10 2.76e+08 0 "
]
},
{
@@ -372,31 +279,7 @@
"stream": "stdout",
"text": [
"\n",
" 1 1.00e+14 1.36e+07 1.29e-07 2.64e+07 1.11e+08 0 Skip BFGS "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" 2 1.00e+13 1.36e+07 1.29e-07 1.49e+07 1.09e+08 5 Skip BFGS "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" 3 1.00e+13 1.29e+07 1.29e-07 1.42e+07 1.06e+08 5 Skip BFGS "
" 1 1.00e+16 2.50e+07 1.09e-07 1.12e+09 4.74e+07 0 "
]
},
{
@@ -420,7 +303,15 @@
"stream": "stdout",
"text": [
"\n",
" 4 1.00e+12 7.14e+06 1.29e-07 7.27e+06 1.94e+08 3 "
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" 2 1.00e+15 8.42e+06 1.09e-07 1.18e+08 7.04e+07 0 "
]
},
{
@@ -436,7 +327,271 @@
"stream": "stdout",
"text": [
"\n",
" 5 1.00e+12 7.14e+06 1.29e-07 7.27e+06 1.94e+08 17 Skip BFGS "
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" 3 1.00e+14 8.39e+06 1.09e-07 1.93e+07 6.91e+07 1 Skip BFGS "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" 4 1.00e+13 8.32e+06 1.09e-07 9.41e+06 6.85e+07 0 Skip BFGS "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" 5 1.00e+12 8.32e+06 1.09e-07 8.43e+06 6.93e+07 4 Skip BFGS "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" 6 1.00e+11 8.32e+06 1.09e-07 8.33e+06 6.94e+07 16 "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" 7 1.00e+10 8.32e+06 1.09e-07 8.32e+06 6.99e+07 16 Skip BFGS "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" 8 1.00e+09 8.32e+06 1.09e-07 8.32e+06 6.95e+07 6 Skip BFGS "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" 9 1.00e+08 8.21e+06 1.09e-07 8.21e+06 6.71e+07 4 "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Iterative solver did not work well (Jvec)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" 10 1.00e+07 7.06e+06 1.09e-07 7.06e+06 6.48e+07 0 Skip BFGS "
]
},
{
@@ -445,16 +600,16 @@
"text": [
"\n",
"------------------------- STOP! -------------------------\n",
"1 : |fc-fOld| = 7.5435e+01 <= tolF*(1+|f0|) = 1.7998e+07\n",
"1 : |xc-x_last| = 6.9661e-07 <= tolX*(1+|x0|) = 1.1412e-01\n",
"0 : |proj(x-g)-x| = 1.9436e+08 <= tolG = 1.0000e-01\n",
"0 : |proj(x-g)-x| = 1.9436e+08 <= 1e3*eps = 1.0000e-02\n",
"1 : maxIter = 5 <= iter = 5\n",
"1 : |fc-fOld| = 1.1476e+06 <= tolF*(1+|f0|) = 1.1121e+09\n",
"0 : |xc-x_last| = 3.2368e-01 <= tolX*(1+|x0|) = 1.0013e-01\n",
"0 : |proj(x-g)-x| = 6.4772e+07 <= tolG = 1.0000e-01\n",
"0 : |proj(x-g)-x| = 6.4772e+07 <= 1e3*eps = 1.0000e-02\n",
"1 : maxIter = 10 <= iter = 10\n",
"------------------------- DONE! -------------------------\n"
]
}
],
"prompt_number": 21
"prompt_number": 126
},
{
"cell_type": "code",
@@ -463,8 +618,8 @@
"indx = 15\n",
"fig, axes = subplots(1,2, figsize = (12, 5))\n",
"ps1 = mesh.plotSlice(chi, vType='CC', ind=indx, normal='X',ax = axes[0], grid=True, gridOpts={'color':'b','lw':0.3, 'alpha':0.5}); axes[0].set_title('$\\chi_{true}$', fontsize = 16);\n",
"ps2 = mesh.plotSlice(model.transform(out\n",
" )/mu_0-1, vType='CC', ind=indx, normal='X', ax = axes[1], grid=True, gridOpts={'color':'b','lw':0.3, 'alpha':0.5}); axes[1].set_title('$\\chi_{pred}$', fontsize = 16);\n",
"ps2 = mesh.plotSlice(model.transform(out)/mu_0-1, vType='CC', ind=indx, normal='X', ax = axes[1], grid=True, gridOpts={'color':'b','lw':0.3, 'alpha':0.5}); axes[1].set_title('$\\chi_{pred}$', fontsize = 16);\n",
"\n",
"colorbar(ps1[0], ax = axes[0])\n",
"colorbar(ps2[0], ax = axes[1])\n",
"print 'x=', mesh.vectorCCx[indx]"
@@ -482,13 +637,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAuAAAAFMCAYAAACK6AkBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt0VPW9///nJJBwMUIyINZKQiMxJK2VWzKpBYKUAtZj\n8YKrpi1eaL8nJ3Q1VAyni6Wnoud7FGv9lsoSzLEL/Z1Sqnax/NaimAJfQ6CVDBFaLAQvGEStFhgg\n5EouzO+PIZO57JCZ7NlJ9vB6rDVL57M/+7M/e2fyzofPfPZ7O7xerxcREREREekXCQPdARERERGR\nS4kG4CIiIiIi/UgDcBERERGRfqQBuIiIiIhIP9IAXERERESkH2kALiIiIiLSjzQAFxERERHpR0MG\nugMS/5566in27NnDkCFD2LBhA8OHD/dv27lzJ+3t7cydO3cAeygiIiLSfxx6EI9Y6fz585w+fZph\nw4aRnZ3N/fffzwMPPADAgQMH2LdvH/fee+/AdlJERABNmIj0Fy1BEUslJCTgdDoZOXIkP/jBD3j+\n+ecB+Oijj9i9e7cG3yIig8T58+e59957eeGFF9i1axfr1q3zbztw4AB1dXUafIvEiGbApd8cPXqU\nzMxMKisrefvtt7n//vsHuksiImLg4YcfZvPmzfz973/no48+4rXXXmPp0qUD3S2RuKEBuPSryZMn\n84UvfIHXX38dh8MRtK2jo4PbbruNP/7xjwPUOxERgf6bMFm6dCnNzc288MILlrQvMljpJkzpN+fP\nnyc9PZ2PPvoobPANUF1dTVZW1gD0TEREAk2YMIGvfvWrPP7447z++uuWHScvL8+ytkUGMw3Apd+s\nW7eO//iP/6CgoIC6ujq+9KUv+bf96U9/4qmnnuK6667jzTffZNiwYfzpT3+ipqaGgoIC9u3bx89/\n/nP27NnD8ePHuf/++3n55Zdpbm7m3nvv5cCBA7z++utcf/31jBgxgsLCwgE8UxERe+ttwiRW/vzn\nP7Ny5UrL2hcZrDQAl37x3//933z7298mPT2dG264geeff55HH33Uv33evHn84he/4Gc/+xmXX345\nhw4d4qtf/Sqtra08+OCDnDt3jr/85S+MHTuWd999F4CtW7fywAMP8M9//pPvfe97VFdXc/78eSoq\nKgbqNEVE4sLFJkxqamrYsmULI0aMIDs7G7fbzb/8y79QUVHB22+/7Z802bx5s+HkyO7du3nvvffo\n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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0xe4c6780>"
"<matplotlib.figure.Figure at 0xbafbd50>"
]
}
],
"prompt_number": 22
"prompt_number": 127
},
{
"cell_type": "code",
@@ -504,21 +659,21 @@
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 23,
"prompt_number": 128,
"text": [
"<matplotlib.collections.QuadMesh at 0xa40ce10>"
"<matplotlib.collections.QuadMesh at 0x434fd50>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAs8AAAE/CAYAAAC5CC4zAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt8FFWe//9X50IIEBQQAotE5DJAUIRwCS6MwctqZBSU\nyQAzCzoIIvD1B4w4oKBDXB/j3WEXfoo4s9FVUAZcUUD9iooBwSEggopAhAHkGsKdoOGS0N8/TldS\n6XSSTlLVSYf3k0c/0pfq6vOmOpVPnzp12uP1er2IiIiIiEiFImq6ASIiIiIi4ULFs4iIiIhIkFQ8\ni4iIiIgEScWziIiIiEiQVDyLiIiIiARJxbOIiIiISJBUPEud89FHH5GSkkLz5s1p2bIlAwcOZO3a\ntQAcPHiQkSNH0qFDBy677DKuu+46Zs2axcWLF2u41SIily7ttyWcqHiWOuWvf/0r//7v/07fvn1Z\nt24dO3bs4L777mPRokXk5OTQrVs38vLymDNnDkePHuWNN97g888/58yZMzXddBGRS5L22xJuPPqS\nFKkr8vLyuOqqq/jjH//Io48+Wurx+++/n9WrV5OdnV0DrRMREX/ab0s4Us+z1Blbtmzh5MmTDBo0\nKODjq1evLvMxEREJPe23JRypeJY6Y9++fcTFxdG1a9eAj+/fv59//dd/DXGrRESkLNpvSzhS8Sx1\nRps2bcjLy+P7778v8/Evv/wyxK0SEZGyaL8t4UjFs9QZ11xzDU2aNGHp0qUBH7/hhhtYtmxZiFsl\nIiJl0X5bwlFkenp6ek03QsQJMTExNGvWjCeffJKTJ0/Stm1boqKi+PDDD3nllVeYOXMmL774IllZ\nWVx++eUkJCSwdetWxo0bx+233079+vVrOoKIyCVF+20JR+p5ljplzJgxzJ8/n7Vr15KcnMwvfvEL\nMjIy+O1vf0t8fDzffvstDRs2ZMKECVxxxRWMHDmSG2+8kbi4uJpuuojIJUn7bQk3mqpORERERCRI\n6nkWEREREQmSimcRERERkSCpeBYRERERCVJUTTfAzuPx1HQTRESq7FI7hUT7bBEJZ1XdZ9eq4tkI\nhz8+6b5LYNa2qB1/V9Ipr63lCX2OdKra1oo4nyUdt9pakcpnSaem2lqRklnSqa3tLC0de1u93ku5\nkEyv6QYEKRMYEPARr3cmAB7PEyFrTdkyKaudwQhtlkyq09byOJ8jE7faWpHKZ8mkptpakdJZMqmt\nbS0tk5JtTa/ymjRsQ0REREQkSCqeRURERESCpOK5SgbUdAMqYUBNN6ASBtR0AyphQE03oBIG1HQD\ngjSgphtQCQNqugFSaW1rugFBalvTDaiEtjXdgEpoW9MNqIS2Nd2ASmhb0w2ohLaOrUnFc5UMqOkG\nVMKAmm5AJQyo6QZUwoCabkAlDKjpBgRpQE03oBIG1HQDpNLa1nQDgtS2phtQCW1rugGV0LamG1AJ\nbWu6AZXQtqYbUAltHVuTimcRERERkSCpeBYRERERCZKKZxERERGRIKl4FhEREREJkopnEREREZEg\nqXgWEREREQmSimcRERERkSCpeBYRERERCZKKZxERERGRIKl4FhEREREJkopnEREREZEgqXgWERER\nEQmSimcRERERkSCpeBYRERERCZKKZxERERGRIKl4FhEREREJkopnEREREZEgqXgWEREREQmSimcR\nERERkSCpeBYRERERCZKKZxERERGRIKl4FhEREREJkopnEREREZEgqXgWEREREQmSimcRERERkSCp\neBYRERERCZKKZxERERGRIKl4FhEREREJkopnEREREZEgqXgWEREREQmSimcRERERkSCpeBYRERER\nCZKKZxERERGRIKl4FhEREREJUoXFc9u2benWrRs9evSgT58+AOTl5TF48GASEhK46667OHPmTNHy\ns2fPpmPHjiQmJrJmzZqi+7dt20ZSUhLt2rVjxowZLkQRERHts0VE3FVh8ezxeMjMzGTTpk2sX78e\ngLlz55KQkMCOHTu48soreeWVVwDIzc3l5Zdf5rPPPmPu3LlMnDixaD1Tpkxh2rRpbNiwgVWrVvHV\nV1+5FElE5NKlfbaIiLuCGrbh9XpL3F6/fj2jR48mJiaG++67j6ysLACysrJITU0lISGBlJQUvF5v\nUQ9HdnY2w4YNo1mzZgwZMqToOSIi4izts0VE3BNUz/NNN93EXXfdxdKlSwHYsGEDnTt3BqBz585F\nvRtZWVl06dKl6LmdOnUiKyuLnTt30qJFi6L7ExMTWbduXRmvmG67ZFY6kIhIaGRi7avS09NrtCV2\nod9nZ9ouexxOIyLilD2U3F9VXYXF89q1a/nmm294+umneeihh8jJySnVq1Eej8dT6r7yn59uuwwI\n+nWCkZMDSUnm+qpVMHx48WOjRsHKlZCbC/v2wbx5cOutZa8rPh4OHYLCQmjVytFmBqW6WVJSTNv9\n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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0xb42da90>"
"<matplotlib.figure.Figure at 0x4e45150>"
]
}
],
"prompt_number": 23
"prompt_number": 128
},
{
"cell_type": "code",
@@ -529,7 +684,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 24
"prompt_number": 129
},
{
"cell_type": "code",
@@ -548,40 +703,22 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "iVBORw0KGgoAAAANSUhEUgAAAe8AAAElCAYAAADN+mofAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXuMZddd7/lZ+3XOqap2u4OTDum2cGI72J2YpBOwQxRL\n5pKYQQyWRYShLZHIDTO6RMqICY8ENBpwlMQOgRmRSOZy72ATLgx2pAzYN4AnARKHQUACcSBKz4x7\nkjZqdxxfjO22u6vqPPZe88dav7N/e9Xe51F1yl2nvb/S0j5nP9d+/NZ3/R7rt4y11tKiRYsWLVq0\nWBpEF7oCLVq0aNGiRYv50JJ3ixYtWrRosWRoybtFixYtWrRYMrTk3aJFixYtWiwZWvJu0aJFixYt\nlgwtebdo0aJFixZLhpa8W7TYIVaMwWyjvOxlL7vQVW/RokWAZZFn047zbtFiZzDG8KFtHPc/Aa34\ntWixt7As8txq3i1aLADpNkqI48ePc/DgQa677rrK+k984hNce+21vP71r+f973//eP1dd93F1Vdf\nzTXXXMNnP/vZXbirFi1emliEPO82kgtwzRYtWtTgjjvu4L3vfS/vete7xus+//nP89BDD/HP//zP\npGnKv/7rvwJw4sQJHnjgAU6cOMGZM2d4+9vfzmOPPUYUtf3xFi1eCmglvUWLBSDZRglx4403cuDA\ngcq63/7t3+aXf/mXSVPXt3/5y18OwIMPPsixY8dI05QrrriCq666ii996Uu7cWstWrzksAh53m20\n5N2ixQIwi1ntceAvVJkFJ0+e5Itf/CJvectbuOmmm/iHf/gHAL71rW9x+PDh8X6HDx/mzJkzi7mZ\nFi1e4mjN5i1avEQwiyBd64vgz2c4ZjQa8eyzz/J3f/d3fPnLX+a2227jm9/8Zu2+xpgZztiiRYtp\nWAZiXIY6tmix57FbPe/Dhw/zYz/2YwB83/d9H1EU8fTTT3Po0CFOnz493u+JJ57g0KFDu1SLFi1e\nWrgQmvS8aM3mLVosALvlI7v11lv5q7/6KwAee+wxBoMBl112Gbfccgv3338/g8GAU6dOcfLkSa6/\n/vrF3lSLFi9RLIPPu9W8W7RYABbRUz927BiPPPII//Zv/8bll1/OBz/4QY4fP87x48e57rrryLKM\n3//93wfgyJEj3HbbbRw5coQkSbjnnntas3mLFgvCMmjebZKWFi12CGMM92/juJ+kTdLSosVew7LI\nc6t5t2ixACxDT71FixazYRnkuSXvFi0WgGUQ9hYtWsyGZZDnlrxbtFgAWkFq0eLiwTLI8zLUsUWL\nPY9l6Km3aNFiNiyDPLdDxVq0aNGiRYsFo26ioZ/8yZ/k6NGjHD16lFe/+tUcPXoUgMcff5xerzfe\n9p73vGfq+VvNu0WLBaAVpBYtLh4sQp7rJhq6//4yjv0XfuEXuPTSS8f/r7rqKh599NEXtY4tWrzk\nsQxmthYtWsyGRcjzjTfeyOOPP167zVrLpz71KT7/+c9v+/wtebdosQC0gtSixcWDWeT5K75sB3/9\n13/NwYMHufLKK8frTp06xdGjR9m/fz8f+tCHeNvb3rbjOrZo0WIKWs27RYuLB7PI8w2+CP63Oc7/\nR3/0R9x+++3j/6961as4ffo0Bw4c4Ctf+Qq33norX//619m3b1/jOVrybtFiAWgFqUWLiwe7Kc+j\n0Yg//uM/5itfKfX2LMvIsgyAN73pTVx55ZWcPHmSN73pTRekji1avGTQat4tWlw82E15/ou/+Auu\nvfZaXvWqV43XPf300xw4cIA4jvnmN7/JyZMnec1rXjPxPO1QsRYtFoBlmIWoRYsWs2ER8nzs2DHe\n+ta38thjj3H55Zdz3333AfDAAw9w7Nixyr5f/OIXecMb3sDRo0f58R//cX7nd36nEoleh3ZikhYt\ndghjDKe2cdyraScmadFir2FZ5LlVAFq0WABas3mLFhcPlkGeW/Ju0WIBaAWpRYuLB8sgz8tQxxYt\n9jzS7UjSaOHVaNGixQKwDPLcBqy1aNGiRYsWS4ZW827RYgFIlqCn3qJFi9mwDPLckneLFgtAGl/o\nGrRo0WJRWAZ5bsm7RYsFYFs99RYtWuxJLIM8L0EVW7TY+9hWgEuLFi32JJZBnpegii1aLAGWwMzW\nokWLGbEE8txGm7dosQgsIJ/i8ePHOXjwINddd92Wbb/5m79JFEU888wz43V33XUXV199Nddccw2f\n/exnF31HLVq8dLEE+Y5b8m7RYhFYgLDfcccdPPzww1vWnz59ms997nN813d913jdiRMneOCBBzhx\n4gQPP/ww73nPeyiKYtF31aLFSxMtebdo8RLBAoT9xhtv5MCBA1vWv+997+PXf/3XK+sefPBBjh07\nRpqmXHHFFVx11VV86UtfWuQdtWjx0sUSkHfr827RYhGYwUf2hXX4wsZ8p33wwQc5fPgw3/M931NZ\n/61vfYu3vOUt4/+HDx/mzJkz8528RYsW9VgCn3dL3i1aLAIzSNJNl7giuPOZ5n0B1tfX+chHPsLn\nPve58bpJsxYZY6ZXokWLFtOxBMy4BFVs0WIJsAuS9I1vfIPHH3+cN7zhDQA88cQTvPnNb+bv//7v\nOXToEKdPnx7v+8QTT3Do0KHFV6JFi5ciloAZW593ixZ7FNdddx1PPfUUp06d4tSpUxw+fJivfOUr\nHDx4kFtuuYX777+fwWDAqVOnOHnyJNdff/2FrnKLFi1eJLTk3aLFIhBvowQ4duwYb33rW3nssce4\n/PLLue+++yrbtVn8yJEj3HbbbRw5coQf/uEf5p577mnN5i1aLAoLkOfdhrGTnGgtWrSYCmMM9nu3\ncdw/TPZht2jR4sXHssjzElj2W7RYArSS1KLFxYMlkOclqGKLFkuAJRha0qJFixmxBPLckneLFotA\nK0ktWlw8WAJ5XoIqtmixBGglqUWLiwdLIM9LUMUWLZYArSS1aHHxYAnkeQmq2KLFEmAJfGQtWrSY\nEUsgzy15t2ixCLSS1KLFxYMlkOc2SUuLFovAEsxC1KJFixmxAHk+fvw4Bw8e5Lrrrhuv+7Vf+zUO\nHz7M0aNHOXr0KH/+538+3nbXXXdx9dVXc8011/DZz352ahVb8m7RYhFYgoxMLVq0mBELkOc77riD\nhx9+uLLOGMP73vc+Hn30UR599FF++Id/GIATJ07wwAMPcOLECR5++GHe8573UBTFxCq25N2iRYsW\nLVosGDfeeCMHDhzYsr4uC9uDDz7IsWPHSNOUK664gquuuoovfelLE8/fGu9atFgEWklq0eLiwQzy\n/IWn4Av/df5Tf+ITn+D3f//3+d7v/V5+8zd/k0svvZRvfetbvOUtbxnvc/jwYc6cOTPxPK3m3aLF\nItD6vFu0uHgwg/zedAh+7WhZZsHP/uzPcurUKb761a/ynd/5nfz8z/98477TJhpqm5AWLRaB1ofd\nosXFg12S51e84hXj3z/zMz/Dj/7ojwJw6NAhTp8+Pd72xBNPcOjQoYnn2pHmvbm5yQ033MAb3/hG\njhw5wi//8i8D8Mwzz/COd7yD1772tdx8880899xz42Pmjahr0WIpcBFo3q08t2jhsUvy/OSTT45/\n//Ef//E4Ev2WW27h/vvvZzAYcOrUKU6ePMn1118/8Vw7nhJ0fX2dlZUVRqMRb3vb2/iN3/gNHnro\nIS677DJ+6Zd+iY9+9KM8++yz3H333Zw4cYLbb7+dL3/5y5w5c4a3v/3tPPbYY0RRa71vsbwwxmD/\n/TaO+w97b0rQVp5bvNSxKHk+duwYjzzyCE8//TQHDx7kzjvv5Atf+AJf/epXMcbw6le/mt/5nd/h\n4MGDAHzkIx/h3nvvJUkSfuu3fosf+qEfmni9Hff/V1ZWABgMBuR5zoEDB3jooYd45JFHAHj3u9/N\nTTfdxN13390YUacd9S1aLCX2oCa9HbTy3KIFC5HnP/qjP9qy7vjx4437/8qv/Aq/8iu/MvP5d1zF\noih405vexDe+8Q1+9md/lte97nU89dRT497EwYMHeeqppwBmjqib5qhv0eLFwsya8UXi8160PLey\n3GIv4WKS5x2TdxRFfPWrX+Xs2bP80A/9EJ///Ocr240xEwW4eduvNV0RMKrsFH8J/OACzrMb1zJs\n714N8Dng5m0ePy/+T6DOxDOt/tt5l58B/tua9bamTELd/mF5/4x14qLRvHdHnk8DfeB5VYZUHYap\nL/IbYOT3G+Leh3wnkd+v60vH7/sx4J3As37/S1RJgUIVg2uhE8osG3Luuu82Cvb9CPDfAWfV/eh7\n0PvGQObr2vNLA2z60gdyv1+kllL+F+B/9PvJ/hGwqooFzgEv+DKUN+JL6vdb8csR8Ix/Vs/4/1K/\n/+zvbUOVwj/nzBfj61youvfUOSL1/kZ+HyjlUp7JfwJ+zq/vqzL0x0gZ+nrIMwvvv+frJ3UkeL4j\n5mp7l0CeF1bF/fv38yM/8iP84z/+IwcPHuTb3/42r3zlK3nyySfHEXbzRdTVNQKhUC2CkHab2OQa\nspzHHzjvverrSOO00/sLSbDpvYT3ZeZYzlPHafsaquQ9r085PH5GLIGwz4PFyvM6ZSMOjkiEOEPC\nkyKkYCkbf01ohpIcIr/d4Brvff46aziy6vjrDfx+A0oCl5JQNv4ddU5dj/CenscRinQuIn8vHb8U\nuRDiT9R/+caEmISkYn9Nfa+5v1frt8u58ceu+99y/IpfLx0Vqb+cZ6Cu0cV1bnL1LuT56vpZdd2E\n6juQZymQeyvUEqptknRQZH/8eaWjMVJlqI7TnbvMnyN8R+G+cq9zYAnkeUeRJU8//fQ48nRjY4PP\nfe5zHD16lFtuuYVPfvKTAHzyk5/k1ltvBeaNqKsj6t0ou30tEUDdq96tEs3we97z1Wki4fLine truncated
"text": [
"<matplotlib.figure.Figure at 0xa3e4b00>"
"<matplotlib.figure.Figure at 0x3feb4d0>"
]
}
],
"prompt_number": 25
"prompt_number": 130
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"cell_type": "markdown",
"metadata": {},
"outputs": [],
"prompt_number": 19
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 19
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 19
"source": [
"## Thoughts\n",
"\n",
"### 1. "
]
},
{
"cell_type": "code",