Skip to content

Instantly share code, notes, and snippets.

@rjleveque
Created February 4, 2014 05:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rjleveque/8798519 to your computer and use it in GitHub Desktop.
Save rjleveque/8798519 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "Spectral1"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"Spectral solution of 2-point boundary value problems using Chebfun"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Developed by Randy LeVeque for a course on Approximation Theory and Spectral Methods at the University of Washington.\n",
"\n",
"See <http://faculty.washington.edu/rjl/classes/am590a2013/codes.html> for more IPython Notebook examples."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This notebook demonstrates using the Matlab Chebfun package to solve 2-point boundary value problems via a Chebyshev spectral method, following the examples in Chapter 21 of \n",
"\n",
"* [ATAP] L.N. Trefethen, \"Approximation Theory and Approximation Practice\", <http://www.ec-securehost.com/SIAM/OT128.html>\n",
"\n",
"For more about how to do this, see \n",
"\n",
"* <http://www.mathworks.com/matlabcentral/fileexchange/23972-chebfun/content/chebfun/guide/html/guide7.html>"
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Using Matlab and Chebfun from IPython..."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First we need to set things up to use Matlab and set the path to find chebfun. \n",
"\n",
"You must have pymatbridge installed and chebfun available for this to work."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import pymatbridge\n",
"ip = get_ipython()\n",
"pymatbridge.load_ipython_extension(ip)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 111
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%matlab\n",
"path(path,'/Users/rjl/chebfun/chebfun_v4.2.2889/chebfun')"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 112
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Setting up the problem"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Define the chebfun x and the linear operator $\\partial_x^2 + I$ with Dirichlet boundary conditions:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%matlab\n",
"x = chebfun('x');\n",
"L = chebop(@(u) diff(u,2) + u)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"text": [
"L = chebop\n",
" Linear operator operating on chebfuns defined on: \n",
" interval [-1,1] \n",
" representing the operator: \n",
" @(u)diff(u,2)+u \n",
" with n = 6 realization: \n",
" 42.6000 -68.3607 40.8276 -23.6393 17.5724 -8.0000\n",
" 21.2859 -30.5331 12.6833 -3.6944 2.2111 -0.9528\n",
" -1.8472 7.3167 -9.0669 5.7889 -1.9056 0.7141\n",
" 0.7141 -1.9056 5.7889 -9.0669 7.3167 -1.8472\n",
" -0.9528 2.2111 -3.6944 12.6833 -30.5331 21.2859\n",
" -8.0000 17.5724 -23.6393 40.8276 -68.3607 42.6000\n"
]
}
],
"prompt_number": 113
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's specify some boundary conditions:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%matlab\n",
"uleft = 3.;\n",
"uright = 4;\n",
"L.lbc = uleft;\n",
"L.rbc = uright;"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 114
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that this changes the $6\\times 6$ matrix shown: the first 4 rows now map function values at 6 Chebyshev points to values of $Lu$ at 4 Chebyshev points..."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%matlab\n",
"L"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"text": [
"L = chebop\n",
" Linear operator operating on chebfuns defined on: \n",
" interval [-1,1] \n",
" representing the operator: \n",
" @(u)diff(u,2)+u \n",
" left boundary condition: \n",
" 3 \n",
" right boundary condition: \n",
" 4 \n",
" with n = 6 realization: \n",
" 33.0353 -51.2657 27.8620 -14.2070 10.1514 -4.5760\n",
" -0.6075 5.7509 -9.1443 6.9332 -3.2805 1.3482\n",
" 1.3482 -3.2805 6.9332 -9.1443 5.7509 -0.6075\n",
" -4.5760 10.1514 -14.2070 27.8620 -51.2657 33.0353\n",
" 1.0000 0 0 0 0 0\n",
" 0 0 0 0 0 1.0000\n"
]
}
],
"prompt_number": 115
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Specify the right hand side in the ODE $u''(x) + u(x) = f(x)$:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%matlab\n",
"f = 0*x"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"text": [
"f = \n",
" chebfun column (1 smooth piece)\n",
" interval length endpoint values \n",
"[ -1, 1] 1 0 0 \n",
"vertical scale = 0 \n"
]
}
],
"prompt_number": 116
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Solve the equation using Chebfun:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%matlab\n",
"g = L\\f\n",
"plot(g,'r')\n",
"title('The Chebfun solution')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"text": [
"g = \n",
" chebfun column (1 smooth piece)\n",
" interval length endpoint values \n",
"[ -1, 1] 29 3 4 \n",
"vertical scale = 6.5 \n"
]
},
{
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGwCAIAAADOgk3lAAAACXBIWXMAAAsSAAALEgHS3X78AAAA\nIXRFWHRTb2Z0d2FyZQBBcnRpZmV4IEdob3N0c2NyaXB0IDguNTRTRzzSAAARTElEQVR4nO3d0Xab\nyBJAUbgr///L3AeNWRghjCSgq6r3fpjlsROZKMChWlgZp2kaACCb/7XeAAD4hIABkJKAAZCSgAGQ\nkoABkJKAAZCSgAGQkoABkJKAAZCSgAGQkoABkJKAAZCSgAGQkoABkJKAAZCSgAGQkoABkJKA0Zfx\nyeOTHzzC8jP7v/7Pz3xv8zHnT17xHaG5f603AG41TdPjg3Ec54+PW/6uzx6hiSzbCW8RMBiGxYwy\nTdPy49WvWX5m+fH+b3/+6uOh5gdcfvD8+M+f/HMLl7PX/I12Nuz5oSA+AYNhWIThcU5fdeXL374a\n2vYf9rlkw1Msj0yBq2/06uPNbwcpCBhsOHhCf9WPc3uwMxRCzwQM1jZX2IbdmebIb//Y6pue8phQ\ngIDBL/vjzp/D0J+vga1+/ZEgLR/zz21YPeByGdMYRzFpbqMCgCU/BwZASgIGQEoCBkBKdW7i2Pm5\nGQDqqROwzbdFAKCqgkuIid6hDoCP1ZnANhnFAD4TfxKoFrDn8SvC30GQoTDCZkTYBpsRbRuCbEaE\nbQi1Ga034W8FlxAB6EGpgAW5cgHgBqUCpl4A/Sg+spjJAD6Q4uRZagIDoB8CBkBKAgZASgIGQEoC\nBkBKAgZASgIGQEoCBkBKAgZASgIGQEoCBkBKAgZASgIGQEoCBkBKAgZASgIGQEoCBkBKAgZASgIG\nQEoCBkBKAgZASgIGQEoCBkBKAgZASgIGQEoCBkBKAgZASgIGQEoCBkBKAgZASgIGQEoCBkBKAgZA\nSgIGQEoCBkBK/1pvwNvGcXx8ME3Tqy9tfhWASpIF7JGoR5zGcXyulG4BdCJZwB6WGTv+JahjXmyw\nq9OxfAGb47QzgS2/tFxXHLSN+H7vsS9N0zCOh36xfZ4DxoM7XiT5ArZjM06KRWibZ42DO+3BX/b8\nLRwUPFmdKlP0rE7ANgcyiGh1arh6v109/mpuc9SQVrKATdP0fBfiI12bX4JAgmRj+a2XMXPUkE2y\ngA1bcZo/o1tEFLkQq5g9fxICyxcwyCFdD+btTLfl9ErA4FQFzv5KRhICBiepd7p//EHm18nK/Lmo\n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\n"
}
],
"prompt_number": 117
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Compare to the exact solution:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this case we know the exact solution is a linear combination of $\\sin(x)$ and $\\cos(x)$ and the boundary conditions give us a $2\\times 2$ linear system to solve for the coefficients:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%matlab\n",
"A = [cos(-1) sin(-1); cos(1) sin(1)];\n",
"b = [uleft; uright];\n",
"c = A\\b;\n",
"u = c(1)*cos(x) + c(2)*sin(x);\n",
"error = max(abs(u-g))\n",
"plot(u)\n",
"title('The exact solution')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"text": [
"error =\n",
" 1.232273452396662e-11\n"
]
},
{
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGwCAIAAADOgk3lAAAACXBIWXMAAAsSAAALEgHS3X78AAAA\nIXRFWHRTb2Z0d2FyZQBBcnRpZmV4IEdob3N0c2NyaXB0IDguNTRTRzzSAAARMklEQVR4nO3d0Xab\nShJAUZjl//9l5kE3hCCEkQR0VfXeD1mJ5dhEBg7Vws44TdMAANn8r/UGAMAnBAyAlAQMgJQEDICU\nBAyAlAQMgJQEDICUBAyAlAQMgJQEDICUBAyAlAQMgJQEDICUBAyAlAQMgJQEDICUBAyAlAQMhvHJ\n4423ffZT3v/mzYbmflpvALQ3TdPjN+M4zr9PKvv2w3ECBi/N08w0Tcvf77zb8KeCcwuXI9HqLfOH\nPfjOq0+6+nTzO2/+xeePDNkJGLw0n/pXYVgGYOeh5QcZFkt8q4Fv9bdWH/zgdDh/nFefZdgqGaQm\nYHDUzql/Nd+s+vHqb23WbmfUA5YEDA7ZCdLmjPU8XT3/xeeh6mD5gEHA4IidwWj10GaTfv1Qy1W+\n52Fu8/M+f+Th39e9THKUl/6eKwD65PvAAEhJwABIScAASKnOTRzPL5W32hIAblAnYM/fWwpAYQWX\nEAv8ODsAflVnAttkFAP4TPxJoFrAnsevCF+DIENhhM2IsA02I9o2BNmMCNsQajNab8LvCi4hAtCD\nUgELcuUCwA1KBUy9APpRfGQxkwF8IMXJs9QEBkA/BAyAlAQMgJQEDICUBAyAlAQMgJQEDICUBAyA\nlAQMgJQEDICUBAyAlAQMgJQEDICUBAyAlAQMgJQEDICUBAyAlAQMgJQEDICUBAyAlAQMgJQEDICU\nBAyAlAQMgJQEDICUBAyAlAQMgJQEDICUBAyAlAQMgJQEDICUBAyAlAQMgJQEDICUBAyAlH5ab8Db\nxnF8/GaaplcPbT4KQCXJAvZI1CNO4zg+V0q3ADqRLGAPy4wdfwjKmNca7On0LF/A5jjtTGDLh5br\nioO2Ed6/O+xL0zSM46F3tstzxHhwz4skX8B2bMZJsYhs86RxcJ89+G7Pn8IxwbPVqTJFz+oEbHMg\ng4BWZ4ard9vVx1/NbQ4a8koWsGmanu9CfKRr8yGII0g2lp96GTMHDekkC9iwFaf5LbpFQJELsYrZ\n8xshsnwBgxTS9WDeznRbTrcEDM5U4OyvZGQhYHCOeqf7xz9kfp2szL+LMgQMvlX7/L4ayKr+M8lI\n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\n6f/ojA7Z8gy+LgAAAABJRU5ErkJggg==\n"
}
],
"prompt_number": 118
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Airy equation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next we solve the problem in (21.4) of [ATAP]: $$ u'' - xu = 0, \\quad u(-30) = 1, ~u(30) = 0.$$"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%matlab\n",
"L = chebop(@(x,u) diff(u,2) - x.*u, [-30,30]);\n",
"L.lbc = 1; L.rbc = 0; u = L\\0;\n",
"plot(u)\n",
"u"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"text": [
"u = \n",
" chebfun column (1 smooth piece)\n",
" interval length endpoint values \n",
"[ -30, 30] 184 1 2.2e-16 \n",
"vertical scale = 6.1 \n"
]
},
{
"output_type": "display_data",
"png": "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\nAEQSMAAi/R8ZmgK06g3+JwAAAABJRU5ErkJggg==\n"
}
],
"prompt_number": 119
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"The nonlinear pendulum"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Finally we solve (21.5a) and (21.5b), the nonlinear pendulum problem\n",
"$$ \\theta'' + \\sin(\\theta) = 0, \\quad \\theta\\in [0,6] $$\n",
"with boundary conditions\n",
"$$ u(0) = -\\pi/2, \\quad u(6) = \\pi/2.$$\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%matlab\n",
"N = chebop(0,6);\n",
"N.op = @(theta) diff(theta,2) + sin(theta);\n"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 120
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%matlab\n",
"N.lbc = -pi/2;\n",
"N.rbc = pi/2;\n",
"theta = N\\0"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"text": [
"theta = \n",
" chebfun column (1 smooth piece)\n",
" interval length endpoint values \n",
"[ 0, 6] 70 -1.6 1.6 \n",
"vertical scale = 5.4 \n"
]
}
],
"prompt_number": 121
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%matlab\n",
"plot(-cos(theta)), grid on, ylim([-1 1])\n",
"title('Nonlinear pendulum (21.5)','fontsize',20)\n",
"xlabel('t','fontsize',20), ylabel('height -cos(\\theta)','fontsize',20)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\ngcttvi0AAAAASUVORK5CYII=\n"
}
],
"prompt_number": 122
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With different boundary conditions:\n",
"\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%matlab\n",
"N.lbc = -pi/2; N.rbc = 5*pi/2; theta = N\\0;\n",
"plot(-cos(theta)), grid on, ylim([-1 1])\n",
"title('Nonlinear pendulum (21.5), another solution','fontsize',20)\n",
"xlabel('t','fontsize',20), ylabel('height -cos(\\theta)','fontsize',20)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\n"
}
],
"prompt_number": 123
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that theta increases past $\\pi$, indicating the pendulum goes past the vertical and then back down:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%matlab\n",
"plot(theta)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGwCAIAAADOgk3lAAAACXBIWXMAAAsSAAALEgHS3X78AAAA\nIXRFWHRTb2Z0d2FyZQBBcnRpZmV4IEdob3N0c2NyaXB0IDguNTRTRzzSAAANn0lEQVR4nO3dy3ba\nSBSG0apeef9XVg+ICZaxzUWXOn/tPeiVeJBGgejjlArRl2VpAFDNf2c/AAB4hYABUJKAAVCSgAFQ\nkoABUJKAAVCSgAFQkoABUJKAAVCSgAFQkoABUJKAAVCSgAFQkoABUJKAAVCSgAFQkoABUJKAAVCS\ngAFQkoABUJKAAVCSgAFQkoABUJKAAVCSgAFQkoABUJKAAVCSgAFQUlrAeu+997MfBQC7iwpY731Z\nlmVZNAwgXlTAAJjHn7MfwMYus9eyLLe/BeBZ1xPpsHICdlk//Prr8Z+Dd9weaZ7so2vpB+joSivx\n7t8SIgAl5Uxgt3s3st8ZAdCSAtZ0C2Am+cu42QcIsLnLYtb4507XwAD45+NSjE0cANRRZfa6iLoG\nBsBrrtvmq9SrCRgAtQavK0uIAFMrWq8mYAAzq1uvJmAA0ypdr+YaGMCEKm7Z+ErAAOZSffC6soQI\nMJGYejUBA5hHUr2agAFMIqxeTcAAZpBXr2YTB0C2jA2HdwkYQKzIwevKEiJApux6NQEDiBRfryZg\nAHlmqFcTMIAwk9SrCRhAknnq1QQMIMZU9WoCBpBhtno1AQMIMGG9mg8yA1TX+3TpujCBARQ2bb2a\ngAHUNXO9WtISYr/esbK11toy87MKpJvzotdKTsBui7WKGUAS9boIXELsvRu/gFTqdZUzgX3H0iIQ\nY796VVy4SgvY1/FLsYAMu85eq1NliZ4FLiEC5LFy+FVUwFz9AiKp111RAVMvII96fScqYABh1OsH\nAgYwKPX6mYABjEi9fiVgAMNRr0cIGMBY1OtBAgYwEPV6nIABjEK9niJgAENQr2cJGMD51OsFAgZw\nMvV6jYABnEm9XiZgAKdRr3cIGMA51OtNAgZwAvV6n4ABHE29NiFgACdQr/f9OfsBAEzE7LUhExjA\nQdRrWwIGcBz12pCAARyhd/XamGtgAPuycrgTExjA7tRrDwIGsCMrh/sRMIC9qNeuBAxgF+q1NwED\n2J56HUDAADZ22XbI3gQMYEs2zR8m6nNg/eNtz+K1A5xBvY6UM4Fd6rUsy7Is3QAPHE69DhY1gbWb\n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\nZ4SXJXIXUAAAAABJRU5ErkJggg==\n"
}
],
"prompt_number": 124
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Imposing boundary conditions"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Solve\n",
"$$u''(x) + u(x) = exp(x)$$\n",
"with boundary conditions\n",
"$$u(0)=3, u'(2) = 1$$\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%matlab\n",
"L = chebop(@(u) diff(u,2) + u,[0,2],@(u) u-3,@(u) diff(u)-1)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"text": [
"L = chebop\n",
" Linear operator operating on chebfuns defined on: \n",
" interval [0,2] \n",
" representing the operator: \n",
" @(u)diff(u,2)+u \n",
" left boundary condition: \n",
" @(u)u-3 = 0 \n",
" right boundary condition: \n",
" @(u)diff(u)-1 = 0 \n",
" with n = 6 realization: \n",
" 33.0353 -51.2657 27.8620 -14.2070 10.1514 -4.5760\n",
" -0.6075 5.7509 -9.1443 6.9332 -3.2805 1.3482\n",
" 1.3482 -3.2805 6.9332 -9.1443 5.7509 -0.6075\n",
" -4.5760 10.1514 -14.2070 27.8620 -51.2657 33.0353\n",
" 1.0000 0 0 0 0 0\n",
" -0.5000 1.1056 -1.5279 2.8944 -10.4721 8.5000\n"
]
}
],
"prompt_number": 125
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%matlab\n",
"f = chebfun('exp(x)', [0,2]);\n",
"u = L\\f"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"text": [
"u = \n",
" chebfun column (1 smooth piece)\n",
" interval length endpoint values \n",
"[ 0, 2] 23 3 3.6 \n",
"vertical scale = 3.6 \n"
]
}
],
"prompt_number": 126
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%matlab\n",
"plot(u)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\n"
}
],
"prompt_number": 127
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Clearly $u(0) = 3$. Check that $u'(2) = 1$:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%matlab\n",
"uprime = diff(u);\n",
"uprime(2)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"text": [
"ans =\n",
" 1.000000000001889\n"
]
}
],
"prompt_number": 128
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot residual $u''(x) - u(x) - e^x$:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%matlab\n",
"residual = diff(uprime) + u - f;\n",
"max_residual = max(abs(residual))\n",
"plot(residual)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"text": [
"max_residual =\n",
" 4.465903202799382e-10\n"
]
},
{
"output_type": "display_data",
"png": "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\n"
}
],
"prompt_number": 129
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 129
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment