{ "metadata": { "name": "", "signature": "sha256:b218667046d55812c0bd60c416999a83ef62abd0463e9efd9f75e471478f4ae1" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "import scipy.linalg as spalg\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "a = 0.\n", "b = 1.\n", "N = 100\n", "\n", "A = np.zeros([N,N])\n", "B = np.zeros(N)\n", "U = np.zeros(N)\n", "\n", "h = (b-a)/(N-1)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "print h\n", "\n", "def fn(x):\n", "\treturn (3*x+x**2)*np.exp(x)\n", "\n", "def un(x):\n", "\treturn x*(1-x)*np.exp(x)\n", "\n", "for i in range(len(A)):\n", "\tfor j in range(len(A[0])):\n", "\t\t# loading A\n", "\t\tif i==j:\n", "\t\t\tA[i][j] = 2\n", "\t\tif abs(i-j) == 1:\n", "\t\t\tA[i][j] = -1\n", "\tB[i] = h**2*fn(a+i*h)\n", "\tU[i] = un(a+i*h)\n", "\n", "print a+i*h, b\n", "#print A, '\\n', B, '\\n'" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "0.010101010101\n", "1.0 1.0\n" ] } ], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "X = spalg.solve(A,B)\n", "X1 = np.dot(spalg.inv(A),B)\n", "#or np.linalg.inv(A)\n", "#print X, '\\n', U" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "plt.hold(True)\n", "plt.plot(np.linspace(a,b,N,endpoint=True),U)#analytic soln\n", "plt.plot(np.linspace(a,b,N,endpoint=True),X,'+')#using standard function\n", "plt.plot(np.linspace(a,b,N,endpoint=True),X1,'--')#using inverse of function and dot product" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 13, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }