{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "from __future__ import division\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as pt\n", "\n", "import scipy.sparse as sps" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll solve\n", "\n", "$u''+1000(1+x^2)u=0$ on $(-1,1)$\n", "\n", "with $u(-1)=3$ and $u(1)=-3$." ] }, { "cell_type": "code", "collapsed": false, "input": [ "n = 500\n", "mesh = np.linspace(-1, 1, n)\n", "h = mesh[1] - mesh[0]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 160 }, { "cell_type": "code", "collapsed": false, "input": [ "A = sps.diags(\n", " [1,-2,1],\n", " offsets=[-1,0,1], \n", " shape=(n, n))\n", "\n", "if n < 10:\n", " print A.todense()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 145 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Need to restrict to middle rows!" ] }, { "cell_type": "code", "collapsed": false, "input": [ "second_deriv = ...\n", "\n", "if n < 10:\n", " print second_deriv.todense()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 153 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "(Edit this cell for solution)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "factor = sps.diags(\n", " [1000*(1 + mesh[1:]**2)],\n", " offsets=[1],\n", " shape=(n-2, n))\n", "\n", "if n < 10:\n", " print mesh[1:-1]\n", " print\n", " print factor.todense()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 154 }, { "cell_type": "code", "collapsed": false, "input": [ "A_int = second_deriv+factor\n", "\n", "if n < 10:\n", " print A_int.todense()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 155 }, { "cell_type": "code", "collapsed": false, "input": [ "A = sps.vstack([\n", " sps.coo_matrix(([1], ([0],[0])), shape=(1, n)),\n", " A_int,\n", " sps.coo_matrix(([1], ([0],[n-1])), shape=(1, n)),\n", " ])\n", "A = sps.csr_matrix(A)\n", "\n", "if n < 10:\n", " print A.todense()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 156 }, { "cell_type": "code", "collapsed": false, "input": [ "rhs = np.zeros(n)\n", "..." ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 157 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "(Edit this cell for solution.)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import scipy.sparse.linalg as sla\n", "\n", "sol = sla.spsolve(A, rhs)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 158 }, { "cell_type": "code", "collapsed": false, "input": [ "pt.plot(mesh, sol)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 159, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n0uPqp02bhrvuugtbt261pA65sZb7GrGZzmIkZPpzwoQJl79euXIlHnjgAXR0dNh9LBEQZWyy2i9+\nvgLV96YAAAF5SURBVNq1116LvXv34uDBg+jr68OvfvUrrF69mrMpBYvVq1fjqaeeAgA89dRTWLNm\nzYjX9PT04OzZswCA7u5uvPjii4HZ9NEEmbG2evVq/PznPwcAbNmyBVVVVZctL4vhkOnPY8eOXb73\nt27dCsdxLKFHRKSxqSaHO4T/+q//cmpra52ysjKnurra+aM/+iPHcRynra3NueOOOy6/bsOGDc6i\nRYucuro655FHHlHdjNTg1KlTzooVK5yFCxc6TU1NzunTpx3HGd6f+/fvd+rr6536+npn6dKltj9z\n4DXWfvSjHzk/+tGPLr/mL/7iL5y6ujrn6quv9q3asiDk688nnnjCWbp0qVNfX+9cd911zu9+9zuT\nzU007r77bmfGjBlOSUmJU1tb6/zLv/xL7LFpNx9ZWFhYpAj2cXYWFhYWKYIldQsLC4sUwZK6hYWF\nRYpgSd3CwsIiRbCkbmFhYZEiWFK3sLCwSBEsqVtYWFikCJbULSwsLFKE/w9/DmV6KuVPrgAAAABJ\nRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 159 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 136 } ], "metadata": {} } ] }