diff options
32 files changed, 17121 insertions, 0 deletions
diff --git a/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter10_2.ipynb b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter10_2.ipynb new file mode 100644 index 00000000..3bd95186 --- /dev/null +++ b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter10_2.ipynb @@ -0,0 +1,720 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 10 : Fourier Series" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.1, page no. 327" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "finding the fourier series of given function\n", + "enter the no of terms up to each of sin or cos terms in the expansion : 3\n", + "0.158857730350203*sin(x) + 0.127086184280162*sin(2*x) + 0.0953146382101218*sin(3*x) + 0.158857730350203*cos(x) + 0.0635430921400812*cos(2*x) + 0.0317715460700406*cos(3*x) + 0.158857730350203\n" + ] + } + ], + "source": [ + "import sympy,math,numpy\n", + "\n", + "print \"finding the fourier series of given function\"\n", + "x = sympy.Symbol('x')\n", + "ao = 1/math.pi*sympy.integrate(sympy.exp(-1*x),(x,0,2*math.pi))\n", + "s = ao/2\n", + "n = int(raw_input(\"enter the no of terms up to each of sin or cos terms in the expansion : \"))\n", + "for i in range (1,n+1):\n", + " ai = 1/math.pi*sympy.integrate(sympy.exp(-x)*sympy.cos(i*x),(x,0,2*math.pi))\n", + " bi = 1/math.pi*sympy.integrate(sympy.exp(-x)*sympy.sin(i*x),(x,0,2*math.pi))\n", + " s = s+float(ai)*sympy.cos(i*x)+float(bi)*sympy.sin(i*x)\n", + "print s" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.2, page no. 328" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the fourier transform of given function\n", + "Piecewise((2, s == 0), (1.0*I*exp(-1.0*I*s)/s - 1.0*I*exp(1.0*I*s)/s, True))\n", + "1.57079632679490\n" + ] + } + ], + "source": [ + "import numpy,math,sympy\n", + "\n", + "print \"To find the fourier transform of given function\"\n", + "x = sympy.Symbol('x')\n", + "s = sympy.Symbol('s')\n", + "F = sympy.integrate(sympy.exp(1j*s*x),(x,-1,1))\n", + "print F\n", + "F1 = sympy.integrate(sympy.sin(x)/x,(x,0,numpy.inf))\n", + "print F1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.3, page no. 328" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "finding the fourier series of given function\n", + "enter the no of terms up to each of sin or cos terms in the expansion : 3\n", + "3.0*sin(x) - 0.5*sin(2*x) + 1.0*sin(3*x) - 0.636619772367581*cos(x) - 0.0707355302630646*cos(3*x) - 0.785398163397448\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "print \"finding the fourier series of given function\"\n", + "x = sympy.Symbol('x')\n", + "ao = 1/math.pi*(sympy.integrate(-1*math.pi*x**0,(x,-math.pi,0))+sympy.integrate(x,(x,0,math.pi)))\n", + "s = ao/2\n", + "n = int(raw_input(\"enter the no of terms up to each of sin or cos terms in the expansion : \"))\n", + "for i in range (1,n+1):\n", + " ai = 1/math.pi*(sympy.integrate(-1*math.pi*sympy.cos(i*x),(x,-1*math.pi,0))+sympy.integrate(x*sympy.cos(i*x),(x,0,math.pi)))\n", + " bi = 1/math.pi*(sympy.integrate(-1*math.pi*x**0*sympy.sin(i*x),(x,-1*math.pi,0))+sympy.integrate(x*sympy.sin(i*x),(x,0,math.pi)))\n", + " s = s+float(ai)*sympy.cos(i*x)+float(bi)*sympy.sin(i*x)\n", + "print s" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.4, page no. 329" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "finding the fourier series of given function\n", + "enter the no of terms up to each of sin or cos terms in the expansion :3\n", + "(exp(l) - exp(-l))/(2*l)\n" + ] + } + ], + "source": [ + "import sympy,math\n", + "\n", + "print \"finding the fourier series of given function\"\n", + "x = sympy.Symbol('x')\n", + "l = sympy.Symbol('l')\n", + "ao = 1/l*sympy.integrate(sympy.exp(-1*x),(x,-l,l))\n", + "s = ao/2\n", + "n = int(raw_input(\"enter the no of terms up to each of sin or cos terms in the expansion :\"))\n", + "for i in range (1,n+1):\n", + " ai = 1/l*sympy.integrate(sympy.exp(-x)*sympy.cos(i*math.pi*x/l),(x,-l,l))\n", + " bi = 1/l*sympy.integrate(sympy.exp(-x)*sympy.sin(i*math.pi*x/l),(x,-l,l))\n", + " s = s+float(ai)*sympy.cos(i*math.pi*x/l)+float(bi)*sympy.sin(i*math.pi*x/l)\n", + "print s" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.5, page no. 330" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "finding the fourier series of given function\n", + "enter the no of terms up to each of terms in the expansion : 3\n", + "2.0*sin(x) - 1.0*sin(2*x) + 0.666666666666667*sin(3*x)\n" + ] + } + ], + "source": [ + "import math,sympy\n", + "\n", + "print \"finding the fourier series of given function\"\n", + "x = sympy.Symbol('x')\n", + "l = sympy.Symbol('l')\n", + "s = 0\n", + "n = int(raw_input(\"enter the no of terms up to each of terms in the expansion : \"))\n", + "for i in range(1,n+1):\n", + " bi = 2/math.pi*sympy.integrate(x*sympy.sin(i*x),(x,0,math.pi))\n", + " s = s+float(bi)*sympy.sin(i*x)\n", + "print s" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.6, page no. 332" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "finding the fourier series of given function\n", + "enter the no of terms up to each of sin or cos terms in the expansion :3\n", + "l**2/3\n" + ] + } + ], + "source": [ + "import math,sympy\n", + "\n", + "print \"finding the fourier series of given function\"\n", + "x = sympy.Symbol('x')\n", + "l = sympy.Symbol('l')\n", + "ao = 2/l*sympy.integrate(x**2,(x,0,l))\n", + "s = ao/2\n", + "n = int(raw_input(\"enter the no of terms up to each of sin or cos terms in the expansion :\"))\n", + "for i in range(1,n+1):\n", + " ai = 2/l*sympy.integrate(x**2*sympy.cos(i*math.pi*x/l),(x,0,l))\n", + " s = s+float(ai)*sympy.cos(i*math.pi*x/l)\n", + "print s" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 10.7, page no. 333" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "finding the fourier series of given function\n", + "enter the no of terms up to each of sin or cos terms in the expansion :2\n", + "7.06789929214115e-17*cos(x) + 0.424413181578387*cos(2*x) + 0.636619772367581\n" + ] + } + ], + "source": [ + "import sympy,math\n", + "\n", + "print \"finding the fourier series of given function\"\n", + "x = sympy.Symbol('x')\n", + "ao = 2/math.pi*(sympy.integrate(sympy.cos(x),(x,0,math.pi/2))+sympy.integrate(-sympy.cos(x),(x,math.pi/2,math.pi)))\n", + "s = ao/2\n", + "n = int(raw_input(\"enter the no of terms up to each of sin or cos terms in the expansion :\"))\n", + "for i in range(1,n+1):\n", + " ai = 2/math.pi*(sympy.integrate(sympy.cos(x)*sympy.cos(i*x),(x,0,math.pi/2))+sympy.integrate(-sympy.cos(x)*sympy.cos(i*x),(x,math.pi/2,math.pi)))\n", + " s = s+float(ai)*sympy.cos(i*x)\n", + "print s" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 10.8, page no. 334" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "finding the fourier series of given function\n", + "enter the no of terms up to each of sin or cos terms in the expansion : 3\n", + "0.810569469138702*cos(x) + 7.79634366503875e-17*cos(2*x) + 0.0900632743487446*cos(3*x)\n" + ] + } + ], + "source": [ + "import sympy,math\n", + "\n", + "print \"finding the fourier series of given function\"\n", + "x = sympy.Symbol('x')\n", + "ao = 2/math.pi*(sympy.integrate((1-2*x/math.pi),(x,0,math.pi)))\n", + "s = ao/2\n", + "n = int(raw_input(\"enter the no of terms up to each of sin or cos terms in the expansion : \"))\n", + "for i in range(1,n+1):\n", + " ai = 2/math.pi*(sympy.integrate((1-2*x/math.pi)*sympy.cos(i*x),(x,0,math.pi)))\n", + " s = s+float(ai)*sympy.cos(i*x)\n", + "print s" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.9, page no. 336" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "finding the fourier series of given function\n", + "enter the no of terms up to each of sin or cos terms in the expansion : 3\n", + "0.0\n" + ] + } + ], + "source": [ + "import sympy,math\n", + "\n", + "print \"finding the fourier series of given function\"\n", + "x = sympy.Symbol('x')\n", + "l = sympy.Symbol('l')\n", + "s = 0\n", + "n = int(raw_input(\"enter the no of terms up to each of sin or cos terms in the expansion : \"))\n", + "for i in range(1,n+1):\n", + " bi = sympy.integrate(x*sympy.sin(i*math.pi*x/2),(x,0,2)) \n", + " s = s+float(bi)*sympy.sin(i*math.pi*x/2)\n", + "print float(s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.10, page no. 337" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "finding the fourier series of given function\n", + "enter the no of terms up to each of sin or cos terms in the expansion : 5\n", + "1.0\n" + ] + } + ], + "source": [ + "import sympy,math\n", + "\n", + "print \"finding the fourier series of given function\"\n", + "x = sympy.Symbol('x')\n", + "ao = 2/2*(sympy.integrate(x,(x,0,2)))\n", + "s = ao/2\n", + "n = int(raw_input(\"enter the no of terms up to each of sin or cos terms in the expansion : \"))\n", + "for i in range(1,n+1):\n", + " ai = 2/2*(sympy.integrate(x*sympy.cos(i*math.pi*x/2),(x,0,2)))\n", + " s = s +float(ai)*sympy.cos(i*math.pi*x/2)\n", + "print float(s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.11, page no. 338" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "finding the fourier series of given function\n", + "enter the no of terms up to each of sin or cos terms in the expansion : 2\n", + "0.0\n" + ] + } + ], + "source": [ + "import sympy,math\n", + "\n", + "print \"finding the fourier series of given function\"\n", + "x = sympy.Symbol('x')\n", + "ao = 0\n", + "s = ao\n", + "n = int(raw_input(\"enter the no of terms up to each of sin or cos terms in the expansion : \"))\n", + "for i in range(1,n+1):\n", + " bi = 2/1*(sympy.integrate((1/4-x)*sympy.sin(i*math.pi*x),(x,0,1/2))+sympy.integrate((x-3/4)*sympy.sin(i*math.pi*x),(x,1/2,1)))\n", + " s = s+float(bi)*sympy.sin(i*math.pi*x)\n", + "print float(s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.12, page no. 339" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "finding the fourier series of given function\n", + "enter the no of terms up to each of sin or cos terms in the expansion : 3\n", + "-4.0*cos(x) + 0.999999999999999*cos(2*x) - 0.444444444444444*cos(3*x) + 3.28986813369645\n" + ] + } + ], + "source": [ + "import sympy,math\n", + "\n", + "print \"finding the fourier series of given function\"\n", + "x = sympy.Symbol('x')\n", + "ao = 1/math.pi*sympy.integrate(x**2,(x,-math.pi,math.pi))\n", + "s = ao/2\n", + "n = int(raw_input(\"enter the no of terms up to each of sin or cos terms in the expansion : \"))\n", + "for i in range(1,n+1):\n", + " ai = 1/math.pi*sympy.integrate((x**2)*sympy.cos(i*x),(x,-math.pi,math.pi))\n", + " bi = 1/math.pi*sympy.integrate((x**2)*sympy.sin(i*x),(x,-math.pi,math.pi))\n", + " s = s+float(ai)*sympy.cos(i*x)+float(bi)*sympy.sin(i*x)\n", + "print s" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.13, page no. 341" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The complex form of series is summation of f(n,x) where n varies from −%inf to %inf and f(n,x) is given by : \n", + "0\n" + ] + } + ], + "source": [ + "import sympy,math\n", + "\n", + "print \"The complex form of series is summation of f(n,x) where n varies from −%inf to %inf and f(n,x) is given by : \"\n", + "n = sympy.Symbol('n')\n", + "x = sympy.Symbol('x')\n", + "a = sympy.exp(-x)\n", + "b = sympy.exp(-1j*math.pi*n*x)\n", + "cn = 1/2*sympy.Integral(sympy.exp(-x)*sympy.exp(-1j*math.pi*n*x),(x,-sympy.oo,sympy.oo))\n", + "fnx = float(cn)*sympy.exp(1j*n*math.pi*x) \n", + "print fnx" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.14, page no. 342" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Practical harmoninc analysis\n", + "No of sin or cos term in expansion : 5\n", + "-0.522944001594253*sin(x) - 0.410968418886797*sin(2*x) + 0.0927272727272729*sin(3*x) + 0.111796006670355*sin(4*x) - 0.126146907496654*sin(5*x) - 0.373397459621556*cos(x) + 0.159090909090909*cos(2*x) - 0.258181818181819*cos(3*x) - 0.257272727272728*cos(4*x) - 0.546602540378445*cos(5*x) + 1.30454545454545\n" + ] + } + ], + "source": [ + "import sympy, math, numpy\n", + "\n", + "print \"Practical harmoninc analysis\"\n", + "x = sympy.Symbol('x')\n", + "xo = numpy.array([math.pi/6, math.pi/3, math.pi/2, 2*math.pi/3, 5*math.pi/6, math.pi, 7*math.pi/6, 4*math.pi/3, \\\n", + " 3*math.pi/2, 5*math.pi/3, 11*math.pi/6])\n", + "yo = numpy.array([1.10, 0.30, 0.16, 1.50, 1.30, 2.16, 1.25, 1.30, 1.52, 1.76, 2.00])\n", + "ao = 2*numpy.sum(yo)/len(xo)\n", + "s = ao/2\n", + "n = int(raw_input('No of sin or cos term in expansion : '))\n", + "for i in range(1,n+1):\n", + " an = 2*sum(yo*numpy.cos(i*xo))/len(yo)\n", + " bn = 2*sum(yo*numpy.sin(i*xo))/len(yo)\n", + " s = s+float(an)*sympy.cos(i*x)+float(bn)*sympy.sin(i*x)\n", + "print s" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 10.15, page no. 342" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Practical harmonic analysis\n", + "No of sin or cos term in expansion :5\n", + "-1.61653377487451e-16*sin(6.28318530717959*x/T) + 1.5*cos(6.28318530717959*x/T) + 0.75\n", + "1.5 -1.61653377487e-16\n", + "Direct current :\n", + "1.5\n" + ] + } + ], + "source": [ + "import math,sympy,numpy\n", + "\n", + "print \"Practical harmonic analysis\"\n", + "x = sympy.Symbol('x')\n", + "T = sympy.Symbol('T')\n", + "xo = numpy.array([1/6,1/3,1/2,2/3,5/6,1])\n", + "yo = numpy.array([1.30,1.05,1.30,-0.88,-0.25,1.98])\n", + "ao = 2*sum(yo)/len(xo)\n", + "s = ao/2\n", + "n = int(raw_input(\"No of sin or cos term in expansion :\"))\n", + "i = 1\n", + "an = 2*sum(yo*numpy.cos(i*xo*2*math.pi))/len(yo)\n", + "bn = 2*sum(yo*numpy.sin(i*xo*2*math.pi))/len(yo)\n", + "s = s+float(an)*sympy.cos(i*x*2*math.pi/T)+float(bn)*sympy.sin(i*x*2*math.pi/T)\n", + "print s\n", + "print \"Direct current :\"\n", + "i = math.sqrt(an**2+bn**2)\n", + "print i" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.16, page no. 343" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Practical harmonic analysis\n", + "Input xo matrix (in factor of T):1\n", + "No of sin or cos term in expansion :5\n", + "-3.67394039744206e-16*sin(6.28318530717959*x/T) + 1.5*cos(6.28318530717959*x/T) + 4.5\n", + "Direct current :\n", + "1.5\n" + ] + } + ], + "source": [ + "import math,sympy,numpy\n", + "\n", + "print \"Practical harmonic analysis\"\n", + "x = sympy.Symbol('x')\n", + "T = sympy.Symbol('T')\n", + "xo = int(raw_input(\"Input xo matrix (in factor of T):\"))\n", + "yo = numpy.array([1.30,1.05,1.30,-0.88,-0.25,1.98])\n", + "ao = 2*sum(yo)/xo \n", + "s = ao/2\n", + "n = int(raw_input(\"No of sin or cos term in expansion :\"))\n", + "i = 1\n", + "an = 2*sum(yo*numpy.cos(i*xo*2*math.pi))/len(yo)\n", + "bn = 2*sum(yo*numpy.sin(i*xo*2*math.pi))/len(yo)\n", + "s = s+float(an)*sympy.cos(i*x*2*math.pi/T)+float(bn)*sympy.sin(i*x*2*math.pi/T)\n", + "print s\n", + "print \"Direct current :\"\n", + "i = math.sqrt(an**2+bn**2)\n", + "print i" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.17, page no. 344" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Practical harmonic analysis\n", + "Input xo matrix (in factor of T):1\n", + "No of sin or cos term in expansion :4\n", + "-3.67394039744206e-16*sin(6.28318530717959*x/T) + 1.5*cos(6.28318530717959*x/T) + 4.5\n", + "Direct current :\n", + "1.5\n" + ] + } + ], + "source": [ + "import math,sympy,numpy\n", + "\n", + "print \"Practical harmonic analysis\"\n", + "x = sympy.Symbol('x')\n", + "T = sympy.Symbol('T')\n", + "xo = int(raw_input(\"Input xo matrix (in factor of T):\"))\n", + "yo = numpy.array([1.30,1.05,1.30,-0.88,-0.25,1.98])\n", + "ao = 2*sum(yo)/xo \n", + "s = ao/2\n", + "n = int(raw_input(\"No of sin or cos term in expansion :\"))\n", + "i = 1\n", + "an = 2*sum(yo*numpy.cos(i*xo*2*math.pi))/len(yo)\n", + "bn = 2*sum(yo*numpy.sin(i*xo*2*math.pi))/len(yo)\n", + "s = s+float(an)*sympy.cos(i*x*2*math.pi/T)+float(bn)*sympy.sin(i*x*2*math.pi/T)\n", + "print s\n", + "print \"Direct current :\"\n", + "i = math.sqrt(an**2+bn**2)\n", + "print i" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11+" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter13_2.ipynb b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter13_2.ipynb new file mode 100644 index 00000000..3dddd224 --- /dev/null +++ b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter13_2.ipynb @@ -0,0 +1,600 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 13: Linear Differential Equations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.1, page no. 398" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution to the given linear differential equation is given by: \n", + "y = c1*exp(-1.28077640640442*x) + c2*exp(0.780776406404415*x)\n" + ] + } + ], + "source": [ + "import sympy, numpy\n", + "\n", + "print \"Solution to the given linear differential equation is given by: \"\n", + "c1 = sympy.Symbol('c1')\n", + "c2 = sympy.Symbol('c2')\n", + "x = sympy.Symbol('x')\n", + "m = numpy.poly([0])\n", + "f = m**2+m-2\n", + "r = numpy.roots([2, 1, -2])\n", + "y = c1*sympy.exp(r[0]*x)+c2*sympy.exp(r[1]*x)\n", + "print \"y = \", y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.2, page no. 399" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution to the given linear differntial equation is given by: \n", + "y = (c1 + c2*x)*exp(x*(-1.5 + 1.5*I))\n" + ] + } + ], + "source": [ + "import sympy, numpy\n", + "\n", + "print 'Solution to the given linear differntial equation is given by: '\n", + "c1 = sympy.Symbol('c1')\n", + "c2 = sympy.Symbol('c2')\n", + "x = sympy.Symbol('x')\n", + "m = numpy.poly([0])\n", + "f = m**2+6*m+9;\n", + "r = numpy.roots([2, 6, 9])\n", + "y =(c1+x*c2)*sympy.exp(r[0]*x)\n", + "print \"y = \", y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.3, page no. 401" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution to the given linear differntial equation is given by: \n", + "y = c1*exp(0.105616806777468*x) + c2*exp(0.105616806777468*x) + c3*exp(-0.877900280221601*x)\n" + ] + } + ], + "source": [ + "import numpy, sympy\n", + "\n", + "print 'Solution to the given linear differntial equation is given by: '\n", + "c1 = sympy.Symbol('c1')\n", + "c2 = sympy.Symbol('c2')\n", + "c3 = sympy.Symbol('c3')\n", + "x = sympy.Symbol('x')\n", + "m = numpy.poly([0])\n", + "f = m**3+m*2+4*m+4;\n", + "r = numpy.roots([3, 2, 4, 4])\n", + "y = c1*sympy.exp(r[0].real*x)+c2*sympy.exp(r[1].real*x)+c3*sympy.exp(r[2].real*x)\n", + "print \"y = \", y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.4, page no. 402" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution to the given linear differntial equation is given by: \n", + "y = c1*exp(-0.707106781186547*x) + c2*exp(-0.707106781186547*x) + c3*exp(0.707106781186547*x) + c4*exp(0.707106781186547*x)\n" + ] + } + ], + "source": [ + "import numpy, sympy\n", + "\n", + "print 'Solution to the given linear differntial equation is given by: '\n", + "c1 = sympy.Symbol('c1')\n", + "c2 = sympy.Symbol('c2')\n", + "c3 = sympy.Symbol('c3')\n", + "c4 = sympy.Symbol('c4')\n", + "x = sympy.Symbol('x')\n", + "m = numpy.poly([0])\n", + "f = m**4+4;\n", + "r = numpy.roots([4, 0, 0, 0, 4])\n", + "y = c1*sympy.exp(r[0].real*x)+c2*sympy.exp(r[1].real*x)+c3*sympy.exp(r[2].real*x)+c4*sympy.exp(r[3].real*x)\n", + "print \"y = \", y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.5, page no. 402" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution to the given linear differntial equation is given by: \n", + "y = [ 9041.93285661 22.41271075]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "print 'Solution to the given linear differntial equation is given by: '\n", + "m = numpy.poly([0])\n", + "f = m**2+5*m+6\n", + "y = numpy.exp(f)/numpy.polyval(f,1)\n", + "print \"y = \", y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.6, page no. 403" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution of the given linear equation is given by: \n", + "[ 0.25+0.96824584j 0.25-0.96824584j]\n", + "y = 1/f(D)∗[exp(-2x)+exp(x)-exp(-x)\n", + "using 1/f(D)exp(ax) = x/f1(D)∗exp(ax) if f(m)=0\n", + "y = x**2*exp(x)/6 + x*exp(-2*x)/9 + exp(-x)/4\n" + ] + } + ], + "source": [ + "import numpy, sympy\n", + "\n", + "print 'Solution of the given linear equation is given by: '\n", + "x = sympy.Symbol('x')\n", + "m = numpy.poly([0])\n", + "f =(m+2)*(m-1)**2;\n", + "r = numpy.roots([2, -1, 2])\n", + "print r\n", + "print 'y = 1/f(D)∗[exp(-2x)+exp(x)-exp(-x)'\n", + "print 'using 1/f(D)exp(ax) = x/f1(D)∗exp(ax) if f(m)=0'\n", + "y1 = x*sympy.exp(-2*x)/9\n", + "y2 = sympy.exp(-x)/4\n", + "y3 = x**2*sympy.exp(x)/6\n", + "y = y1+y2+y3\n", + "print \"y = \", y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.7, page no. 404" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution of the given linear equation is given by: \n", + "Using the identity 1/f(D**2)∗sin(ax+b)[or cos(ax+b)]=1/f(-a**2)∗sin(ax+b)[or cos(ax+b)] this equation \n", + "can be redused to y = (4D+1)/65∗cos(2x-1)\n", + "y = -8*sin(2*x - 1)/65 + cos(2*x - 1)/65\n" + ] + } + ], + "source": [ + "import numpy, sympy\n", + "\n", + "print 'Solution of the given linear equation is given by: '\n", + "x = sympy.Symbol('x')\n", + "m = numpy.poly([0])\n", + "f = m**3+1;\n", + "print '''Using the identity 1/f(D**2)∗sin(ax+b)[or cos(ax+b)]=1/f(-a**2)∗sin(ax+b)[or cos(ax+b)] this equation \n", + "can be redused to''',\n", + "print 'y = (4D+1)/65∗cos(2x-1)'\n", + "y = (sympy.cos(2*x-1)+4*sympy.diff(sympy.cos(2*x-1),x))/65\n", + "print \"y = \", y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.8, page no. 405" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution of the given linear equation is given by: \n", + "Using 1/f(D)exp(ax) = x/f1(D)∗exp(ax) if f(m)=0\n", + "y = x∗1/(3D**2+4)∗sin2x\n", + "Using this identity 1/f(D**2)∗sin(ax+b)[or cos(ax+b)]= 1/f(-a**2)∗sin(ax+b)[or cos (ax+b)] this equation \n", + "can be redused to y = -x/8∗sin2x\n", + "y = -0.113662178353\n" + ] + } + ], + "source": [ + "import numpy, sympy\n", + "\n", + "print 'Solution of the given linear equation is given by: '\n", + "x = sympy.Symbol('x')\n", + "m = numpy.poly([0])\n", + "f = m**3+4*m\n", + "print 'Using 1/f(D)exp(ax) = x/f1(D)∗exp(ax) if f(m)=0'\n", + "print 'y = x∗1/(3D**2+4)∗sin2x'\n", + "print '''Using this identity 1/f(D**2)∗sin(ax+b)[or cos(ax+b)]= 1/f(-a**2)∗sin(ax+b)[or cos (ax+b)] this equation \n", + "can be redused to''',\n", + "print 'y = -x/8∗sin2x'\n", + "x=1\n", + "y = -x*numpy.sin(2*x)/8\n", + "print \"y = \", y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.9, page no. 406" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution of the given linear equation is given by: \n", + "y = 1/(D(D+1))[x**2+2x+4] can be written as (1−D+D**2)/D[x**2+2x+4] which is combination of\n", + "differentialtion and integration\n", + "y = x**3/3 + 4*x\n" + ] + } + ], + "source": [ + "import numpy, sympy\n", + "\n", + "print 'Solution of the given linear equation is given by: '\n", + "x = sympy.Symbol('x')\n", + "m = numpy.poly([0])\n", + "print '''y = 1/(D(D+1))[x**2+2x+4] can be written as (1−D+D**2)/D[x**2+2x+4] which is combination of\n", + "differentialtion and integration'''\n", + "g = x**2+2*x+4\n", + "f = g-sympy.diff(g,x)+sympy.diff(g,x,2)\n", + "y = sympy.integrate(f,x)\n", + "print 'y = ', y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.11, page no. 406" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution to the given linear differntial equation is given by: \n", + "CF + PI\n", + "[-1.]\n", + "CF is given by: \n", + "(c1 + c2*x)*exp(-1.0*x)\n", + "−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−\n", + "PI = 8∗{1/(D−2)**2[exp(2x)]+{1/(D−2)**2[sin(2x)]+{1/(D−2)**2[x**2]}\n", + "Using identitties it reduces to: 4*x**2*exp(2*x) + 4*x + cos(2*x) + 3\n", + "The solution is y = 4*x**2*exp(2*x) + 4*x + (c1 + c2*x)*exp(-1.0*x) + cos(2*x) + 3\n" + ] + } + ], + "source": [ + "import numpy, sympy\n", + "\n", + "print 'Solution to the given linear differntial equation is given by: '\n", + "print 'CF + PI'\n", + "c1 = sympy.Symbol('c1')\n", + "c2 = sympy.Symbol('c2')\n", + "x = sympy.Symbol('x')\n", + "m = numpy.poly([0])\n", + "f = (m-2)**2;\n", + "r = numpy.roots([2, 2])\n", + "print r\n", + "print 'CF is given by: '\n", + "cf = (c1+c2*x)*sympy.exp(r[0]*x)\n", + "print cf\n", + "print '−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−'\n", + "print 'PI = 8∗{1/(D−2)**2[exp(2x)]+{1/(D−2)**2[sin(2x)]+{1/(D−2)**2[x**2]}'\n", + "print 'Using identitties it reduces to: ',\n", + "pi = 4*x**2*sympy.exp(2*x)+sympy.cos(2*x)+4*x+3\n", + "print pi\n", + "y = cf + pi ;\n", + "print 'The solution is y = ', y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exampe 13.12, page no. 407" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution to the given linear differntial equation is given by: \n", + "CF + PI\n", + "[-0.+1.41421356j 0.-1.41421356j]\n", + "CF is given by\n", + "c1*exp(1.4142135623731*I*x) + c2*exp(-1.4142135623731*I*x)\n", + "−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−\n", + "PI = 8∗{1/(D**2-4)[x∗sinh(x)]\n", + "Using identities it reduces to: -x*(exp(x) - exp(-x))/6\n", + "The solution is y = c1*exp(1.4142135623731*I*x) + c2*exp(-1.4142135623731*I*x) - x*(exp(x) - exp(-x))/6\n" + ] + } + ], + "source": [ + "import numpy, sympy\n", + "\n", + "print 'Solution to the given linear differntial equation is given by: '\n", + "print 'CF + PI'\n", + "c1 = sympy.Symbol('c1')\n", + "c2 = sympy.Symbol('c2')\n", + "x = sympy.Symbol('x')\n", + "m = numpy.poly([0])\n", + "f = m**2-4\n", + "r = numpy.roots([2, 0, 4])\n", + "print r\n", + "print 'CF is given by'\n", + "cf = c1*sympy.exp(r[0]*x)+c2*sympy.exp(r[1]*x)\n", + "print cf\n", + "print '−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−'\n", + "print 'PI = 8∗{1/(D**2-4)[x∗sinh(x)]'\n", + "print 'Using identities it reduces to: ',\n", + "pi = -x/6*(sympy.exp(x)-sympy.exp(-x))-2/18*(sympy.exp(x)+sympy.exp(-x))\n", + "print pi\n", + "y = cf + pi\n", + "print \"The solution is y = \", y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.13, page no. 408" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution to the given linear differntial equation is given by: \n", + "CF + PI\n", + "[-0.+0.70710678j 0.-0.70710678j]\n", + "CF is given by\n", + "c1*exp(0.707106781186548*I*x) + c2*exp(-0.707106781186548*I*x)\n", + "−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−\n", + "PI = -1/10∗{1/(D**2-1)[x∗sin(3x)+cos(x)]\n", + "Using identities it reduces to: -x*sin(3*x) - cos(x)/2\n", + "The solution is y = c1*exp(0.707106781186548*I*x) + c2*exp(-0.707106781186548*I*x) - x*sin(3*x) - cos(x)/2\n" + ] + } + ], + "source": [ + "import numpy, sympy\n", + "\n", + "print 'Solution to the given linear differntial equation is given by: '\n", + "print 'CF + PI'\n", + "c1 = sympy.Symbol('c1')\n", + "c2 = sympy.Symbol('c2')\n", + "x = sympy.Symbol('x')\n", + "m = numpy.poly([0])\n", + "f = m**2-1\n", + "r = numpy.roots([2, 0, 1])\n", + "print r\n", + "print 'CF is given by'\n", + "cf = c1*sympy.exp(r[0]*x)+c2*sympy.exp(r[1]*x)\n", + "print cf\n", + "print '−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−'\n", + "print 'PI = -1/10∗{1/(D**2-1)[x∗sin(3x)+cos(x)]'\n", + "print 'Using identities it reduces to: ',\n", + "pi = -1/10*(x*sympy.sin(3*x)+3/5*sympy.cos(3*x))-sympy.cos(x)/2\n", + "print pi\n", + "y = cf + pi\n", + "print \"The solution is y = \", y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.14, page no. 408" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution to the given linear differntial equation is given by: \n", + "CF + PI\n", + "(5.55111512313e-17+0.707106781187j)\n", + "CF is given by\n", + "(c1 + c2*x)*exp(5.55111512312578e-17*x) + (c3 + c4*x)*exp(-0.5*x)\n", + "−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−\n", + "PI = ∗{1/(D**4+2∗D+1)[x**2∗cos(x)]\n", + "Using identities it reduces to: 4*x**3*sin(x) - (x**4 - 9*x**2)*cos(x)\n", + "The solution is y = 4*x**3*sin(x) + (c1 + c2*x)*exp(5.55111512312578e-17*x) + (c3 + c4*x)*exp(-0.5*x) - (x**4 - 9*x**2)*cos(x)\n" + ] + } + ], + "source": [ + "import numpy, sympy\n", + "\n", + "print 'Solution to the given linear differntial equation is given by: '\n", + "print 'CF + PI'\n", + "c1 = sympy.Symbol('c1')\n", + "c2 = sympy.Symbol('c2')\n", + "c3 = sympy.Symbol('c3')\n", + "c4 = sympy.Symbol('c4')\n", + "x = sympy.Symbol('x')\n", + "m = numpy.poly([0])\n", + "f =m**4+2*m**2+1\n", + "r = numpy.roots([4, 2, 2, 1])\n", + "print r[0]\n", + "print 'CF is given by'\n", + "cf = ((c1+c2*x)*sympy.exp(r[0].real*x)+(c3+c4*x)*sympy.exp(r[2].real*x))\n", + "print cf\n", + "print '−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−'\n", + "print 'PI = ∗{1/(D**4+2∗D+1)[x**2∗cos(x)]'\n", + "print 'Using identities it reduces to: ',\n", + "pi = -1/48*((x**4-9*x**2)*sympy.cos(x)-4*x**3*sympy.sin(x))\n", + "print pi\n", + "y = cf + pi\n", + "print \"The solution is y = \", y" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11+" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter1_2.ipynb b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter1_2.ipynb new file mode 100644 index 00000000..e7f8326b --- /dev/null +++ b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter1_2.ipynb @@ -0,0 +1,737 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 1: Solution of Equation & Curve Fitting" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.1, page no. 21" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The roots of above equation are: [-3. 2. 0.5]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "x = numpy.poly([0])\n", + "p = 2*(x**3)+x**2-13*x+6\n", + "print \"The roots of above equation are: \", numpy.roots([2,1,-13,6])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.2, page no. 21" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The roots of the equation are: [ 2.00000000+2.64575131j 2.00000000-2.64575131j -2.66666667+0.j ]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "x = numpy.poly([0])\n", + "print \"The roots of the equation are: \", numpy.roots ([3, -4, 1, 88])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 1.3, page no. 22" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The roots of above equation are: [ 6. 3. -2.]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "x = numpy.poly([0])\n", + "p = x^3-7*(x^2)+36\n", + "print \"The roots of above equation are:\", numpy.roots([1, -7, 0, 36])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.4, page no. 23" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The roots of above equation are: [ 5. -4. 2. -1.]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "x = numpy.poly ([0]) \n", + "p = x**4-2*(x**3)-21*(x**2)+22*x+40\n", + "print \"The roots of above equation are:\", numpy.roots([1,-2,-21,22,40])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.5, page no. 23" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The roots of above equation are: [ 4. 2. 1. 0.5]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "x = numpy.poly ([0]) \n", + "p = 2*(x**4)-15*(x**3)+35*(x**2)-30*x+8\n", + "print \"The roots of above equation are:\", numpy.roots([2,-15,35,-30,8])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.6, page no. 24" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The roots of above equation are: [ 2.87938524 0.65270364 -0.53208889]\n", + "let x1 = 0.6527036 x2 = -0.5320889 x3 = 2.8793852\n", + "So the equation whose roots are cube of the roots of above equation is (x−x1ˆ3)∗(x−x2ˆ3)∗(x−x3ˆ3)\n", + "(x - 23.8725770741465)*(x - 0.278066086195109)*(x + 0.150644263115026)\n" + ] + } + ], + "source": [ + "import numpy\n", + "import sympy\n", + "\n", + "x = numpy.poly ([0]) \n", + "p = x**3-3*(x**2)+1\n", + "ans = numpy.roots([1,-3, 0, 1])\n", + "print \"The roots of above equation are:\", ans\n", + "x = sympy.Symbol('x')\n", + "print \"let x1 = 0.6527036 x2 = -0.5320889 x3 = 2.8793852\"\n", + "print \"So the equation whose roots are cube of the roots of above equation is (x−x1ˆ3)∗(x−x2ˆ3)∗(x−x3ˆ3)\"\n", + "p1 = (x-x1**3)*(x-x2**3)*(x-x3**3)\n", + "print p1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.7, page no. 25" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The roots of above equation are:\n", + "[ 4.48928857 2.28916855 -0.77845712]\n", + "let x1 = -0.7784571 x2 = 2.2891685 x3 = 4.4892886\n", + "Now, since we want equation whose sum of roots is 0. sum of roots of above equation is 6, so we will decrease\n", + "Value of each root by 2 i.e. x4 = x1-2\n", + "x4 = -2.7784571\n", + "x5 = 0.2891685\n", + "x6 = 2.4892886\n", + "Hence, the required equation is ( x−x4 ) ∗ ( x−x5 ) ∗ ( x−x6 ) = 0 −−>\n", + "(x - 2.4892886)*(x - 0.2891685)*(x + 2.7784571)\n" + ] + } + ], + "source": [ + "import numpy\n", + "import sympy\n", + "\n", + "x = numpy.poly ([0]) \n", + "x1 = numpy.poly ([0]) \n", + "x2 = numpy.poly ([0]) \n", + "x3 = numpy.poly ([0]) \n", + "x4 = numpy.poly ([0]) \n", + "x5 = numpy.poly ([0] ) \n", + "x6 = numpy.poly ([0]) \n", + "p = x**3-6*(x**2)+5*x+8\n", + "print \"The roots of above equation are:\"\n", + "print numpy.roots ([1, -6, 5, 8])\n", + "print \"let x1 = -0.7784571 x2 = 2.2891685 x3 = 4.4892886\"\n", + "x1 = -0.7784571\n", + "x2 = 2.2891685\n", + "x3 = 4.4892886\n", + "print \"Now, since we want equation whose sum of roots is 0. sum of roots of above equation is 6, so we will decrease\"\n", + "print \"Value of each root by 2 i.e. x4 = x1-2\"\n", + "x = sympy.Symbol('x')\n", + "x4 = x1-2\n", + "print \"x4 = \", x4\n", + "x5=x2-2\n", + "print \"x5 = \", x5\n", + "x6=x3-2\n", + "print \"x6 = \", x6\n", + "print \"Hence, the required equation is ( x−x4 ) ∗ ( x−x5 ) ∗ ( x−x6 ) = 0 −−>\"\n", + "p1 =( x-x4 )*(x-x5)*(x-x6)\n", + "print p1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.8, page no. 28" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The roots of above equation are: [ 3. 2. 1. 0.5 0.33333333]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "x = numpy.poly ([0]) \n", + "p = 6*(x**5)-41*(x**4)+97*(x**3)-97*(x**2)+41*x-6\n", + "print \"The roots of above equation are:\",numpy.roots([6,-41,97,-97,41,-6])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.9, page no. 28" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The roots of above equation are: [ 2.00000000+0.j -1.00000000+0.j 0.83333333+0.5527708j\n", + " 0.83333333-0.5527708j 1.00000000+0.j 0.50000000+0.j ]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "x = numpy.poly([0]) \n", + "p = 6*(x**6)-25*(x**5)+31*(x**4)-31*(x**2)+25*x-6\n", + "print \"The roots of above equation are:\", numpy.roots([6,-25,31,0,-31,25,-6])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.10, page no. 29" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The roots of above equation are: [ 2.+3.46410162j 2.-3.46410162j -1.+0.j ]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "x = numpy.poly ([0]) \n", + "p = x**3-3*(x**2)+12*x+16\n", + "print \"The roots of above equation are:\", numpy.roots([1,-3,12,16])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.11, page no. 30" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The roots of above equation are: [ 0.28571429+0.24743583j 0.28571429-0.24743583j -0.25000000+0.j ]\n" + ] + } + ], + "source": [ + "import numpy\n", + "x = numpy.poly ([0]) \n", + "p = 28*(x**3)-9*(x**2)+1\n", + "print \"The roots of above equation are:\",numpy.roots([28,-9,0,1])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.12, page no. 31" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The roots of above equation are: [-5. +0.00000000e+00j 2. +2.90013456e-08j 2. -2.90013456e-08j]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "x = numpy.poly ([0]) \n", + "p = x**3+x**2-16*x+20\n", + "print \"The roots of above equation are:\",numpy.roots ([1,1,-16,20])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.13, page no. 31" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The roots of above equation are: [ 1.08727971+1.17131211j 1.08727971-1.17131211j -1.17455941+0.j ]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "x = numpy.poly ([0]) \n", + "p = x**3-3*(x**2)+3\n", + "print \"The roots of above equation are:\",numpy.roots ([1,-1,0,3])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.14, page no. 33" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The roots of above equation are: [ 6. 4. 3. -1.]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "x = numpy.poly([0]) \n", + "p = x**4-12*(x**3)+41*(x**2)-18*x-72\n", + "print \"The roots of above equation are:\",numpy.roots ([1,-12,41,-18,-72])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.15, page no. 34" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The roots of above equation are: [-2.30277564 2.61803399 1.30277564 0.38196601]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "x = numpy.poly ([0]) \n", + "p = x**4-2*(x**3)-5*(x**2)+10*x-3\n", + "print \"The roots of above equation are:\", numpy.roots ([1,-2,-5,10,-3])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.16, page no. 35" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The roots of above equation are: [ 3.73205081+0.j -2.00000000+1.73205081j -2.00000000-1.73205081j\n", + " 0.26794919+0.j ]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "x = numpy.poly ([0]) \n", + "p = x**4-8*(x**2)-24*x+7\n", + "print \"The roots of above equation are:\",numpy.roots ([1,0,-8,-24,7])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.17, page no. 35" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The roots of above equation are: [ 6.05932014 -1.65491082 1.59559067]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "x = numpy.poly ([0]) \n", + "p = x**4-6*(x**3)-3*(x**2)+22*x-6\n", + "print \"The roots of above equation are:\",numpy.roots ([1,-6,-3,22.-6])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.18, page no. 37" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "From the graph, it is clear that the point of intersection is nearly x = 1.43\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fa769850290>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "import numpy\n", + "import math\n", + "\n", + "x = numpy.linspace(1 ,3 ,30)\n", + "y1 = 3-x\n", + "y2 = math.e**(x-1)\n", + "plt.xlabel('X axis')\n", + "plt.ylabel('Y axis')\n", + "plt.title('My Graph')\n", + "plt.plot(x, y1, \"o-\" )\n", + "plt.plot(x, y2, \"+-\" )\n", + "plt.legend([\"3-x\" ,\"e**(x-1)\"])\n", + "print \"From the graph, it is clear that the point of intersection is nearly x = 1.43\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.19, page no. 40" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "From the graph, it is clear that the point of intersection is nearly x=2.3\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fa7698ce210>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "import numpy\n", + "import math\n", + "\n", + "x = numpy.linspace(1 ,3 ,30)\n", + "y1 = x\n", + "y2 = numpy.sin(x)+math.pi/2\n", + "plt.xlabel('X axis')\n", + "plt.ylabel('Y axis')\n", + "plt.title('My Graph')\n", + "plt.plot(x, y1, \"o-\")\n", + "plt.plot(x, y2, \"+-\")\n", + "plt.legend([\"x\", \"sin(x)+pi/2\"])\n", + "print \"From the graph, it is clear that the point of intersection is nearly x=2.3\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.20, page no. 41" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "From the graph, it is clear that the point of intersection is nearly x=2.3 \n" + ] + }, + { + "data": { + "image/png": "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\n661rpAOFDbgzxsSd0lL/p6YlS1wEP5bM/z5KSlxh1Sk1NZWNGzeyb98+2rdvz8CBAwF44YUXGD9+\nPGPHjgVg1KhRnHfeeSxatIjRo0fz5ptvcuDAAbKysgC48MILASgqKiIzM7PaZ5x11llMnz6diy++\nmH379rF69epqg+cyMzM5dOhQWPVvCOv1ZIyJO2lp5X7X5+V5/OQI/pcxY/zvIz3dE1QdXnzxRTIz\nM8nMzGTChAnMmzePb775hjPPPJMBAwawaNEiAL7//ntee+01srOzq5b333+fXbt2UVhYSNu2bauC\nhK/s7GyOHDlSa/1VV13F1q1bGT9+PD179qy27ciRI373FXXhpCGxXrBLT8Y0Gf7+P/tvX7gzAm0U\noe2jLv/3f/+n6enpevToUZ0zZ47ecMMNfsvt2LFDk5KStKioqNa2wsJCbdmyZVUbRaVLL71UL7nk\nEm3fvr2+99571ba98MILOnLkyHrrV9c5Erv0ZEzii/deOo2l8pjnzp1BSYmL9HQPU6aMDelvEYl9\n+HrhhRfIy8ujQ4cOZGVlISK4XC6uuOIKzj//fJYuXcqPfvQjysrK+PDDD+nduzddunRh3Lhx3Hzz\nzTz++OO0atWKlStXMmzYMLp27UqvXr1YtWpVVa+n559/nk8//ZS1a9fy+uuvc/XVV7N27VpatWoF\nwPLlyxk3blxY9W+QcKJLrBcsozBNUKR76SSKRPn/fMUVV2jHjh01IyND+/btq6+//nrVtlWrVunw\n4cO1bdu22qFDB73ooot069atqqp64MABvfrqqzUnJ0ezs7P15z//edX7Hn/8cZ08ebKqOr2g2rVr\npx988EHV9ssvv1xvvPFGVVU9fvy4du3aVffs2VNvXev6mxJmRmHjKIyJE3l501m69F4/62fw5pv3\nxKBGjaM5D7g7ceIE55xzDm+//TY5OTkByz722GNs27aN++67r979RnochV16MiZO1NXTJ9xeOib+\npaamsm7duqDK3nLLLVGuTd1i2utJROaJyG4R+cJnXVsRWSYi34jIUhFpE8s6GtNY6urpE2wvHWOi\nJdbdY58BxtZYdwewTFVPA97yvjamybv11jH07Dmt2rquXacyZcroGNXIGEfM2yhEpDuwQFXP9r7+\nChiuqrtFJBcoUNUzarzH2ihMk7Ro0QqmTFmGqouMDA/Hjo3m66+HkdyELxI35zaKaGlykwL6CRQH\n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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fa7696dc7d0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "import numpy\n", + "import math\n", + "\n", + "x = numpy.linspace(0, 3, 30)\n", + "y1 = -1/numpy.cos(x)\n", + "y2 = numpy.cosh(x)\n", + "plt.xlabel('X axis')\n", + "plt.ylabel('Y axis')\n", + "plt.title('My Graph')\n", + "plt.plot(x, y1, \"o-\" )\n", + "plt.plot(x, y2, \"+-\" )\n", + "plt.legend ([\"-sec(x)\", \"cosh(x)\"])\n", + "print \"From the graph, it is clear that the point of intersection is nearly x=2.3 \"" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter21_2.ipynb b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter21_2.ipynb new file mode 100644 index 00000000..db9ef99e --- /dev/null +++ b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter21_2.ipynb @@ -0,0 +1,1304 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 21 Laplace Transform" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.1.1, page no. 556" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "(12*s/((s**2 + 1)*(s**2 + 25)), 0, True)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "print laplace_transform(sympy.sin(2*t)*sympy.sin(3*t),t,s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.1.2, page no. 557" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "(sqrt(pi)*(sqrt(2)*sin(s**2/4)*fresnelc(sqrt(2)*s/(2*sqrt(pi))) - sqrt(2)*cos(s**2/4)*fresnels(sqrt(2)*s/(2*sqrt(pi))) + cos(s**2/4 + pi/4))/2, 0, True)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "print laplace_transform(sympy.cos(t**2),t,s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.1.3, page no. 558" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "((-1)**(1/12)*pi*sqrt(s)*besseli(-1/3, 2*sqrt(3)*s**(3/2)*exp_polar(I*pi/4)/9)/18 + (-1)**(11/12)*sqrt(3)*pi*sqrt(s)*besseli(1/3, 2*sqrt(3)*s**(3/2)*exp_polar(I*pi/4)/9)/18 + (-1)**(7/12)*sqrt(3)*pi*sqrt(s)*besseli(5/3, 2*sqrt(3)*s**(3/2)*exp_polar(I*pi/4)/9)/18 - (-1)**(5/12)*pi*sqrt(s)*besseli(7/3, 2*sqrt(3)*s**(3/2)*exp_polar(I*pi/4)/9)/18 + (-1)**(1/12)*pi*sqrt(s)*besselj(-1/3, 2*sqrt(3)*s**(3/2)*exp_polar(I*pi/4)/9)/18 + (-1)**(11/12)*sqrt(3)*pi*sqrt(s)*besselj(1/3, 2*sqrt(3)*s**(3/2)*exp_polar(I*pi/4)/9)/18 + (-1)**(7/12)*sqrt(3)*pi*sqrt(s)*besselj(5/3, 2*sqrt(3)*s**(3/2)*exp_polar(I*pi/4)/9)/18 - (-1)**(5/12)*pi*sqrt(s)*besselj(7/3, 2*sqrt(3)*s**(3/2)*exp_polar(I*pi/4)/9)/18 + s**2*hyper((1,), (2/3, 5/6, 7/6, 4/3), -s**6/11664)/6 + (-1)**(1/3)*pi*besseli(2/3, 2*sqrt(3)*s**(3/2)*exp_polar(I*pi/4)/9)/(3*s) - 2*(-1)**(1/6)*sqrt(3)*pi*besseli(4/3, 2*sqrt(3)*s**(3/2)*exp_polar(I*pi/4)/9)/(9*s) - (-1)**(1/3)*pi*besselj(2/3, 2*sqrt(3)*s**(3/2)*exp_polar(I*pi/4)/9)/(3*s) + 2*(-1)**(1/6)*sqrt(3)*pi*besselj(4/3, 2*sqrt(3)*s**(3/2)*exp_polar(I*pi/4)/9)/(9*s), 0, True)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "print laplace_transform((sympy.sin(t**3)),t,s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.2.1, page no. 560" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "((2*s - 9)/(s**2 + 6*s + 34), -3, True)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f = sympy.exp(-3*t)*(2*sympy.cos(5*t)-3*sympy.sin(5*t))\n", + "print laplace_transform(f,t,s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.2.2, page no. 560" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "(2/((s - 3)*((s - 3)**2 + 4)), -oo, Abs(periodic_argument(exp_polar(2*I*pi)*polar_lift(-s + 3)**2, oo)) < pi)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f = sympy.exp(3*t)*(sympy.sin(t))**2\n", + "print laplace_transform(f,t,s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.2.3, page no. 561" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "InverseLaplaceTransform(exp(4*t)*sin(2*t)*cos(t), t, s, _None)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import inverse_laplace_transform\n", + "from sympy.abc import t, s\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f = sympy.exp(4*t)*(sympy.cos(t)*sympy.sin(2*t))\n", + "print inverse_laplace_transform(f,t,s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.4.1, page no. 563" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "(2*a*s/(a**2 + s**2)**2, 0, Abs(periodic_argument(polar_lift(a)**2, oo)) == 0)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f = t*sympy.sin(a*t)\n", + "print laplace_transform(f,t,s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.4.2, page no. 564" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "((-a**2 + s**2)/(a**2 + s**2)**2, 0, Abs(periodic_argument(polar_lift(a)**2, oo)) == 0)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f = t*sympy.cos(a*t)\n", + "print laplace_transform(f,t,s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.5, page no. 565" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Piecewise((u/2, s**3*u**2 == 0), (1/(s**2*u) + (-s**2*u**2 - s*u)*exp(-s*u)/(s**3*u**2), True)) + Integral(exp(-s*t), (t, u, oo))\n" + ] + } + ], + "source": [ + "import sympy\n", + "\n", + "t = sympy.Symbol('t')\n", + "s = sympy.Symbol('s')\n", + "u = sympy.Symbol('u')\n", + "f = sympy.integrate(sympy.exp(-s*t)*t/u,(t,0,u))+sympy.integrate(sympy.exp(-s*t),(t,u,sympy.oo))\n", + "print f" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.7, page no. 566" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "(atan(a/s), 0, Abs(periodic_argument(polar_lift(a)**2, oo)) == 0)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f = sympy.sin(a*t)/t\n", + "print laplace_transform(f,t,s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.8.1, page no. 567" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "((-a**2 + s**2)/(a**2 + s**2)**2, 0, Abs(periodic_argument(polar_lift(a)**2, oo)) == 0)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f = t*sympy.cos(a*t)\n", + "print laplace_transform(f,t,s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.8.2, page no. 568" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "(2*a*(-a**2 + 3*s**2)/(a**2 + s**2)**3, 0, Abs(periodic_argument(polar_lift(a)**2, oo)) == 0)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f = (t**2)*sympy.sin(a*t)\n", + "print laplace_transform(f,t,s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.8.3, page no. 569" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "(6/(s + 3)**4, 0, True)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f = sympy.exp(-3*t)*t**3;\n", + "print laplace_transform(f,t,s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.8.4, page no. 570" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "(6*(s + 1)/((s + 1)**2 + 9)**2, -1, True)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f = sympy.exp(-t)*t*sympy.sin(3*t)\n", + "print laplace_transform(f,t,s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.9.1, page no. 571" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "-MellinTransform(1, t, s) + MellinTransform(1/t, t, s)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import mellin_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f = (1-t)/t\n", + "print mellin_transform(f,t,s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.9.2, page no. 572" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "(2**s*sqrt(pi)*a**(-s)*b**(-s)*(a*b**s - a**s*b)*gamma(s/2 - 1/2)/(4*gamma(-s/2 + 1)), (1, 2), And(Abs(periodic_argument(polar_lift(a)**2, oo)) == 0, Abs(periodic_argument(polar_lift(b)**2, oo)) == 0))\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import mellin_transform\n", + "from sympy.abc import t, s, a, b\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f =(sympy.cos(a*t)-sympy.cos(b*t))/t\n", + "print mellin_transform(f,t,s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.10.1, page no. 574" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the given integral find the laplace of tsin(t) and put s=2\n", + "Integral((2*s/(s**2 + 1)**2, 0, True), s)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the given integral find the laplace of tsin(t) and put s=2'\n", + "f = sympy.sin(t)*t\n", + "l = laplace_transform(f,t,s)\n", + "s = 2\n", + "print sympy.integrals.Integral(l)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.10.3, page no. 575" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "(sqrt(2)*LaplaceTransform(meijerg(((-1/2, 0, 1/4, 1/2, 3/4, 1), (1,)), ((), (-1/2, 0, 0)), 64*exp_polar(-4*I*pi)/t**4), t, s)/(8*sqrt(pi)) - 4/s - pi/(4*s) + 34*sqrt(2)/(9*s), 0, True)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f = sympy.integrate(sympy.exp(t)*sympy.sin(t)/t,(t,0,t))\n", + "l = laplace_transform(f,t,s)\n", + "print l" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.11.1, page no. 576" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "InverseLaplaceTransform(1, t, s, _None)/s - 3*InverseLaplaceTransform(1, t, s, _None)/s**2 + 4*InverseLaplaceTransform(1, t, s, _None)/s**3\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import inverse_laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f =(s**2-3*s+4)/s**3\n", + "print inverse_laplace_transform(f,t,s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.11.2, page no. 577" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "s*InverseLaplaceTransform(1, t, s, _None)/(2*s**2 - 4*s + 13) + 2*InverseLaplaceTransform(1, t, s, _None)/(2*s**2 - 4*s + 13)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import inverse_laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f =(s+2)/(2*s**2-4*s+13)\n", + "il = inverse_laplace_transform(f,t,s)\n", + "print il" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.12.1, page no. 579" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "2*s**2*InverseLaplaceTransform(1, t, s, _None)/(s**3 - 6*s**2 + 11*s - 6) - 6*s*InverseLaplaceTransform(1, t, s, _None)/(s**3 - 6*s**2 + 11*s - 6) + 5*InverseLaplaceTransform(1, t, s, _None)/(s**3 - 6*s**2 + 11*s - 6)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import inverse_laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f =((2*s**2-6*s+5)/(s**3-6*s**2+11*s-6))\n", + "il = inverse_laplace_transform(f,t,s)\n", + "print il" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.12. 3, page no. 579" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "4*s*InverseLaplaceTransform(1, t, s, _None)/(s*(s - 1)**2 + 2*(s - 1)**2) + 5*InverseLaplaceTransform(1, t, s, _None)/(s*(s - 1)**2 + 2*(s - 1)**2)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import inverse_laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f =(4*s+5)/((s-1)**2*(s+2))\n", + "il = inverse_laplace_transform(f,t,s)\n", + "print il" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.13.1, page no. 580" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "5*s*InverseLaplaceTransform(1, t, s, _None)/(s**3 + s**2 + 3*s - 5) + 3*InverseLaplaceTransform(1, t, s, _None)/(s**3 + s**2 + 3*s - 5)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import inverse_laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f =(5*s+3)/((s-1)*(s**2+2*s+5))\n", + "il = inverse_laplace_transform(f,t,s)\n", + "print il" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.13.2, page no. 581" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "s*InverseLaplaceTransform(1, t, s, _None)/(4*a**4 + s**4)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import inverse_laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f = s/(s**4+4*a**4)\n", + "il = inverse_laplace_transform(f,t,s)\n", + "print il" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.14.1, page no. 583" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "s**2*InverseLaplaceTransform(1, t, s, _None)/(s - 2)**3\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import inverse_laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f = s**2/(s-2)**3\n", + "il = inverse_laplace_transform(f,t,s)\n", + "print il" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.14.2, page no. 583" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "s*InverseLaplaceTransform(1, t, s, _None)/(s**2 - 4*s + 13) + 3*InverseLaplaceTransform(1, t, s, _None)/(s**2 - 4*s + 13)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import inverse_laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f =(s+3)/((s**2-4*s+13))\n", + "il = inverse_laplace_transform(f,t,s)\n", + "print il" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.15.1, page no. 584" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "InverseLaplaceTransform(1, t, s, _None)/(a**2*s + s**3)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import inverse_laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f =1/(s*(s**2+a**2))\n", + "il = inverse_laplace_transform(f,t,s)\n", + "print il" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.15.2, page no. 584" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "InverseLaplaceTransform(1, t, s, _None)/(s*(a + s)**3)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import inverse_laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f =1/(s*(s+a)**3)\n", + "il = inverse_laplace_transform(f,t,s)\n", + "print il" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.16.1, page no. 585" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "s*InverseLaplaceTransform(1, t, s, _None)/(a**2 + s**2)**2\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import inverse_laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f = s/((s**2+a**2)**2)\n", + "il = inverse_laplace_transform(f,t,s)\n", + "print il" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.16.2, page no. 586" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "s**2*InverseLaplaceTransform(1, t, s, _None)/(a**2 + s**2)**2\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import inverse_laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f = s**2/((s**2+a**2)**2) ;\n", + "il = inverse_laplace_transform(f,t,s)\n", + "print il" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.16.3, page no. 587" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "InverseLaplaceTransform(1, t, s, _None)/(a**2 + s**2)**2\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import inverse_laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f = 1/((s**2+a**2)**2) ;\n", + "il = inverse_laplace_transform(f,t,s)\n", + "print il" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.17.1, page no. 588" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "InverseLaplaceTransform(1, t, s, _None)/(a**2 + s**2)**2\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import inverse_laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f = (s+2)/(s**2*(s+1)*(s-2))\n", + "il = inverse_laplace_transform(f,t,s)\n", + "print il" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.17.2, page no. 589" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "s*InverseLaplaceTransform(1, t, s, _None)/(s**2 + 4*s + 5)**2 + 2*InverseLaplaceTransform(1, t, s, _None)/(s**2 + 4*s + 5)**2\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import inverse_laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f =(s+2)/(s**2+4*s+5)**2\n", + "il = inverse_laplace_transform(f,t,s)\n", + "print il" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.19.1, page no. 590" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "s*InverseLaplaceTransform(1, t, s, _None)/(a**2 + s**2)**2\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import inverse_laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f = s/(s**2+a**2)**2\n", + "il = inverse_laplace_transform(f,t,s)\n", + "print il" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.19.2, page no. 591" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace of given function in t\n", + "s**2*InverseLaplaceTransform(1, t, s, _None)/(a**2*b**2 + a**2*s**2 + b**2*s**2 + s**4)\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import inverse_laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "print 'To find the laplace of given function in t'\n", + "f = s**2/((s**2+a**2)*(s**2+b**2))\n", + "il = inverse_laplace_transform(f,t,s)\n", + "print il" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.28.1, page no. 598" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Laplace of the given funtion is: \n", + "Piecewise((1/2, s**3 == 0), (exp(-3*s)/s**2 - (-s**2 + s)*exp(-2*s)/s**3, True)) + Piecewise((1/2, s**3 == 0), (exp(-s)/s**2 + (-s**2 - s)*exp(-2*s)/s**3, True))\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "f = sympy.integrate(sympy.exp(-s*t)*(t-1),(t ,1 ,2))+sympy.integrate(sympy.exp(-s*t)*(3-t),(t ,2 ,3))\n", + "print 'Laplace of the given funtion is: '\n", + "print f" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 21.28.2, page no. 598" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Laplace of the given funtion is: \n", + "Piecewise((2, s == -1), (-1/(s*exp(2)*exp(2*s) + exp(2)*exp(2*s)) + 1/(s + 1), True))\n" + ] + } + ], + "source": [ + "import sympy\n", + "from sympy.integrals import laplace_transform\n", + "from sympy.abc import t, s, a\n", + "\n", + "f = sympy.integrate(sympy.exp(-s*t)*sympy.exp(-t),(t ,0 ,2))\n", + "print 'Laplace of the given funtion is: '\n", + "print f" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 21.34, page no. 602" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the laplace transform of periodic funtion\n", + "Piecewise((Piecewise((0, And(s == 0, w == 0)), (1.5707963267949*exp(3.14159265358979*I*w)*sin(3.14159265358979*w) + 1.5707963267949*I*exp(3.14159265358979*I*w)*cos(3.14159265358979*w) - I*exp(3.14159265358979*I*w)*sin(3.14159265358979*w)/(2*w), s == -I*w), (1.5707963267949*exp(-3.14159265358979*I*w)*sin(3.14159265358979*w) - 1.5707963267949*I*exp(-3.14159265358979*I*w)*cos(3.14159265358979*w) + I*exp(-3.14159265358979*I*w)*sin(3.14159265358979*w)/(2*w), s == I*w), (-s*sin(3.14159265358979*w)/(s**2*exp(3.14159265358979*s) + w**2*exp(3.14159265358979*s)) - w*cos(3.14159265358979*w)/(s**2*exp(3.14159265358979*s) + w**2*exp(3.14159265358979*s)), True)), And(Or(s == -I*w, s == 0, s == I*w), Or(s == -I*w, s == I*w, w == 0))), (Piecewise((w/(s**2 + w**2), And(s == 0, w == 0)), (w/(s**2 + w**2) + 1.5707963267949*exp(3.14159265358979*I*w)*sin(3.14159265358979*w) + 1.5707963267949*I*exp(3.14159265358979*I*w)*cos(3.14159265358979*w) - I*exp(3.14159265358979*I*w)*sin(3.14159265358979*w)/(2*w), s == -I*w), (w/(s**2 + w**2) + 1.5707963267949*exp(-3.14159265358979*I*w)*sin(3.14159265358979*w) - 1.5707963267949*I*exp(-3.14159265358979*I*w)*cos(3.14159265358979*w) + I*exp(-3.14159265358979*I*w)*sin(3.14159265358979*w)/(2*w), s == I*w), (-s*sin(3.14159265358979*w)/(s**2*exp(3.14159265358979*s) + w**2*exp(3.14159265358979*s)) - w*cos(3.14159265358979*w)/(s**2*exp(3.14159265358979*s) + w**2*exp(3.14159265358979*s)) + w/(s**2 + w**2), True)), True))/(w*(-exp(-6.28318530717959*s/w) + 1))\n" + ] + } + ], + "source": [ + "import sympy, math\n", + "\n", + "print 'To find the laplace transform of periodic funtion'\n", + "w = sympy.Symbol('w')\n", + "t = sympy.Symbol('t')\n", + "s = sympy.Symbol('s')\n", + "f = 1/(1-sympy.exp(-2*math.pi*s/w))*sympy.integrate(sympy.exp(-1*s*t)*sympy.sin(w*t),(t,0,math.pi))/w\n", + "print f" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter22_2.ipynb b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter22_2.ipynb new file mode 100644 index 00000000..d3d7419e --- /dev/null +++ b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter22_2.ipynb @@ -0,0 +1,244 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 22 : Integral Transform" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 22.1, page no. 608" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the fourier sin integral\n", + "0.636619772367581*Integral(sin(t*u), (t, 0, oo))*Integral(sin(u*x), (u, 0, oo))\n" + ] + } + ], + "source": [ + "import sympy,math\n", + "\n", + "print \"To find the fourier sin integral\"\n", + "x = sympy.Symbol('x')\n", + "t = sympy.Symbol('t')\n", + "u = sympy.Symbol('u')\n", + "fs = 2/math.pi*sympy.integrate(sympy.sin(u*x),(u,0,sympy.oo))*(sympy.integrate(x**0*sympy.sin(u*t),(t,0,sympy.oo)))\n", + "print fs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 22.2, page no. 608" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the fourier transform of given function\n", + "Piecewise((2, s == 0), (1.0*I*exp(-1.0*I*s)/s - 1.0*I*exp(1.0*I*s)/s, True))\n", + "pi/2\n" + ] + } + ], + "source": [ + "import sympy\n", + "\n", + "print \"To find the fourier transform of given function\"\n", + "x = sympy.Symbol('x')\n", + "s = sympy.Symbol('s')\n", + "F = sympy.integrate(sympy.exp(1j*s*x),(x,-1,1))\n", + "print F\n", + "F1 = sympy.integrate(sympy.sin(x)/x,(x,0,sympy.oo))\n", + "print F1" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 22.3, page no. 609" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the fourier transform of given function\n", + "Piecewise((4/3, s**6 == 0), ((-2.0*s**4 - 2.0*I*s**3)*exp(1.0*I*s)/s**6 - (2.0*s**4 - 2.0*I*s**3)*exp(-1.0*I*s)/s**6, True))\n", + "Integral((x*cos(x) - sin(x))*cos(x/2)/x**3, (x, 0, +inf))\n" + ] + } + ], + "source": [ + "import sympy,numpy\n", + "\n", + "print \"To find the fourier transform of given function\"\n", + "x = sympy.Symbol('x')\n", + "s = sympy.Symbol('s')\n", + "F = sympy.integrate(sympy.exp(1j*s*x)*(1-x**2),(x,-1,1))\n", + "print F\n", + "F1 = sympy.integrals.Integral((x*sympy.cos(x)-sympy.sin(x))/x**3*sympy.cos(x/2),(x,0,numpy.inf))\n", + "print F1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 22.4, page no. 610" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the fourier sin integral\n", + "Piecewise((s/(s**2 + 1), Abs(periodic_argument(polar_lift(s)**2, oo)) == 0), (Integral(exp(-x)*sin(s*x), (x, 0, oo)), True))\n", + "Piecewise((sqrt(pi)*(-sqrt(pi)*sinh(m) + sqrt(pi)*cosh(m))/2, Abs(periodic_argument(polar_lift(m)**2, oo)) == 0), (Integral(x*sin(m*x)/(x**2 + 1), (x, 0, oo)), True))\n" + ] + } + ], + "source": [ + "import sympy,math\n", + "\n", + "print \"To find the fourier sin integral\"\n", + "x = sympy.Symbol('x')\n", + "s = sympy.Symbol('s')\n", + "m = sympy.Symbol('m')\n", + "fs = sympy.integrate(sympy.sin(s*x)*sympy.exp(-x),(x,0,sympy.oo))\n", + "print fs\n", + "f = sympy.integrate(x*sympy.sin(m*x)/(1+x**2),(x,0,sympy.oo))\n", + "print f" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 22.5, page no. 611" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fourier cosine transform.\n", + "Piecewise((1/2, s == 0), (-sin(s)/s + cos(s)/s**2 - cos(2*s)/s**2, True)) + Piecewise((1/2, s == 0), (sin(s)/s + cos(s)/s**2 - 1/s**2, True))\n" + ] + } + ], + "source": [ + "import sympy,math\n", + "\n", + "print \"Fourier cosine transform.\"\n", + "x = sympy.Symbol('x')\n", + "s = sympy.Symbol('s')\n", + "f = sympy.integrate(x*sympy.cos(s*x),(x,0,1))+sympy.integrate((2-x)*sympy.cos(s*x),(x,1,2))\n", + "print f" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 22.6, page no. 612" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fourier cosine transform.\n", + "Piecewise((s*atan(sqrt(s**2/a**2))/(a*sqrt(s**2/a**2)), Or(And(-s**2/a**2 != 1, Abs(periodic_argument(polar_lift(a)**2, oo)) == pi, Abs(periodic_argument(polar_lift(s)**2, oo)) == 0), And(Abs(periodic_argument(polar_lift(a)**2, oo)) < pi, Abs(periodic_argument(polar_lift(s)**2, oo)) == 0))), (Integral(exp(-a*x)*sin(s*x)/x, (x, 0, oo)), True))\n" + ] + } + ], + "source": [ + "import sympy,math\n", + "\n", + "print \"Fourier cosine transform.\"\n", + "x = sympy.Symbol('x')\n", + "s = sympy.Symbol('s')\n", + "a = sympy.Symbol('a')\n", + "f = sympy.integrate(sympy.exp(-a*x)/x*sympy.sin(s*x),(x,0,sympy.oo))\n", + "print f" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter23_2.ipynb b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter23_2.ipynb new file mode 100644 index 00000000..a7ba913c --- /dev/null +++ b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter23_2.ipynb @@ -0,0 +1,762 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 23 : Statistical Methods" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 23.1, page no. 618" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The first row of A denotes the no. of students falling in the marks group starting from (5 −10)... till (40−45)\n", + "the second row denotes cumulative frequency (less than)\n", + "the third row denotes cumulative frequency(more than)\n", + "[[ 5. 6. 15. 10. 5. 4. 2. 2.]\n", + " [ 5. 11. 26. 36. 41. 45. 47. 49.]\n", + " [ 49. 44. 38. 23. 13. 8. 4. 2.]]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.zeros([3,8])\n", + "print \"The first row of A denotes the no. of students falling in the marks group starting from (5 −10)... till (40−45)\"\n", + "A[0] = [5,6,15,10,5,4,2,2]\n", + "print \"the second row denotes cumulative frequency (less than)\"\n", + "A[1,0] = 5\n", + "for i in range(1,8):\n", + " A[1,i] = A[1,i-1]+A[0,i]\n", + "print \"the third row denotes cumulative frequency(more than)\"\n", + "A[2,0] = 49\n", + "for i in range (1,8):\n", + " A[2,i] = A[2,i-1]-A[0,i-1]\n", + "print A" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 23.2, page no. 619" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The first row of A represents the mid values of weekly earnings having interval of 2 in each class=x \n", + "The second row denotes the no. of employees or in other words frequency=f \n", + "Third row denotes f∗x\n", + "Fourth row denotes u=(x−25)/2 \n", + "Fifth row denotes f∗x\n", + "[[ 1.10000000e+01 1.30000000e+01 1.50000000e+01 1.70000000e+01\n", + " 1.90000000e+01 2.10000000e+01 2.30000000e+01 2.50000000e+01\n", + " 2.70000000e+01 2.90000000e+01 3.10000000e+01 3.30000000e+01\n", + " 3.50000000e+01 3.70000000e+01 3.90000000e+01 4.10000000e+01]\n", + " [ 3.00000000e+00 6.00000000e+00 1.00000000e+01 1.50000000e+01\n", + " 2.40000000e+01 4.20000000e+01 7.50000000e+01 9.00000000e+01\n", + " 7.90000000e+01 5.50000000e+01 3.60000000e+01 2.60000000e+01\n", + " 1.90000000e+01 1.30000000e+01 9.00000000e+00 7.00000000e+00]\n", + " [ 3.30000000e+01 7.80000000e+01 1.50000000e+02 2.55000000e+02\n", + " 4.56000000e+02 8.82000000e+02 1.72500000e+03 2.25000000e+03\n", + " 2.13300000e+03 1.59500000e+03 1.11600000e+03 8.58000000e+02\n", + " 6.65000000e+02 4.81000000e+02 3.51000000e+02 2.87000000e+02]\n", + " [ -7.00000000e+00 -6.00000000e+00 -5.00000000e+00 -4.00000000e+00\n", + " -3.00000000e+00 -2.00000000e+00 -1.00000000e+00 0.00000000e+00\n", + " 1.00000000e+00 2.00000000e+00 3.00000000e+00 4.00000000e+00\n", + " 5.00000000e+00 6.00000000e+00 7.00000000e+00 8.00000000e+00]\n", + " [ -2.10000000e+01 -3.60000000e+01 -5.00000000e+01 -6.00000000e+01\n", + " -7.20000000e+01 -8.40000000e+01 -7.50000000e+01 0.00000000e+00\n", + " 7.90000000e+01 1.10000000e+02 1.08000000e+02 1.04000000e+02\n", + " 9.50000000e+01 7.80000000e+01 6.30000000e+01 5.60000000e+01]]\n", + "Sum of all elements of third row= 13315.0\n", + "Sum of all elements of second row= 509.0\n", + "mean= 26.1591355599\n", + "Sum of all elements of fifth row= 295.0\n", + "mean by step deviation method= 26.1591355599\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.zeros([5,16])\n", + "print \"The first row of A represents the mid values of weekly earnings having interval of 2 in each class=x \"\n", + "A[0] = [11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41]\n", + "print \"The second row denotes the no. of employees or in other words frequency=f \"\n", + "A[1]=[3,6,10,15,24,42,75,90,79,55,36,26,19,13,9,7]\n", + "print \"Third row denotes f∗x\"\n", + "for i in range(0,16):\n", + " A[2,i] = A[0,i]*A[1,i]\n", + "print \"Fourth row denotes u=(x−25)/2 \"\n", + "for i in range(0,16):\n", + " A[3,i] = (A[0,i]-25)/2\n", + "print \"Fifth row denotes f∗x\"\n", + "for i in range(0,16):\n", + " A[4,i] = A[3,i]*A[1,i]\n", + "print A\n", + "b = 0\n", + "print \"Sum of all elements of third row=\",\n", + "for i in range(0,16):\n", + " b = b+A[2,i]\n", + "print b\n", + "f = 0\n", + "print \"Sum of all elements of second row=\",\n", + "for i in range(0,16):\n", + " f = f+A[1,i]\n", + "print f\n", + "print \"mean=\",b/f\n", + "d = 0\n", + "print \"Sum of all elements of fifth row= \",\n", + "for i in range(0,16):\n", + " d = d+A[4,i]\n", + "print d\n", + "print \"mean by step deviation method= \",25+(2*d/f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 23.3, page no. 620" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The first row of A denotes the no. of students falling in the marks group startin from (5−10)... till (40−45)\n", + "The second row denotes cumulative frequency (less than)\n", + "The third row denotes cumulative frequency (more than)\n", + "[[ 5. 6. 15. 10. 5. 4. 2. 2.]\n", + " [ 5. 11. 26. 36. 41. 45. 47. 49.]\n", + " [ 49. 44. 38. 23. 13. 8. 4. 2.]]\n", + "Median falls in the class (15−20)=l+((n/2−c)∗h)/f= 19\n", + "Lower quartile also falls in the class (15−20)=\n", + "Upper quartile also falls in the class (25−30)=\n", + "Semiinter quartile range= 5\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.zeros([3,8])\n", + "print \"The first row of A denotes the no. of students falling in the marks group startin from (5−10)... till (40−45)\"\n", + "\n", + "A[0] = [5,6,15,10,5,4,2,2]\n", + "print \"The second row denotes cumulative frequency (less than)\"\n", + "A[1]=[5,11,26,36,41,45,47,49]\n", + "print \"The third row denotes cumulative frequency (more than)\"\n", + "A[2] = [49,44,38,23,13,8,4,2]\n", + "print A\n", + "print \"Median falls in the class (15−20)=l+((n/2−c)∗h)/f= \",15+((49/2-11)*5)/15\n", + "print \"Lower quartile also falls in the class (15−20)=\"\n", + "Q1 = 15+((49/4-11)*5)/15\n", + "print \"Upper quartile also falls in the class (25−30)=\"\n", + "Q3 =25+((3*49/4-36)*5)/5\n", + "print \"Semiinter quartile range= \",(Q3-Q1)/2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 23.4, page no. 620" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The first row of A denotes the roll no. of students form 1 to 10 and that of B denotes form 11 to 20 \n", + "The second row of A and B denotes the corresponding marks in physics\n", + "The third row denotes the corresponding marks in chemistry\n", + "Median marks in physics=arithmetic mean of 10th and 11th student = 26\n", + "Median marks in chemistry=arithmetic mean of 10th and 11th student = 41\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.zeros([3,10])\n", + "print \"The first row of A denotes the roll no. of students form 1 to 10 and that of B denotes form 11 to 20 \"\n", + "A[0] = [1,2,3,4,5,6,7,8,9,10]\n", + "B[0] = [11,12,13,14,15,16,17,18,19,20]\n", + "print \"The second row of A and B denotes the corresponding marks in physics\"\n", + "A[1] = [53,54,52,32,30,60,47,46,35,28]\n", + "B[1] = [25,42,33,48,72,51,45,33,65,29]\n", + "print \"The third row denotes the corresponding marks in chemistry\"\n", + "A[2] = [58,55,25,32,26,85,44,80,33,72]\n", + "B[2] = [10,42,15,46,50,64,39,38,30,36]\n", + "print \"Median marks in physics=arithmetic mean of 10th and 11th student = \",(28+25)/2\n", + "print \"Median marks in chemistry=arithmetic mean of 10th and 11th student = \",(72+10)/2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 23.5, page no. 621" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Let the misssing frequencies be f1 and f2 \n", + "Sum of given frequencies=12+30+65+25+18 = 150\n", + "So, f1+f2=229−c = 79\n", + "Median=46=40+(114.5−(12+30+f1))∗10/65)\n", + "f1=33.5=34 \n" + ] + } + ], + "source": [ + "print \"Let the misssing frequencies be f1 and f2 \"\n", + "print \"Sum of given frequencies=12+30+65+25+18 = \",\n", + "c =12+30+65+25+18\n", + "print c\n", + "print \"So, f1+f2=229−c = \",229-c\n", + "print \"Median=46=40+(114.5−(12+30+f1))∗10/65)\"\n", + "print \"f1=33.5=34 \"\n", + "f1 = 34\n", + "f2 = 45" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 23.6, page no. 622" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Let the eqidistance be s, then\n", + "Average speed = total distance/total time taken 1800/47\n" + ] + } + ], + "source": [ + "import sympy\n", + "\n", + "s = sympy.Symbol('s')\n", + "print \"Let the eqidistance be s, then\"\n", + "t1 = s/30\n", + "t2 = s/40\n", + "t3 = s/50\n", + "print \"Average speed = total distance/total time taken\",3*s/(t1+t2+t3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 23.7, page no. 623" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The first row denotes the size of item \n", + "The second row denotes the corresponding frequency(f)\n", + "The third row denotes the corresponding deviation(d)\n", + "The fourth row denotes the corresponding f∗d \n", + "The fifth row denotes the corresponding f∗dˆ2 \n", + "[[ 6. 7. 8. 9. 10. 11. 12.]\n", + " [ 3. 6. 9. 13. 8. 5. 4.]\n", + " [ -3. -2. -1. 0. 1. 2. 3.]\n", + " [ -9. -12. -9. 0. 8. 10. 12.]\n", + " [ 27. 24. 9. 0. 8. 20. 36.]]\n", + "Sum of fourth row elements= 0.0\n", + "Sum of fifth row elements= 124.0\n", + "Sum of all frequencies = 48.0\n", + "mean=9+b/d = 9.0\n", + "Standard deviation = (c/d)ˆ0.5 = 1.60727512683\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.zeros([5,7])\n", + "print \"The first row denotes the size of item \"\n", + "A[0,:] = [6,7,8,9,10,11,12]\n", + "print \"The second row denotes the corresponding frequency(f)\"\n", + "A[1,:] = [3,6,9,13,8,5,4]\n", + "print \"The third row denotes the corresponding deviation(d)\"\n", + "A[2,:] = [-3,-2,-1,0,1,2,3]\n", + "print \"The fourth row denotes the corresponding f∗d \"\n", + "for i in range(0,7):\n", + " A[3,i] = A[1,i]*A[2,i] \n", + "print \"The fifth row denotes the corresponding f∗dˆ2 \"\n", + "for i in range(0,7):\n", + " A[4,i] = A[1,i]*(A[2,i]**2)\n", + "print A\n", + "b = 0\n", + "print \"Sum of fourth row elements= \",\n", + "for i in range(0,7):\n", + " b = b+A[3,i]\n", + "print b\n", + "c = 0\n", + "print \"Sum of fifth row elements= \",\n", + "for i in range(0,7):\n", + " c = c+A[4,i]\n", + "print c\n", + "d = 0\n", + "print \"Sum of all frequencies = \",\n", + "for i in range(0,7):\n", + " d = d+A[1,i]\n", + "print d\n", + "print \"mean=9+b/d = \",9+b/d\n", + "print \"Standard deviation = (c/d)ˆ0.5 = \",(c/d)**0.5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 23.8, page no. 624" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The first row of A represents the mid values of wage classes having interval of 8 in each class=x \n", + "The second row denotes the no. of men or in other words frequency=f \n", + "Third row denotes f∗x \n", + "Fourth row denotes d=(x−32.5)/8 \n", + "Fifth row denotes f∗d \n", + "Sixth row denotes f∗(dˆ2)\n", + "[[ 8.5 16.5 24.5 32.5 40.5 48.5 56.5 64.5 72.5]\n", + " [ 2. 24. 21. 18. 5. 3. 5. 8. 2. ]\n", + " [ 17. 396. 514.5 585. 202.5 145.5 282.5 516. 145. ]\n", + " [ -3. -2. -1. 0. 1. 2. 3. 4. 5. ]\n", + " [ -6. -48. -21. 0. 5. 6. 15. 32. 10. ]\n", + " [ 18. 96. 21. 0. 5. 12. 45. 128. 50. ]]\n", + "Sum of all elements of sixth row= 375.0\n", + "Sum of all elements of second row= 88.0\n", + "mean= 4.26136363636\n", + "Sum of all elements of fifth row= Mean wage= 31.8636363636\n", + "standard deviation= 34.0402892562\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.zeros([6,9])\n", + "print \"The first row of A represents the mid values of wage classes having interval of 8 in each class=x \"\n", + "A[0] = [8.5,16.5,24.5,32.5,40.5,48.5,56.5,64.5,72.5]\n", + "print \"The second row denotes the no. of men or in other words frequency=f \"\n", + "A[1] = [2,24,21,18,5,3,5,8,2]\n", + "print \"Third row denotes f∗x \"\n", + "for i in range(0,9):\n", + " A[2,i] = A[0,i]*A[1,i] \n", + "print \"Fourth row denotes d=(x−32.5)/8 \"\n", + "for i in range(0,9):\n", + " A[3,i] = (A[0,i]-32.5)/8\n", + "print \"Fifth row denotes f∗d \"\n", + "for i in range(0,9):\n", + " A[4,i] = A[3,i]*A[1,i]\n", + "print \"Sixth row denotes f∗(dˆ2)\"\n", + "for i in range(0,9):\n", + " A[5,i] = A[3,i]**2*A[1,i]\n", + "print A\n", + "b = 0\n", + "print \"Sum of all elements of sixth row= \",\n", + "for i in range(0,9):\n", + " b = b+A[5,i]\n", + "print b\n", + "f = 0\n", + "print \"Sum of all elements of second row= \",\n", + "for i in range(0,9):\n", + " f = f+A[1,i]\n", + "print f\n", + "print \"mean= \",b/f\n", + "d = 0\n", + "print \"Sum of all elements of fifth row= \",\n", + "for i in range(0,9):\n", + " d = d+A[4,i]\n", + "print \"Mean wage= \",32.5+(8*d/f)\n", + "print \"standard deviation= \",8*(b/f-(d/f)**2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 23.9, page no. 626" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The first row of A denotes the scores of A and that of B denotes that of B \n", + "The second row of A and B denotes the corresponding deviation \n", + "The third row of A and B denotes the corresponding deviation square \n", + "[[ 12. 115. 6. 73. 7. 19. 119. 36. 84. 29.]\n", + " [ -39. 64. -45. 22. -44. -32. 68. -15. 33. -22.]\n", + " [ 1521. 4096. 2025. 484. 1936. 1024. 4624. 225. 1089. 484.]]\n", + "[[ 47. 12. 16. 42. 4. 51. 37. 48. 13. 0.]\n", + " [ -4. -39. -35. -9. -47. 0. -14. -3. -38. -51.]\n", + " [ 16. 1521. 1225. 81. 2209. 0. 196. 9. 1444. 2601.]]\n", + "Sum of second row elements of A=b= -10.0\n", + "sum of second row elements of B=c= -240.0\n", + "Sum of third row elements of A=d= 17508.0\n", + "Sum of second row elements of B=e= 9302.0\n", + "Arithmetic mean of A= 50.0\n", + "Standard deviation of A= 41.8306108012\n", + "Arithmetic mean of B= 27.0\n", + "Standard deviation of A= 18.8202019118\n", + "Coefficient of variation of A= 83.6612216024\n", + "Coefficient of variation of B= 69.7044515251\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.zeros([3,10])\n", + "B = numpy.zeros([3,10])\n", + "print \"The first row of A denotes the scores of A and that of B denotes that of B \"\n", + "A[0] = [12,115,6,73,7,19,119,36,84,29]\n", + "B[0] = [47,12,16,42,4,51,37,48,13,0]\n", + "print \"The second row of A and B denotes the corresponding deviation \"\n", + "for i in range (0,10):\n", + " A[1,i] = A[0,i]-51\n", + " B[1,i] = B[0,i]-51\n", + "print \"The third row of A and B denotes the corresponding deviation square \"\n", + "for i in range (0,10):\n", + " A[2,i] = A[1,i]**2\n", + " B[2,i] = B[1,i]**2\n", + "print A\n", + "print B\n", + "b = 0\n", + "print \"Sum of second row elements of A=b=\",\n", + "for i in range (0,10):\n", + " b = b+A[1,i]\n", + "print b\n", + "c = 0\n", + "print \"sum of second row elements of B=c=\",\n", + "for i in range (0,10):\n", + " c = c+B[1,i]\n", + "print c\n", + "d = 0\n", + "print \"Sum of third row elements of A=d=\",\n", + "for i in range (0,10):\n", + " d = d+A[2,i]\n", + "print d\n", + "e = 0\n", + "print \"Sum of second row elements of B=e=\",\n", + "for i in range (0,10):\n", + " e = e+B[2,i]\n", + "print e\n", + "print \"Arithmetic mean of A= \",\n", + "f = 51+b/10\n", + "print f\n", + "print \"Standard deviation of A= \",\n", + "g = (d/10-(b/10)**2)**0.5\n", + "print g\n", + "print \"Arithmetic mean of B= \",\n", + "h = 51+c/10\n", + "print h\n", + "print \"Standard deviation of A= \",\n", + "i = (e/10-(c/10)**2)**0.5\n", + "print i\n", + "print \"Coefficient of variation of A=\",(g/f)*100\n", + "print \"Coefficient of variation of B=\",(i/h)*100" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 23.10, page no. 628" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "If m is the mean of entire data, then\n", + "116\n", + "If s is the standard deviation of entire data, then \n", + "7.74596669241\n" + ] + } + ], + "source": [ + "print \"If m is the mean of entire data, then\"\n", + "m = (50*113+60*120+90*115)/(50+60+90)\n", + "print m\n", + "print \"If s is the standard deviation of entire data, then \"\n", + "s = (((50*6**2)+(60*7**2)+(90*8**2)+(50*3**2)+(60*4**2)+(90*1**2))/200)**0.5\n", + "print s" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 23.12, page no. 629" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The first row of A denotes the no. of persons falling in the weight group starting from (70−80)... till (140−150)\n", + "The second row denotes cumulative frequency\n", + "Median falls in the class (110−120) = l+((n/2−c)∗h)/f= 111\n", + "Lower quartile also falls in the class (90−100)= 97.8571428571\n", + "Upper quartile also falls in the class (120−130)= 123.444444444\n", + "Quartile coefficient of skewness= -0.0272952853598\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.zeros([2,8])\n", + "print \"The first row of A denotes the no. of persons falling in the weight group starting from (70−80)... till (140−150)\"\n", + "A[0] = [12,18,35,42,50,45,20,8]\n", + "print \"The second row denotes cumulative frequency\"\n", + "A[1,0] = 12\n", + "for i in range(1,8):\n", + " A[1,i] = A[1,i-1]+A[0,i]\n", + "print \"Median falls in the class (110−120) = l+((n/2−c)∗h)/f= \",\n", + "Q2 = 110+(8*10)/50\n", + "print Q2\n", + "print \"Lower quartile also falls in the class (90−100)= \",\n", + "Q1 = 90+(57.5-30)*10/35\n", + "print Q1\n", + "print \"Upper quartile also falls in the class (120−130)= \",\n", + "Q3 = 120+(172.5-157)*10/45\n", + "print Q3\n", + "print \"Quartile coefficient of skewness= \",(Q1+Q3-2*Q2)/(Q3-Q1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 23.13, page no. 631" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The first row of A denotes the corresponding I.R. of students \n", + "The second row denotes the corresponding deviation of I.R.\n", + "The third row denotes the square of corresponding deviation of I.R.\n", + "The fourth row denotes the corresponding E.R. of students \n", + "The fifth row denotes the corresponding deviation of E.R.\n", + "The sixth row denotes the square of corresponding deviation of E.R.\n", + "The seventh row denotes the product of the two corresponding deviations\n", + "[[ 105. 104. 102. 101. 100. 99. 98. 96. 93. 92.]\n", + " [ 6. 5. 3. 2. 1. 0. -1. -3. -6. -7.]\n", + " [ 36. 25. 9. 4. 1. 0. 1. 9. 36. 49.]\n", + " [ 101. 103. 100. 98. 95. 96. 104. 92. 97. 94.]\n", + " [ 3. 5. 2. 0. -3. -2. 6. -6. -1. -4.]\n", + " [ 9. 25. 4. 0. 9. 4. 36. 36. 1. 16.]\n", + " [ 18. 25. 6. 0. -3. -0. -6. 18. 6. 28.]]\n", + "The sum of elements of first row=a = 990.0\n", + "The sum of elements of second row=b = 0.0\n", + "The sum of elements of third row=c = 170.0\n", + "The sum of elements of fourth row=d = 980.0\n", + "The sum of elements of fifth row=e = 0.0\n", + "The sum of elements of sixth row=d = 140.0\n", + "The sum of elements of seventh row=d = 92.0\n", + "Coefficient of correlation = 0.596347425668\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.zeros([7,10])\n", + "print \"The first row of A denotes the corresponding I.R. of students \"\n", + "A[0] = [105,104,102,101,100,99,98,96,93,92]\n", + "print \"The second row denotes the corresponding deviation of I.R.\"\n", + "for i in range(0,10):\n", + " A[1,i] = A[0,i]-99\n", + "print \"The third row denotes the square of corresponding deviation of I.R.\"\n", + "for i in range(0,10):\n", + " A[2,i] = A[1,i]**2\n", + "print \"The fourth row denotes the corresponding E.R. of students \"\n", + "A[3] = [101,103,100,98,95,96,104,92,97,94]\n", + "print \"The fifth row denotes the corresponding deviation of E.R.\"\n", + "for i in range(0,10):\n", + " A[4,i] = A[3,i]-98\n", + "print \"The sixth row denotes the square of corresponding deviation of E.R.\"\n", + "for i in range(0,10):\n", + " A[5,i] = A[4,i]**2\n", + "print \"The seventh row denotes the product of the two corresponding deviations\"\n", + "for i in range(0,10):\n", + " A[6,i] = A[1,i]*A[4,i]\n", + "print A\n", + "a = 0\n", + "print \"The sum of elements of first row=a = \",\n", + "for i in range(0,10):\n", + " a = a+A[0,i]\n", + "print a\n", + "b = 0 \n", + "print \"The sum of elements of second row=b = \",\n", + "for i in range(0,10):\n", + " b = b+A[1,i]\n", + "print b\n", + "c = 0\n", + "print \"The sum of elements of third row=c = \",\n", + "for i in range(0,10):\n", + " c = c+A[2,i]\n", + "print c\n", + "d = 0\n", + "print \"The sum of elements of fourth row=d = \",\n", + "for i in range(0,10):\n", + " d = d+A[3,i]\n", + "print d\n", + "e = 0\n", + "print \"The sum of elements of fifth row=e = \",\n", + "for i in range(0,10):\n", + " e = e+A[4,i]\n", + "print e\n", + "f = 0\n", + "print \"The sum of elements of sixth row=d = \",\n", + "for i in range(0,10):\n", + " f = f+A[5,i]\n", + "print f\n", + "g = 0\n", + "print \"The sum of elements of seventh row=d = \",\n", + "for i in range(0,10):\n", + " g = g+A[6,i]\n", + "print g\n", + "print \"Coefficient of correlation = \",g/(c*f)**0.5" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter24_2.ipynb b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter24_2.ipynb new file mode 100644 index 00000000..9dd44a2c --- /dev/null +++ b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter24_2.ipynb @@ -0,0 +1,331 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 24: Numerical Methods" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 24.1, page no. 636" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Finding roots of this equation by bisection method\n", + "f(2) is -ve and f(3) is +ve so root lies between 2 and 3\n", + "The root is: 2.6875\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "x = numpy.poly([0])\n", + "p = x**3-4*x-9\n", + "print \"Finding roots of this equation by bisection method\"\n", + "print 'f(2) is -ve and f(3) is +ve so root lies between 2 and 3'\n", + "l = 2.\n", + "m = 3.\n", + "def f(x):\n", + " y = x**3-4*x-9\n", + " return y\n", + "for i in range(1,5):\n", + " k = 1.0/2.*(l+m)\n", + " if(f(k)<0):\n", + " l = k\n", + " else:\n", + " m = k\n", + "print \"The root is: \", k" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 24.3, page no. 638" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "f(x)=xeˆx−cos(x)\n", + "We are required to find the roots of f(x) by the method of false position \n", + "f(0)=−ve and f(1)=+ve so s root lie between 0 and 1 \n", + "finding the roots by false position method \n", + "The root of the equation is :\n", + "0.517747878322\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "print \"f(x)=xeˆx−cos(x)\"\n", + "def f(x):\n", + " y = x*math.e**(x)-math.cos(x)\n", + " return y\n", + "print \"We are required to find the roots of f(x) by the method of false position \"\n", + "print \"f(0)=−ve and f(1)=+ve so s root lie between 0 and 1 \"\n", + "print \"finding the roots by false position method \"\n", + "l = 0.0\n", + "m = 1.0\n", + "for i in range(1,11):\n", + " k = l-(m-l)*f(l)/(f(m)-f(l))\n", + " if(f(k)<0):\n", + " l = k\n", + " else:\n", + " m = k\n", + "print \"The root of the equation is :\"\n", + "print k" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 24.4, page no. 638" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "f(x) = x∗math.log(x)−1.2\n", + "We are required to find the roots of f(x) by the method of false position \n", + "f(2)=−ve and f(3)=+ve so s root lie between 2 and 3 \n", + "finding the roots by false position method \n", + "The root of the equation is : 2.74063625664\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "print \"f(x) = x∗math.log(x)−1.2\"\n", + "def f(x):\n", + " y = x*math.log10(x)-1.2\n", + " return y\n", + "print \"We are required to find the roots of f(x) by the method of false position \"\n", + "print \"f(2)=−ve and f(3)=+ve so s root lie between 2 and 3 \"\n", + "print \"finding the roots by false position method \"\n", + "l = 2.\n", + "m = 3.\n", + "for i in range(1,4):\n", + " k = l-(m-l)*f(l)/(f(m)-f(l))\n", + " if(f(k)<0):\n", + " l = k\n", + " else:\n", + " m = k\n", + "print \"The root of the equation is : \",k" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 24.5, page no. 639" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the roots of f(x) = 3x−cos(x)−1 by newtons method \n", + "f(0)=−ve and f(1) is +ve so a root lies between 0 and 1 \n", + "Let us take x0 =0.6 as the root is closer to 1 \n", + "Root is given by r=x0−f(xn)/der(f(xn))\n", + "Approximated root in each steps are \n", + "0.607290551153\n", + "0.607096741973\n", + "0.607101775605\n" + ] + } + ], + "source": [ + "import math,numpy\n", + "from scipy.misc import derivative\n", + "\n", + "print \"To find the roots of f(x) = 3x−cos(x)−1 by newtons method \"\n", + "print \"f(0)=−ve and f(1) is +ve so a root lies between 0 and 1 \"\n", + "l = 0\n", + "m = 1\n", + "def f(x):\n", + " y = 3*x-math.cos(x)-1\n", + " return y\n", + "x0 = 0.6\n", + "print \"Let us take x0 =0.6 as the root is closer to 1 \"\n", + "print \"Root is given by r=x0−f(xn)/der(f(xn))\"\n", + "print \"Approximated root in each steps are \"\n", + "for i in range(1,4):\n", + " k = x0-f(x0)/derivative(f,x0)\n", + " print k\n", + " x0 = k" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 24.6, page no. 640" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find square root of 28 by newtons method let x=sqrt(28) ie xˆ2−28=0 \n", + "To find the roots by newtons method\n", + "f(5)=−ve and f(6) is +ve so a root lies between 5 and 6 \n", + "Let us take x0 = 5.5 \n", + "Root is given by rn=xn−f(xn)/der(f(xn))\n", + "Approximated root in each steps are\n", + "5.29545454545\n", + "5.29150409676\n", + "5.29150262213\n", + "5.29150262213\n" + ] + } + ], + "source": [ + "from scipy.misc import derivative\n", + "\n", + "print \"To find square root of 28 by newtons method let x=sqrt(28) ie xˆ2−28=0 \"\n", + "def f(x):\n", + " y = x**2-28\n", + " return y\n", + "print \"To find the roots by newtons method\"\n", + "print \"f(5)=−ve and f(6) is +ve so a root lies between 5 and 6 \"\n", + "l = 5\n", + "m = 6\n", + "print \"Let us take x0 = 5.5 \"\n", + "print \"Root is given by rn=xn−f(xn)/der(f(xn))\"\n", + "print \"Approximated root in each steps are\"\n", + "x0 = 5.5\n", + "for i in range(1,5):\n", + " k = x0-f(x0)/derivative(f,x0)\n", + " print k\n", + " x0 = k" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 24.7, page no. 641" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find square root of 28 by newtons method let x=sqrt(28) ie xˆ2−28=0 \n", + "To find the roots by newtons method\n", + "f(5)=−ve and f(6) is +ve so a root lies between 5 and 6 \n", + "Let us take x0 = 5.5 \n", + "Root is given by rn=xn−f(xn)/der(f(xn))\n", + "Approximated root in each steps are\n", + "5.29545454545\n", + "5.29150409676\n", + "5.29150262213\n", + "5.29150262213\n" + ] + } + ], + "source": [ + "from scipy.misc import derivative\n", + "\n", + "print \"To find square root of 28 by newtons method let x=sqrt(28) ie xˆ2−28=0 \"\n", + "def f(x):\n", + " y = x**2-28\n", + " return y\n", + "print \"To find the roots by newtons method\"\n", + "print \"f(5)=−ve and f(6) is +ve so a root lies between 5 and 6 \"\n", + "l = 5\n", + "m = 6\n", + "print \"Let us take x0 = 5.5 \"\n", + "print \"Root is given by rn=xn−f(xn)/der(f(xn))\"\n", + "print \"Approximated root in each steps are\"\n", + "x0 = 5.5\n", + "for i in range(1,5):\n", + " k = x0-f(x0)/derivative(f,x0)\n", + " print k\n", + " x0 = k" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter26_2.ipynb b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter26_2.ipynb new file mode 100644 index 00000000..dcac1bac --- /dev/null +++ b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter26_2.ipynb @@ -0,0 +1,522 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 26 : Difference Equations And Z Transform" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 26.2, page no. 667" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "yn= (-2)**n*b + 2**n*a\n", + "y(n+1)=yn1= (-2.0)**n*b + 2.0**n*a\n", + "y(n+2)=yn2= (-2.0)**n*b + 2.0**n*a\n", + "Eliminating a b from these equations we get :\n", + "The required difference equation : \n", + "16*yn0 - 4*yn2\n", + "=0\n" + ] + } + ], + "source": [ + "import sympy,numpy\n", + "\n", + "n = sympy.Symbol('n')\n", + "a = sympy.Symbol('a')\n", + "b = sympy.Symbol('b')\n", + "yn0 = sympy.Symbol('yn0')\n", + "yn1 = sympy.Symbol('yn1')\n", + "yn2 = sympy.Symbol('yn2')\n", + "yn = a*2**n+b*(-2)**n\n", + "print \"yn= \",yn\n", + "n = n+1\n", + "yn = yn.evalf()\n", + "print \"y(n+1)=yn1=\",yn\n", + "n = n+1\n", + "yn = yn.evalf()\n", + "print \"y(n+2)=yn2=\",yn\n", + "print \"Eliminating a b from these equations we get :\"\n", + "A = sympy.Matrix([[yn0,1,1],[yn1,2,-2],[yn2,4,4]])\n", + "y = A.det()\n", + "print \"The required difference equation : \"\n", + "print y\n", + "print \"=0\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 26.3, page no. 669" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cumulative function is given by Eˆ3−2∗Eˆ2−5∗E+6=0 \n", + "[-2. 3. 1.]\n", + "Therefor the complete solution is : \n", + "un= (-2.0)**(n + 2)*c1 + 1.0**(n + 2)*c3 + 3.0**(n + 2)*c2\n" + ] + } + ], + "source": [ + "import numpy,sympy\n", + "\n", + "c1 = sympy.Symbol('c1')\n", + "c2 = sympy.Symbol('c2')\n", + "c3 = sympy.Symbol('c3')\n", + "print \"Cumulative function is given by Eˆ3−2∗Eˆ2−5∗E+6=0 \"\n", + "E = numpy.poly([0])\n", + "f = E**3-2*E**2-5*E+6\n", + "r = numpy.roots([1,-2,-5,6])\n", + "print r\n", + "print \"Therefor the complete solution is : \"\n", + "un = c1*(r[0])**n+c2*(r[1])**n+c3*(r[2])**n\n", + "print \"un=\",un" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 26.4, page no. 670" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cumulative function is given by Eˆ2−2∗E+1=0 \n", + "[ 1. 1.]\n", + "Therefor the complete solution is : \n", + "un = 1.0**n*(c1 + c2*n)\n" + ] + } + ], + "source": [ + "import numpy,sympy\n", + "\n", + "c1 = sympy.Symbol('c1')\n", + "c2 = sympy.Symbol('c2')\n", + "c3 = sympy.Symbol('c3')\n", + "n = sympy.Symbol('n')\n", + "print \"Cumulative function is given by Eˆ2−2∗E+1=0 \"\n", + "E = numpy.poly([0])\n", + "f = E**2-2*E+1\n", + "r = numpy.roots([1,-2,1])\n", + "print r\n", + "print \"Therefor the complete solution is : \"\n", + "un = (c1+c2*n)*(r[0])**n\n", + "print \"un = \",un" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 26.6, page no. 671" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "For Fibonacci Series yn2=yn1+yn0 \n", + "So Cumulative function is given by Eˆ2−E−1=0 \n", + "[ 1.61803399 -0.61803399]\n", + "Therefor the complete solution is : \n", + "un = (-0.618033988749895)**n*c2 + 1.61803398874989**n*c1\n", + "Now puttting n=1, y=0 and n=2, y=1 we get \n", + "c1=(5−sqrt(5))/10 c2=(5+sqrt(5))/10 \n", + "(-0.618033988749895)**n*c2 + 1.61803398874989**n*c1\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "c1 = sympy.Symbol('c1')\n", + "c2 = sympy.Symbol('c2')\n", + "c3 = sympy.Symbol('c3')\n", + "n = sympy.Symbol('n')\n", + "print \"For Fibonacci Series yn2=yn1+yn0 \"\n", + "print \"So Cumulative function is given by Eˆ2−E−1=0 \"\n", + "E = numpy.poly([0])\n", + "f = E**2-E-1\n", + "r = numpy.roots([1,-1,-1])\n", + "print r\n", + "print \"Therefor the complete solution is : \"\n", + "un = (c1)*(r[0])**n+c2*(r[1])**n \n", + "print \"un = \",un\n", + "print \"Now puttting n=1, y=0 and n=2, y=1 we get \"\n", + "print \"c1=(5−sqrt(5))/10 c2=(5+sqrt(5))/10 \"\n", + "c1 =(5-math.sqrt(5))/10\n", + "c2 =(5+math.sqrt(5))/10\n", + "un = un.evalf()\n", + "print un" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 26.7, page no. 672" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cumulative function is given by Eˆ2−4∗E+3=0 \n", + "[ 3. 1.]\n", + "Therefor the complete solution is = cf+pi \n", + "cf = 1.0**n*c2 + 3.0**n*c1\n", + "PI=1/(Eˆ2−4E+3)[5ˆn]\n", + "put E=5\n", + "We get PI=5ˆn/8 \n", + "un = 1.0**n*c2 + 3.0**n*c1 + 5**n/8\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "c1 = sympy.Symbol('c1')\n", + "c2 = sympy.Symbol('c2')\n", + "c3 = sympy.Symbol('c3')\n", + "n = sympy.Symbol('n')\n", + "print \"Cumulative function is given by Eˆ2−4∗E+3=0 \"\n", + "E = numpy.poly([0])\n", + "f = E**2-4*E+3\n", + "r = numpy.roots([1,-4,3])\n", + "print r\n", + "print \"Therefor the complete solution is = cf+pi \"\n", + "cf = c1*(r[0])**n+c2*r[1]**n \n", + "print \"cf = \",cf\n", + "print \"PI=1/(Eˆ2−4E+3)[5ˆn]\"\n", + "print \"put E=5\"\n", + "print \"We get PI=5ˆn/8 \"\n", + "pi = 5**n/8\n", + "un = cf+pi\n", + "print \"un = \",un" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 26.8, page no. 672" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cumulative function is given by Eˆ2−4∗E+4=0 \n", + "[ 2. 2.]\n", + "Therefor the complete solution is = cf+pi\n", + "cf = 2.0**n*(c1 + c2*n)\n", + "PI=1/(Eˆ2−4E+4)[2ˆn]\n", + "We get PI=n∗(n−1)/2∗2ˆ(n−2)\n", + "un = 2**(n - 2)*n*(n - 1)/2 + 2.0**n*(c1 + c2*n)\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "c1 = sympy.Symbol('c1')\n", + "c2 = sympy.Symbol('c2')\n", + "c3 = sympy.Symbol('c3')\n", + "n = sympy.Symbol('n')\n", + "print \"Cumulative function is given by Eˆ2−4∗E+4=0 \"\n", + "E = numpy.poly([0])\n", + "f = E**2-4*E+4\n", + "r = numpy.roots([1,-4,4])\n", + "print r\n", + "print \"Therefor the complete solution is = cf+pi\" \n", + "cf = (c1+c2*n)*r[0]**n\n", + "print \"cf = \",cf\n", + "print \"PI=1/(Eˆ2−4E+4)[2ˆn]\"\n", + "print \"We get PI=n∗(n−1)/2∗2ˆ(n−2)\"\n", + "pi = n*(n-1)/math.factorial(2)*2**(n-2)\n", + "un = cf+pi\n", + "print \"un = \",un" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 26.10, page no. 674" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cumulative function is given by Eˆ2−4=0 \n", + "[-2. 2.]\n", + "Therefor the complete solution is = cf+pi \n", + "CF = (-2.0)**n*(c1 + c2*n)\n", + " PI=1/(Eˆ2−4)[nˆ2+n−1]\n", + "We get PI=−nˆ2/3−7/9∗n−17/27 \n", + "un = (-2.0)**n*(c1 + c2*n) - n**2/3\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "c1 = sympy.Symbol('c1')\n", + "c2 = sympy.Symbol('c2')\n", + "c3 = sympy.Symbol('c3')\n", + "n = sympy.Symbol('n')\n", + "print \"Cumulative function is given by Eˆ2−4=0 \"\n", + "E = numpy.poly([0])\n", + "f = E**2-4\n", + "r = numpy.roots([1,0,-4]) \n", + "print r\n", + "print \"Therefor the complete solution is = cf+pi \"\n", + "cf = (c1+c2*n)*r[0]**n\n", + "print \"CF = \",cf\n", + "print \" PI=1/(Eˆ2−4)[nˆ2+n−1]\"\n", + "print \"We get PI=−nˆ2/3−7/9∗n−17/27 \"\n", + "pi = -n**2/3-7/9*n-17/27\n", + "un = cf+pi \n", + "print \"un = \",un" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 26.11,page no. 674" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cumulative function is given by Eˆ2−2∗E+1=0 \n", + "[-2.41421356 0.41421356]\n", + "Therefor the complete solution is = cf+pi\n", + "CF = (-2.41421356237309)**n*(c1 + c2*n)\n", + "PI=1/(E−1)ˆ2[nˆ2∗2ˆn]\n", + "We get PI=2ˆn∗(nˆ2−8∗n+20)\n", + "un = (-2.41421356237309)**n*(c1 + c2*n) + 2**n*(n**2 - 8*n + 20)\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "c1 = sympy.Symbol('c1')\n", + "c2 = sympy.Symbol('c2')\n", + "c3 = sympy.Symbol('c3')\n", + "n = sympy.Symbol('n')\n", + "print \"Cumulative function is given by Eˆ2−2∗E+1=0 \"\n", + "E = numpy.poly([0])\n", + "f = E**2+2*E-1\n", + "r = numpy.roots([1,2,-1])\n", + "print r\n", + "print \"Therefor the complete solution is = cf+pi\"\n", + "cf = (c1+c2*n)*r[0]**n\n", + "print \"CF = \",cf\n", + "print \"PI=1/(E−1)ˆ2[nˆ2∗2ˆn]\"\n", + "print \"We get PI=2ˆn∗(nˆ2−8∗n+20)\"\n", + "pi = 2**n*(n**2-8*n+20)\n", + "un = cf+pi\n", + "print \"un = \",un" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 26.12, page no. 676" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Simplified equations are : \n", + "(E−3) ux+vx=x..... (i) 3ux+(E−5)∗vx=4ˆx......(ii)\n", + "Simplifying we get (Eˆ2−8E+12) ux=1−4x−4ˆx \n", + "Cumulative function is given by Eˆ2−8∗E+12=0 \n", + "[ 6. 2.]\n", + "Therefor the complete solution is = cf+pi\n", + "CF = 2.0**x*c2 + 6.0**x*c1\n", + "Solving for PI \n", + "We get PI= \n", + "ux = 2.0**x*c2 + 4**x/4 + 6.0**x*c1 - x\n", + "Putting in (i) we get vx= \n", + "2**x*c1 - 4**x/4 - 3*6**x*c2 - 1\n" + ] + } + ], + "source": [ + "import numpy,sympy\n", + "\n", + "print \"Simplified equations are : \"\n", + "print \"(E−3) ux+vx=x..... (i) 3ux+(E−5)∗vx=4ˆx......(ii)\"\n", + "print \"Simplifying we get (Eˆ2−8E+12) ux=1−4x−4ˆx \"\n", + "c1 = sympy.Symbol('c1')\n", + "c2 = sympy.Symbol('c2')\n", + "c3 = sympy.Symbol('c3')\n", + "x = sympy.Symbol('x')\n", + "print \"Cumulative function is given by Eˆ2−8∗E+12=0 \"\n", + "E = numpy.poly([0])\n", + "f = E**2-8*E+12\n", + "r = numpy.roots([1,-8,12])\n", + "print r\n", + "print \"Therefor the complete solution is = cf+pi\"\n", + "cf = c1*r[0]**x+c2*r[1]**x\n", + "print \"CF = \",cf\n", + "print \"Solving for PI \"\n", + "print \"We get PI= \"\n", + "pi = -4/5*x-19/25+4**x/4\n", + "ux = cf+pi \n", + "print \"ux = \",ux\n", + "print \"Putting in (i) we get vx= \"\n", + "vx = c1*2**x-3*c2*6**x-3/5*x-34/25-4**x/4\n", + "print vx" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 26.16, page no. 682" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "u2 = 2\n", + "u3 = 13\n" + ] + } + ], + "source": [ + "import numpy,sympy\n", + "\n", + "z = sympy.Symbol('z')\n", + "f = (2/z**2+5/z+14)/(1/z-1)**4\n", + "u0 = sympy.limit(f,z,0)\n", + "u1 = sympy.limit(1/z*(f- u0),z,0)\n", + "u2 = sympy.limit(1/z**2*(f-u0-u1*z),z,0)\n", + "print \"u2 = \",u2\n", + "u3 = sympy.limit(1/z**3*(f-u0-u1*z-u2*z**2),z,0)\n", + "print \"u3 = \",u3" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter27_2.ipynb b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter27_2.ipynb new file mode 100644 index 00000000..6b7c3c32 --- /dev/null +++ b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter27_2.ipynb @@ -0,0 +1,1084 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 27 : Numerical Solution Of Ordinary Differential Equations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 27.1, page no. 686" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution through picards method \n", + "The no of iterations required3\n", + "y(0)=1 and y(x)=x+y \n", + "Y = x**4/24 + x**3/3 + x**2 + x + 1\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "x = sympy.Symbol('x')\n", + "print \"Solution through picards method \"\n", + "n = int(raw_input(\"The no of iterations required\")) \n", + "print \"y(0)=1 and y(x)=x+y \"\n", + "yo = 1\n", + "yn = 1\n", + "for i in range(1,n+1):\n", + " yn = yo+sympy.integrate(yn+x,(x,0,x))\n", + "print \"Y = \",yn" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 27.2, page no. 687" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution through picards method \n", + "The no of iterations required : 2\n", + "y(0)=1 and y(x)=x+y \n", + "Y = -Integral(2*x/(2*log(x + 1) + 1), x) + Integral(2*x/(2*log(x + 1) + 1), (x, 0)) - Integral(-2*log(x + 1)/(2*log(x + 1) + 1), x) + Integral(-2*log(x + 1)/(2*log(x + 1) + 1), (x, 0)) - Integral(-1/(2*log(x + 1) + 1), x) + Integral(-1/(2*log(x + 1) + 1), (x, 0)) + 1.0\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "x = sympy.Symbol('x')\n", + "print \"Solution through picards method \"\n", + "n = int(raw_input(\"The no of iterations required : \")) \n", + "print \"y(0)=1 and y(x)=x+y \"\n", + "yo = 1\n", + "y = 1\n", + "for i in range(1,n+1):\n", + " f = (y-x)/(y+x) \n", + " y = yo+sympy.integrate(f,(x,0,x))\n", + "x = 0.1\n", + "print \"Y = \",y.evalf()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 27.5, page no. 690" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution using Eulers Method \n", + "0.3\n", + "1.362\n", + "Input the number of iteration :− 4\n", + "The value of y is :− 1.5282\n" + ] + } + ], + "source": [ + "print \"Solution using Eulers Method \"\n", + "print x\n", + "print y\n", + "n = int(raw_input(\"Input the number of iteration :− \"))\n", + "x = 0\n", + "y = 1\n", + "for i in range(1,n+1):\n", + " y1 = x+y\n", + " y = y+0.1*y1\n", + " x = x+0.1\n", + "print \"The value of y is :− \",y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 27.6, page no. 691" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution using Eulers Method \n", + "0.4\n", + "1.5282\n", + "Input the number of iteration :− 2\n", + "1.02\n", + "1.03642857143\n", + "The value of y is :− 1.03642857143\n" + ] + } + ], + "source": [ + "print \"Solution using Eulers Method \"\n", + "print x\n", + "print y\n", + "n = int(raw_input(\"Input the number of iteration :− \"))\n", + "x = 0\n", + "y = 1\n", + "for i in range(1,n+1):\n", + " y1 = (y-x)/(y+x)\n", + " y = y+0.02*y1\n", + " x = x+0.1\n", + " print y\n", + "print \"The value of y is :− \",y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 27.7, page no. 692" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution using Eulers Method \n", + "0.2\n", + "1.03642857143\n", + "Input the number of iteration :− 3\n", + "1.1\n", + "1.11\n", + "1.1105\n", + "1.110525\n", + "−−−−−−−−−−−−−−−−−−−−−−− \n", + "1.2315775\n", + "1.2315775\n", + "1.242630125\n", + "1.24318275625\n", + "1.24321038781\n", + "−−−−−−−−−−−−−−−−−−−−−−− \n", + "1.38753142659\n", + "1.38753142659\n", + "1.39974747853\n", + "1.40035828113\n", + "1.40038882126\n", + "−−−−−−−−−−−−−−−−−−−−−−− \n", + "1.57042770339\n", + "The value of y is :− 1.40038882126\n" + ] + } + ], + "source": [ + "print \"Solution using Eulers Method \"\n", + "print x\n", + "print y\n", + "n = int(raw_input(\"Input the number of iteration :− \"))\n", + "x = 0.1\n", + "m = 1\n", + "y = 1\n", + "yn = 1\n", + "y1 = 1\n", + "k = 1\n", + "for i in range(1,n+1):\n", + " yn = y \n", + " for i in range(1,5):\n", + " m = (k+y1)/2\n", + " yn = y+0.1*m\n", + " y1 = (yn+x)\n", + " print yn\n", + " print \"−−−−−−−−−−−−−−−−−−−−−−− \"\n", + " y = yn \n", + " m = y1\n", + " yn = yn+0.1*m \n", + " print yn\n", + " x = x+0.1\n", + " yn = y \n", + " k = m\n", + "print \"The value of y is :− \",y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 27.8, page no. 694" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution using Eulers Method \n", + "0.2\n", + "2\n", + "Input the number of iteration :− 3\n", + "2.06020299957\n", + "2.06551474469\n", + "2.06561668931\n", + "2.06561864352\n", + "−−−−−−−−−−−−−−−−−−−−−−−\n", + "2.13665600548\n", + "2.13665600548\n", + "2.14156348217\n", + "2.14164742068\n", + "2.14164885497\n", + "−−−−−−−−−−−−−−−−−−−−−−−\n", + "2.22267196493\n", + "2.22267196493\n", + "2.22722645093\n", + "2.22729646948\n", + "2.22729754504\n", + "−−−−−−−−−−−−−−−−−−−−−−−\n", + "2.31757184825\n", + "The value of y is :− 2.22729754504\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "print \"Solution using Eulers Method \"\n", + "print x\n", + "print y\n", + "n = int(raw_input(\"Input the number of iteration :− \"))\n", + "x = 0.2\n", + "m = 0.301\n", + "y = 2\n", + "yn = 2\n", + "y1 = math.log10(2)\n", + "k = 0.301\n", + "for i in range(1,n+1):\n", + " yn = y\n", + " for i in range(1,5):\n", + " m = (k+y1)/2\n", + " yn = y+0.2*m\n", + " y1 = math.log10(yn+x)\n", + " print yn\n", + " print \"−−−−−−−−−−−−−−−−−−−−−−−\"\n", + " y = yn\n", + " m = y1\n", + " yn = yn+0.2*m \n", + " print yn\n", + " x = x+0.2\n", + " yn = y\n", + " k = m\n", + "print \"The value of y is :− \",y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 27.9, page no. 696" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution using Eulers Method \n", + "0.8\n", + "2.22729754504\n", + "Input the number of iteration :− 2\n", + "1.2\n", + "1.2295445115\n", + "1.23088482816\n", + "1.23094524903\n", + "−−−−−−−−−−−−−−−−−−−−−−− \n", + "1.49284119302\n", + "1.49284119302\n", + "1.52407510156\n", + "1.52534665765\n", + "1.52539814634\n", + "−−−−−−−−−−−−−−−−−−−−−−− \n", + "1.85241216588\n", + "The value of y is :− 1.52539814634\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "print \"Solution using Eulers Method \"\n", + "print x\n", + "print y\n", + "n = int(raw_input(\"Input the number of iteration :− \"))\n", + "x = 0.2 \n", + "m = 1\n", + "y = 1\n", + "yn = 1\n", + "y1 = 1\n", + "k = 1\n", + "for i in range(1,n+1):\n", + " yn = y\n", + " for i in range(1,5):\n", + " m = (k+y1)/2\n", + " yn = y+0.2*m \n", + " y1 = math.sqrt(yn)+x\n", + " print yn\n", + " print \"−−−−−−−−−−−−−−−−−−−−−−− \"\n", + " y = yn\n", + " m = y1\n", + " yn = yn+0.2*m\n", + " print yn\n", + " x = x+0.2\n", + " yn = y\n", + " k = m\n", + "print \"The value of y is :− \",y" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 27.10, page no. 697" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Runges method\n", + "The required approximate value is :− \n", + "1.0\n" + ] + } + ], + "source": [ + "print \"Runges method\"\n", + "def f(x,y):\n", + " y = x+y\n", + " return y\n", + "x = 0\n", + "y = 1\n", + "h = 0.2\n", + "k1 = h*f(x,y)\n", + "k2 = h*f(x+1/2*h,y+1/2*k1)\n", + "kk = h*f(x+h,y+k1)\n", + "k3 = h*f(x+h,y+kk)\n", + "k = 1/6*(k1+4*k2+k3)\n", + "print \"The required approximate value is :− \"\n", + "y = y+k\n", + "print y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 27.11, page no. 697" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Runges method\n", + "The required approximate value is :− \n", + "1.0\n" + ] + } + ], + "source": [ + "print \"Runges method\"\n", + "def f(x,y):\n", + " y = x+y\n", + " return y\n", + "x = 0\n", + "y = 1\n", + "h = 0.2\n", + "k1 = h*f(x,y)\n", + "k2 = h*f(x+1/2*h,y+1/2*k1)\n", + "k3 = h*f(x+1/2*h,y+1/2*k2)\n", + "k4 = h*f(x+h,y+k3)\n", + "k = 1/6*(k1+2*k2+2*k3+k4)\n", + "print \"The required approximate value is :− \"\n", + "y = y+k\n", + "print y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 27.12, page no. 698" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Runga kutta method\n", + "The required approximate value is :− \n", + "1.0\n", + "To find y(0.4) put x=0.2 y=above value ie 1.196 h=0.2 \n", + "The required approximate value is :− \n", + "1.0\n" + ] + } + ], + "source": [ + "print \"Runga kutta method\"\n", + "def f(x,y):\n", + " y = (y**2-x**2)/(x**2+y**2)\n", + " return y\n", + "x = 0\n", + "y = 1\n", + "h = 0.2\n", + "k1 = h*f(x,y)\n", + "k2 = h*f(x+1/2*h,y+1/2*k1)\n", + "k3 = h*f(x+1/2*h,y+1/2*k2)\n", + "k4 = h*f(x+h,y+k3)\n", + "k = 1/6*(k1+2*k2+2*k3+k4)\n", + "print \"The required approximate value is :− \"\n", + "y = y+k\n", + "print y\n", + "print \"To find y(0.4) put x=0.2 y=above value ie 1.196 h=0.2 \"\n", + "x = 0.2\n", + "h = 0.2\n", + "k1 = h*f(x,y)\n", + "k2 = h*f(x+1/2*h,y+1/2*k1)\n", + "k3 = h*f(x+1/2*h,y+1/2*k2)\n", + "k4 = h*f(x+h,y+k3)\n", + "k = 1/6*(k1+2*k2+2*k3+k4)\n", + "print \"The required approximate value is :− \"\n", + "y = y+k\n", + "print y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 27.13, page no. 699" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Runga kutta method\n", + "The required approximate value is :− \n", + "1.0\n", + "To find y(0.4) put x=0.2 y=above value ie 1.196 h=0.2 \n", + "The required approximate value is :− \n", + "1.0\n" + ] + } + ], + "source": [ + "print \"Runga kutta method\"\n", + "def f(x,y):\n", + " yy = x+y**2\n", + " return yy\n", + "x = 0\n", + "y = 1\n", + "h = 0.1\n", + "k1 = h*f(x,y)\n", + "k2 = h*f(x+1/2*h,y+1/2*k1)\n", + "k3 = h*f(x+1/2*h,y+1/2*k2) \n", + "k4 = h*f(x+h,y+k3)\n", + "k = 1/6*(k1+2*k2+2*k3+k4)\n", + "print \"The required approximate value is :− \"\n", + "y = y+k\n", + "print y\n", + "print \"To find y(0.4) put x=0.2 y=above value ie 1.196 h=0.2 \"\n", + "x = 0.1\n", + "h = 0.1\n", + "k1 = h*f(x,y)\n", + "k2 = h*f(x+1/2*h,y+1/2*k1)\n", + "k3 = h*f(x+1/2*h,y+1/2*k2)\n", + "k4 = h*f(x+h,y+k3)\n", + "k = 1/6*(k1+2*k2+2*k3+k4)\n", + "print \"The required approximate value is :− \"\n", + "y = y+k\n", + "print y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 27.14, page no. 700" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "y1= x**2/2\n", + "y2= -x**5/20 + x**2/2\n", + "y3= -x**5/20 + x**2/2\n", + "Determining the initial values for milnes method using y3 \n", + "x=0.0 y0=0.0 f0=0 \n", + "x=0.2 y1= x**2/2\n", + "f1= -x**4/4 + 0.2\n", + "x=0.4 y2= -x**5/20 + x**2/2\n", + "f2= -(-x**5/20 + x**2/2)**2 + 0.4\n", + "x=0.6 y3= -x**5/20 + x**2/2\n", + "f3= -(-x**5/20 + x**2/2)**2 + 0.6\n", + "Using predictor method to find y4\n", + "y4= -0.1*x**4 - 0.2*(-x**5/20 + x**2/2)**2 + 0.24\n", + "f4= -(-x**5/20 + x**2/2)**2 + 0.8\n", + "Using predictor method to find y5 \n", + "[-1.53353211362738, 2.59188514369719, -1.51825864909117 - 1.96576535664013*I, -1.51825864909117 + 1.96576535664013*I, -0.611593620665791 - 2.14551655586226*I, -0.611593620665791 + 2.14551655586226*I, 0.00495892544779777 - 0.780181689871346*I, 0.00495892544779777 + 0.780181689871346*I, 1.59571682927425 - 0.8271211188914*I, 1.59571682927425 + 0.8271211188914*I]\n", + "f5 = [-1.28459666867223, 2.38248090853886, -1.33416685318757 - 1.68618279990398*I, -1.33416685318757 + 1.68618279990398*I, -1.00716479884721 - 2.10036734766602*I, -1.00716479884721 + 2.10036734766602*I, 0.142926398918135 - 1.33989714259572*I, 0.142926398918135 + 1.33989714259572*I, 1.64946313318333 - 0.385565643189579*I, 1.64946313318333 + 0.385565643189579*I]\n", + "Hence y(1)= [-1.53353211362738, 2.59188514369719, -1.51825864909117 - 1.96576535664013*I, -1.51825864909117 + 1.96576535664013*I, -0.611593620665791 - 2.14551655586226*I, -0.611593620665791 + 2.14551655586226*I, 0.00495892544779777 - 0.780181689871346*I, 0.00495892544779777 + 0.780181689871346*I, 1.59571682927425 - 0.8271211188914*I, 1.59571682927425 + 0.8271211188914*I]\n" + ] + } + ], + "source": [ + "import sympy\n", + "\n", + "x = sympy.Symbol('x')\n", + "yo = 0\n", + "y = 0\n", + "h = 0.2\n", + "f = x-y**2\n", + "y = sympy.integrate(f,(x,0,x))\n", + "y1 = yo+y\n", + "print \"y1= \",y1\n", + "f = x-y**2\n", + "y = sympy.integrate(f,(x,0,x))\n", + "y2 = yo+y\n", + "print \"y2= \",y2\n", + "y = x-y**2\n", + "y = sympy.integrate(f,(x,0,x))\n", + "y3 = yo+y\n", + "print \"y3= \",y3\n", + "print \"Determining the initial values for milnes method using y3 \"\n", + "print \"x=0.0 y0=0.0 f0=0 \"\n", + "print \"x=0.2 y1= \",\n", + "x = 0.2\n", + "print y1\n", + "#y1 = sympy.solve(y1)\n", + "print \"f1=\",\n", + "f1 = x-y1**2\n", + "print f1\n", + "print \"x=0.4 y2= \",\n", + "x = 0.4\n", + "print y2\n", + "print \"f2= \",\n", + "f2 = x-y2**2\n", + "print f2\n", + "print \"x=0.6 y3= \",\n", + "x = 0.6\n", + "print y3\n", + "print \"f3=\",\n", + "f3 = x-y3**2\n", + "print f3\n", + "print \"Using predictor method to find y4\"\n", + "x = 0.8\n", + "y4 = yo+4/3*h*(2*f1-f2+2*f3)\n", + "print \"y4=\",y4\n", + "f4 = x-y**2\n", + "print \"f4= \",f4\n", + "print \"Using predictor method to find y5 \"\n", + "x = 1.0\n", + "y5 = sympy.solve(y1+4/3*h*(2*f2-f3+2*f4))\n", + "print y5\n", + "f5 = sympy.solve(x-y**2)\n", + "print \"f5 =\",f5\n", + "print \"Hence y(1)= \",y5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 27.15, page no. 704" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Runga kutta method\n", + "The required approximate value is :− \n", + "1.0\n", + "To find y(0.4) put x=0.2 y=above value ie 1.196 h=0.2 \n", + "The required approximate value is :− \n", + "1.0\n", + "To find y(0.4) put x=0.2 y=above value ie 1.196 h=0.2 \n", + "The required approximate value is :− \n", + "1.0\n", + "y0 y1 y2 y3 are respectively: \n", + "1.0 1.0 1.0 1\n", + "f0 f1 f2 f3 are respectively: \n", + "1.3 1.2 1.1 1\n", + "finding y4 using predictors milne method x=0.4\n", + "y4 = 1.48\n", + "f4 = 2.7824\n", + "Using corrector method : \n", + "y4 = -0.0333333333333333*(-x**5/20 + x**2/2)**2 + 1.24\n", + "f4 = -0.0133333333333333*(-x**5/20 + x**2/2)**2 + (-0.0333333333333333*(-x**5/20 + x**2/2)**2 + 1.24)**2 + 0.496\n" + ] + } + ], + "source": [ + "print \"Runga kutta method\"\n", + "def f(x,y):\n", + " yy = x*y+y**2\n", + " return yy\n", + "y0 = 1\n", + "x = 0\n", + "y = 1\n", + "h = 0.1\n", + "k1 = h*f(x,y)\n", + "k2 = h*f(x+1/2*h,y+1/2*k1)\n", + "k3 = h*f(x+1/2*h,y+1/2*k2)\n", + "k4 = h*f(x+h,y+k3)\n", + "ka = 1/6*(k1+2*k2+2*k3+k4)\n", + "print \"The required approximate value is :− \"\n", + "y1 = y+ka \n", + "y = y+ka \n", + "print y\n", + "print \"To find y(0.4) put x=0.2 y=above value ie 1.196 h=0.2 \"\n", + "x = 0.1\n", + "h = 0.1\n", + "k1 = h*f(x,y)\n", + "k2 = h*f(x+1/2*h,y+1/2*k1)\n", + "k3 = h*f(x+1/2*h,y+1/2*k2)\n", + "k4 = h*f(x+h,y+k3)\n", + "kb = 1/6*(k1+2*k2+2*k3+k4)\n", + "print \"The required approximate value is :− \"\n", + "y2 = y+kb \n", + "y = y+kb\n", + "print y\n", + "print \"To find y(0.4) put x=0.2 y=above value ie 1.196 h=0.2 \"\n", + "x = 0.2\n", + "h = 0.1\n", + "k1 = h*f(x,y)\n", + "k2 = h*f(x+1/2*h,y+1/2*k1)\n", + "k3 = h*f(x+1/2*h,y+1/2*k2)\n", + "k4 = h*f(x+h,y+k3)\n", + "kc = 1/6*(k1+2*k2+2*k3+k4)\n", + "print \"The required approximate value is :− \"\n", + "y3 = y+kc\n", + "y = y+kc \n", + "print y\n", + "f0 = f(0,y0)\n", + "f1 = f(0.1,y1)\n", + "f2 = f(0.2,y2)\n", + "f3 = f(0.3,y3)\n", + "print \"y0 y1 y2 y3 are respectively: \"\n", + "print y3,y2,y1,y0\n", + "print \"f0 f1 f2 f3 are respectively: \"\n", + "print f3,f2,f1,f0\n", + "print \"finding y4 using predictors milne method x=0.4\"\n", + "h = 0.1\n", + "y4 = y0+4*h/3*(2*f1-f2+2*f3)\n", + "print \"y4 = \",y4\n", + "print \"f4 = \",f(0.4,y4)\n", + "print \"Using corrector method : \"\n", + "y4 = y2+h/3*(f2+4*f3+f4) \n", + "print \"y4 = \",y4\n", + "print \"f4 = \",f(0.4,y4) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 27.16, page no. 705" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using predictor method \n", + "y11 = 2.57229741667\n", + "Using corrector method \n", + "y11 = 2.57494727679\n", + "f11 = 7.00689666251\n" + ] + } + ], + "source": [ + "def f(x,y):\n", + " yy = x**2*(1+y)\n", + " return yy\n", + "y3 = 1\n", + "y2 = 1.233\n", + "y1 = 1.548\n", + "y0 = 1.979\n", + "f3 = f(1,y3)\n", + "f2 = f(1.1,y2)\n", + "f1 = f(1.2,y1)\n", + "f0 = f(1.3,y0)\n", + "print \"Using predictor method \"\n", + "h = 0.1\n", + "y11 = y0+h/24*(55*f0-59*f1+37*f2-9*f3)\n", + "print \"y11 = \",y11\n", + "x = 1.4\n", + "f11 = f(1.4,y11)\n", + "print \"Using corrector method \"\n", + "y11 = y0+h/24*(9*f11+19*f0-5*f1+f2)\n", + "print \"y11 = \",y11\n", + "f11 = f(1.4,y11)\n", + "print \"f11 = \",f11" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 27.17, page no. 706" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Runga kutta method\n", + "The required approximate value is :− \n", + "1.0\n", + "To find y(0.4) put x=0.2 y=above value ie 1.196 h=0.2 \n", + "The required approximate value is :− \n", + "1.0\n", + "To find y(0.4) put x=0.2 y=above value ie 1.196 h=0.2 \n", + "The required approximate value is :− \n", + "1.0\n", + "y0 y1 y2 y3 are respectively :\n", + "1.0 1.0 1.0 1\n", + "f0 f1 f2 f3 are respectively :\n", + "-0.7 -0.8 -0.9 -1\n", + "Using adams method \n", + "Using the predictor\n", + "y4 = 0.935\n", + "Using corrector method \n", + "y4 = 0.9397165625\n", + "f4 = -0.483067217837\n" + ] + } + ], + "source": [ + "print \"Runga kutta method\"\n", + "def f(x,y):\n", + " yy = x-y**2\n", + " return yy\n", + "y0 = 1\n", + "x = 0\n", + "y = 1\n", + "h = 0.1\n", + "k1 = h*f(x,y)\n", + "k2 = h*f(x+1/2*h,y+1/2*k1)\n", + "k3 = h*f(x+1/2*h,y+1/2*k2)\n", + "k4 = h*f(x+h,y+k3)\n", + "ka = 1/6*(k1+2*k2+2*k3+k4) \n", + "print \"The required approximate value is :− \"\n", + "y1 = y+ka\n", + "y = y+ka\n", + "print y\n", + "print \"To find y(0.4) put x=0.2 y=above value ie 1.196 h=0.2 \"\n", + "x = 0.1\n", + "h = 0.1\n", + "k1 = h*f(x,y)\n", + "k2 = h*f(x+1/2*h,y+1/2*k1)\n", + "k3 = h*f(x+1/2*h,y+1/2*k2)\n", + "k4 = h*f(x+h,y+k3)\n", + "kb = 1/6*(k1+2*k2+2*k3+k4)\n", + "print \"The required approximate value is :− \"\n", + "y2 = y+kb\n", + "y = y+kb\n", + "print y\n", + "print \"To find y(0.4) put x=0.2 y=above value ie 1.196 h=0.2 \"\n", + "x = 0.2\n", + "h = 0.1\n", + "k1 = h*f(x,y)\n", + "k2 = h*f(x+1/2*h,y+1/2*k1)\n", + "k3 = h*f(x+1/2*h,y+1/2*k2)\n", + "k4 = h*f(x+h,y+k3)\n", + "kc = 1/6*(k1+2*k2+2*k3+k4) \n", + "print \"The required approximate value is :− \"\n", + "y3 = y+kc\n", + "y = y+kc\n", + "print y\n", + "f0 = f(0,y0)\n", + "f1 = f(0.1,y1)\n", + "f2 = f(0.2,y2)\n", + "f3 = f(0.3,y3) \n", + "print \"y0 y1 y2 y3 are respectively :\"\n", + "print y3,y2,y1,y0\n", + "print \"f0 f1 f2 f3 are respectively :\"\n", + "print f3,f2,f1,f0\n", + "print \"Using adams method \"\n", + "print \"Using the predictor\"\n", + "h = 0.1\n", + "y4 = y3+h/24*(55*f3-59*f2+37*f1-9*f0)\n", + "x = 0.4\n", + "f4 = f(0.4,y4)\n", + "print \"y4 = \",y4\n", + "print \"Using corrector method \"\n", + "y4 = y3+h/24*(9*f4+19*f3-5*f2+f1) \n", + "print \"y4 = \",y4\n", + "f4 = f(0.4,y4)\n", + "print \"f4 = \",f4" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 27.18, page no. 708" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Picards method\n", + "First approximation\n", + "y1 = x**2/2 + x + 2\n", + "z1 = x**2/2 - 4*x + 1\n", + "Second approximation\n", + "y2 = x**3/6 - 3*x**2/2 + x + 2\n", + "z2 = -x**5/20 - x**4/4 - x**3 - 3*x**2/2 - 4*x + 1\n", + "Third approximation\n", + "y3 = -x**6/120 - x**5/20 - x**4/4 - x**3/2 - 3*x**2/2 + x + 2\n", + "z3 = -x**7/252 + x**6/12 - 31*x**5/60 + 7*x**4/12 + 5*x**3/3 - 3*x**2/2 - 4*x + 1\n", + "y(0.1) = -0.00833333333333333*x**6 - 0.05*x**5 - 0.25*x**4 - 0.5*x**3 - 1.5*x**2 + x + 2.0\n", + "z(0.1) = -0.00396825396825397*x**7 + 0.0833333333333333*x**6 - 0.516666666666667*x**5 + 0.583333333333333*x**4 + 1.66666666666667*x**3 - 1.5*x**2 - 4.0*x + 1.0\n" + ] + } + ], + "source": [ + "import sympy\n", + "\n", + "print \"Picards method\"\n", + "x0 = 0\n", + "y0 = 2\n", + "z0 = 1\n", + "x = sympy.Symbol('x')\n", + "def f(x,y,z):\n", + " yy = x+z\n", + " return yy\n", + "def g(x,y,z):\n", + " yy = x-y**2\n", + " return yy\n", + "print \"First approximation\"\n", + "y1 = y0+sympy.integrate(f(x,y0,z0),(x,x0,x))\n", + "print \"y1 = \",y1\n", + "z1 = z0+sympy.integrate(g(x,y0,z0),(x,x0,x))\n", + "print \"z1 = \",z1\n", + "print \"Second approximation\"\n", + "y2 = y0+sympy.integrate(f(x,y1,z1),(x,x0,x))\n", + "print \"y2 = \",y2\n", + "z2 = z0+sympy.integrate(g(x,y1,z1),(x,x0,x))\n", + "print \"z2 = \",z2\n", + "print \"Third approximation\"\n", + "y3 = y0+sympy.integrate(f(x,y2,z2),(x,x0,x))\n", + "print \"y3 = \",y3\n", + "z3 = z0+sympy.integrate(g(x,y2,z2),(x,x0,x))\n", + "print \"z3 = \",z3\n", + "x = 0.1\n", + "print \"y(0.1) = \",y3.evalf()\n", + "print \"z(0.1) = \",z3.evalf()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 27.19, page no. 710" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using k1 k2.. for f and l1 l2... for g runga kutta formula becomes \n", + "y = 1.0\n", + "y1 = 0.0\n" + ] + } + ], + "source": [ + "import sympy\n", + "\n", + "x = sympy.Symbol('x')\n", + "def f(x,y,z):\n", + " yy = z \n", + " return yy\n", + "def g(x,y,z):\n", + " yy = x*y**2-y**2\n", + " return yy\n", + "x0 = 0\n", + "y0 = 1\n", + "z0 = 0\n", + "h = 0.2\n", + "print \"Using k1 k2.. for f and l1 l2... for g runga kutta formula becomes \"\n", + "h = 0.2\n", + "k1 = h*f(x0,y0,z0)\n", + "l1 = h*g(x0,y0,z0)\n", + "k2 = h*f(x0+1/2*h,y0+1/2*k1,z0+1/2*l1)\n", + "l2 = h*g(x0+1/2*h,y0+1/2*k1,z0+1/2*l1)\n", + "k3 = h*f(x0+1/2*h,y0+1/2*k2,z0+1/2*l2)\n", + "l3 = h*g(x0+1/2*h,y0+1/2*k2,z0+1/2*l2)\n", + "k4 = h*f(x0+h,y0+k3,z0+l3)\n", + "l4 = h*g(x0+h,y0+k3,z0+l3)\n", + "k = 1/6*(k1+2*k2+2*k3+k4)\n", + "l = 1/6*(l1+2*l2+2*l3+2*l4)\n", + "x = 0.2\n", + "y = y0+k\n", + "y1 = z0+l\n", + "print \"y = \",y\n", + "print \"y1 = \",y1" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11+" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter28_2.ipynb b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter28_2.ipynb new file mode 100644 index 00000000..69d141e8 --- /dev/null +++ b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter28_2.ipynb @@ -0,0 +1,437 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 28: Numerical Solution Of Partial Differential Equations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 28.1, page no. 725" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "D=Bˆ2−4AC\n", + "if D<0 then elliptic if D=0 then parabolic if D>0 then hyperboic\n", + "(i) A=xˆ2, B1−yˆ2 D=4ˆ2−4∗1∗4=0 so the equation is PARABOLIC \n", + "(ii) D=4xˆ2(yˆ2−1)\n", + "for −inf<x<inf and −1<y<1 D<0 \n", + "So the equation is ELLIPTIC \n", + "(iii) A=1+xˆ2, B=5+2xˆ2, C=4+xˆ2\n", + "D=9>0\n", + "So the equation is HYPERBOLIC \n" + ] + } + ], + "source": [ + "print \"D=Bˆ2−4AC\"\n", + "print \"if D<0 then elliptic if D=0 then parabolic if D>0 then hyperboic\"\n", + "print \"(i) A=xˆ2, B1−yˆ2 D=4ˆ2−4∗1∗4=0 so the equation is PARABOLIC \"\n", + "print \"(ii) D=4xˆ2(yˆ2−1)\"\n", + "print \"for −inf<x<inf and −1<y<1 D<0 \"\n", + "print \"So the equation is ELLIPTIC \"\n", + "print \"(iii) A=1+xˆ2, B=5+2xˆ2, C=4+xˆ2\"\n", + "print \"D=9>0\"\n", + "print \"So the equation is HYPERBOLIC \"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 28.2, page no. 726" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "See figure in question\n", + "From symmetry u7=u1, u8=u2, u9=u3, u3=u1, u6=u4, u9=u7\n", + "u5=1/4∗(2000+2000+1000+1000)=1500\n", + "u1=1/4(0=1500+1000+2000)=1125\n", + "u2=1/4∗(1125+1125+1000+1500)=1188\n", + "u4=1/4(2000+1500+1125+1125)=1438\n", + "1125 1188 1438 1500\n", + "Iterations :\n", + "\n", + "1301 1414 1164 1031\n", + "\n", + "1250 1337 1087 1019\n", + "\n", + "1199 1312 1062 981\n", + "\n", + "1174 1287 1037 968\n", + "\n", + "1155 1274 1024 956\n", + "\n", + "1144 1265 1015 949\n" + ] + } + ], + "source": [ + "print \"See figure in question\"\n", + "print \"From symmetry u7=u1, u8=u2, u9=u3, u3=u1, u6=u4, u9=u7\"\n", + "print \"u5=1/4∗(2000+2000+1000+1000)=1500\"\n", + "u5 = 1500\n", + "print \"u1=1/4(0=1500+1000+2000)=1125\"\n", + "u1 = 1125\n", + "print \"u2=1/4∗(1125+1125+1000+1500)=1188\"\n", + "u2 = 1188\n", + "print \"u4=1/4(2000+1500+1125+1125)=1438\"\n", + "u4 = 1438\n", + "print u1,u2,u4,u5 \n", + "print \"Iterations :\"\n", + "for i in range(1,7):\n", + " u11 = (1000+u2+500+u4)/4\n", + " u22 = (u11+u1+1000+u5)/4 \n", + " u44 = (2000+u5+u11+u1)/4\n", + " u55 = (u44+u4+u22+u2)/4\n", + " print \"\"\n", + " print u55,u44,u22,u11\n", + " u1 = u11 \n", + " u2 = u22 \n", + " u4 = u44 \n", + " u5 = u55" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 28.3, page no. 727" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "See figure in question\n", + "To find the initial values of u1 u2 u3 u4 we assume u4=0 \n", + "u1=1/4∗(1000+0+1000+2000)=1000\n", + "u2=1/4(1000+500+1000+500)=625 \n", + "u3=1/4∗(2000+0+1000+500)=875\n", + "u4=1/4(875+0+625+0)=375\n", + "1000 625 875 375\n", + "Iterations:\n", + "\n", + "437 1000 750 1125\n", + "\n", + "453 1031 781 1187\n", + "\n", + "457 1039 789 1203\n", + "\n", + "458 1041 791 1207\n", + "\n", + "458 1041 791 1208\n", + "\n", + "458 1041 791 1208\n" + ] + } + ], + "source": [ + "print \"See figure in question\"\n", + "print \"To find the initial values of u1 u2 u3 u4 we assume u4=0 \"\n", + "print \"u1=1/4∗(1000+0+1000+2000)=1000\"\n", + "u1 = 1000\n", + "print \"u2=1/4(1000+500+1000+500)=625 \"\n", + "u2 = 625\n", + "print \"u3=1/4∗(2000+0+1000+500)=875\"\n", + "u3 = 875\n", + "print \"u4=1/4(875+0+625+0)=375\"\n", + "u4 = 375\n", + "print u1,u2,u3,u4 \n", + "print \"Iterations:\"\n", + "for i in range(1,7):\n", + " u11 = (2000+u2+1000+u3)/4 \n", + " u22 = (u11+500+1000+u4)/4\n", + " u33 = (2000+u4+u11+500)/4\n", + " u44 = (u33+0+u22+0)/4\n", + " print \"\"\n", + " print u44,u33,u22,u11\n", + " u1 = u11 \n", + " u2 = u22 \n", + " u4 = u44 \n", + " u3 = u33" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 28.5, page no. 729" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Here cˆ2=4, h=1, k=1/8, therefore alpha=(cˆ2)∗k/(hˆ2)\n", + "Using bendre−schmidits recurrence relation ie u(i)(j +1)=t∗u(i−1)(j)+t∗u(i+1)(j)+(1−2t)∗u(i,j)\n", + "Now since u(0,t)=0=u(8,t) therefore u(0,i)=0 and u(8,j)=0 and u(x,0)=4x−1/2xˆ2 \n", + "0.0\n", + "-4.0\n", + "0.0\n", + "4.0\n", + "8.0\n", + "12.0\n", + "16.0\n" + ] + } + ], + "source": [ + "import numpy\n", + "print \"Here cˆ2=4, h=1, k=1/8, therefore alpha=(cˆ2)∗k/(hˆ2)\"\n", + "print \"Using bendre−schmidits recurrence relation ie u(i)(j +1)=t∗u(i−1)(j)+t∗u(i+1)(j)+(1−2t)∗u(i,j)\"\n", + "print \"Now since u(0,t)=0=u(8,t) therefore u(0,i)=0 and u(8,j)=0 and u(x,0)=4x−1/2xˆ2 \"\n", + "c = 2\n", + "h = 1\n", + "k = 1/8\n", + "t = (c**2)*k/(h**2)\n", + "A = numpy.ones((9,9))\n", + "for i in range(0,9):\n", + " for j in range (0,9):\n", + " A[0,i] = 0\n", + " A[8,i] = 0\n", + " A[i,0] = 4*(i-1)-1/2*(i-1)**2\n", + "for i in range(1,8):\n", + " for j in range(1,7):\n", + " A[i,j] = t*A[i-1,j-1]+t*A[i+1,j-1]+(1-2*t)*A[i-1,j-1]\n", + "for i in range(1,8):\n", + " j = 2\n", + " print A[i,j]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 28.6, page no. 730" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Here cˆ2=1, h=1/3, k=1/36, therefore t=(cˆ2)∗k/(hˆ2)=1/4 \n", + "So bendre−schmidits recurrence relation ie u(i)(j+1)=1/4(u(i−1)(j)+u(i+1)(j)+2u(i,j)\n", + "Now since u(0,t)=0=u(1,t) therefore u(0,i)=0 and u(1,j)=0 and u(x,0)=sin(%pi)x\n", + "-0.433012701892\n", + "0.216506350946\n", + "0.649519052838\n", + "0.433012701892\n", + "-0.216506350946\n", + "-0.649519052838\n", + "-0.433012701892\n" + ] + } + ], + "source": [ + "import numpy,math\n", + "\n", + "print \"Here cˆ2=1, h=1/3, k=1/36, therefore t=(cˆ2)∗k/(hˆ2)=1/4 \"\n", + "print \"So bendre−schmidits recurrence relation ie u(i)(j+1)=1/4(u(i−1)(j)+u(i+1)(j)+2u(i,j)\"\n", + "print \"Now since u(0,t)=0=u(1,t) therefore u(0,i)=0 and u(1,j)=0 and u(x,0)=sin(%pi)x\"\n", + "c = 1.\n", + "h = 1./3\n", + "k = 1./36\n", + "t = (c**2)*k/(h**2)\n", + "A = numpy.ones((9,9))\n", + "for i in range(0,9):\n", + " for j in range(0,9):\n", + " A[0,i] = 0\n", + " A[1,i] = 0\n", + " A[i,0] = math.sin(math.pi/3*(i-1)) \n", + "for i in range(1,8):\n", + " for j in range(1,8):\n", + " A[i,j] = t*A[i-1,j-1]+t*A[i+1,j-1]+(1-2*t)*A[i-1,j-1]\n", + "for i in range(1,8):\n", + " j = 1\n", + " print A[i,j]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 28.7, page no. 732" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Here cˆ2=16, taking h=1, finding k such that cˆ2tˆ2=1 \n", + "So bendre−schmidits recurrence relation ie u(i)(j+1)=(16tˆ2(u(i−1)(j)+u(i+1)(j))+2(1−16∗tˆ2u(i,j)−u(i)(j−1)\n", + "Now since u(0,t)=0=u(5,t) therefore u(0,i)=0 and u(5,j)=0 and u(x,0)=xˆ2(5−x)\n", + "Also from 1st derivative (u(i)(j+1)−u(i,j−1))/2k=g(x) and g(x)=0 in this case\n", + "So if j=0 this gives u(i)(1)=1/2∗(u(i−1)(0)+u(i+1)(0))\n", + " 0.0 0.0 0.0 0.0 0.0 \n", + " 0.0 4.0 8.0 12.0 16.0 \n", + " 0.0 12.0 24.0 36.0 48.0 \n", + " 0.0 18.0 36.0 54.0 72.0 \n", + " 0.0 16.0 0.0 0.0 0.0 \n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "print \"Here cˆ2=16, taking h=1, finding k such that cˆ2tˆ2=1 \"\n", + "print \"So bendre−schmidits recurrence relation ie u(i)(j+1)=(16tˆ2(u(i−1)(j)+u(i+1)(j))+2(1−16∗tˆ2u(i,j)−u(i)(j−1)\"\n", + "print \"Now since u(0,t)=0=u(5,t) therefore u(0,i)=0 and u(5,j)=0 and u(x,0)=xˆ2(5−x)\"\n", + "c = 4\n", + "h =1 \n", + "k = (h/c)\n", + "t = k/h\n", + "A = numpy.zeros((6,6))\n", + "print \"Also from 1st derivative (u(i)(j+1)−u(i,j−1))/2k=g(x) and g(x)=0 in this case\"\n", + "print \"So if j=0 this gives u(i)(1)=1/2∗(u(i−1)(0)+u(i+1)(0))\"\n", + "for i in range(0,6):\n", + " for j in range(1,9):\n", + " A[0,i] = 0\n", + " A[5,i] = 0;\n", + " A[i,1] = (i)**2*(5-i)\n", + "for i in range(0,4):\n", + " A[i+1,2] =1/2*(A[i,1]+A[i+2,1])\n", + "for i in range(2,5):\n", + " for j in range(2,5):\n", + " A[i-1,j] = (c*t)**2*(A[i-2,j-1]+A[i,j-1])+2*(1-(c*t)**2)*A[i-1,j-1]-A[i-1,j-2]\n", + "for i in range(0,5):\n", + " for j in range(0,5):\n", + " print \" \",A[i,j],\n", + " print \"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 28.8, page no. 734" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Here cˆ2=4, taking h=1, finding k such that cˆ2tˆ2=1 \n", + "So bendre−schmidits recurrence relation ie u(i)(j+1)=(16tˆ2(u(i−1)(j)+u(i+1)(j))+2(1−16∗tˆ2u(i,j)−u(i)(j−1)\n", + "Now since u(0,t)=0=u(4,t) therefore u(0,i)=0 and u(4,j)=0 and u(x,0)=x(4−x) \n", + "Also from 1st derivative (u(i)(j+1)−u(i,j−1))/2 k=g(x) and g(x)=0 in this case\n", + "So if j=0 this gives u(i)(1)=1/2∗(u(i−1)(0)+u(i+1)(0))\n", + " 0.0 0.0 0.0 0.0 0.0 \n", + " 3.0 0.0 -3.0 -6.0 -9.0 \n", + " 4.0 0.0 -4.0 -8.0 -12.0 \n", + " 3.0 0.0 -3.0 -6.0 -9.0 \n", + " 0.0 0.0 0.0 0.0 0.0 \n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "print \"Here cˆ2=4, taking h=1, finding k such that cˆ2tˆ2=1 \"\n", + "print \"So bendre−schmidits recurrence relation ie u(i)(j+1)=(16tˆ2(u(i−1)(j)+u(i+1)(j))+2(1−16∗tˆ2u(i,j)−u(i)(j−1)\"\n", + "print \"Now since u(0,t)=0=u(4,t) therefore u(0,i)=0 and u(4,j)=0 and u(x,0)=x(4−x) \"\n", + "c = 2\n", + "h = 1\n", + "k = (h/c)\n", + "t = k/h\n", + "A = numpy.zeros((6,6))\n", + "print \"Also from 1st derivative (u(i)(j+1)−u(i,j−1))/2 k=g(x) and g(x)=0 in this case\"\n", + "print \"So if j=0 this gives u(i)(1)=1/2∗(u(i−1)(0)+u(i+1)(0))\"\n", + "for i in range(0,6):\n", + " for j in range(1,9):\n", + " A[0,i] = 0\n", + " A[4,i] = 0\n", + " A[i,0] = (i)*(4-i)\n", + "for i in range(0,4):\n", + " A[i+1,2] = 1/2*(A[i,1]+A[i+2,1])\n", + "for i in range(2,5):\n", + " for j in range(2,5):\n", + " A[i-1,j] = (c*t)**2*(A[i-2,j-1]+A[i,j-1])+2*(1-(c*t)**2)*A[i-1,j-1]-A[i-1,j-2]\n", + "for i in range (0,5):\n", + " for j in range(0,5):\n", + " print \" \",A[i,j],\n", + " print \"\"" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11+" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter2_2.ipynb b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter2_2.ipynb new file mode 100644 index 00000000..c8582eca --- /dev/null +++ b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter2_2.ipynb @@ -0,0 +1,1360 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 2: Determinants and Matrices" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.1, page no. 55" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Determinant of A is: a*b*c - a*f**2 - b*g**2 - c*h**2 + 2*f*g*h\n" + ] + } + ], + "source": [ + "import sympy\n", + "\n", + "a = sympy.Symbol('a')\n", + "h = sympy.Symbol('h')\n", + "g = sympy.Symbol('g')\n", + "b = sympy.Symbol('b')\n", + "f = sympy.Symbol('f')\n", + "c = sympy.Symbol('c')\n", + "A = sympy.Matrix([[a,h,g],[h,b,f],[g,f,c]])\n", + "\n", + "print \"Determinant of A is: \", A.det()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.2, page no. 55" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Determinanat of a is: 88.0\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.array([[0,1,2,3],[1,0,3,0],[2,3,0,1],[3,0,1,2]])\n", + "print \"Determinant of a is:\",numpy.linalg.det(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.3, page no. 56" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-a**3*b**2*c + a**3*b*c**2 + a**2*b**3*c - a**2*b*c**3 + a**2*b - a**2*c - a*b**3*c**2 + a*b**2*c**3 - a*b**2 + a*c**2 + b**2*c - b*c**2\n" + ] + } + ], + "source": [ + "import numpy\n", + "import sympy\n", + "\n", + "a = sympy.Symbol('a');\n", + "b = sympy.Symbol('b');\n", + "c = sympy.Symbol('c');\n", + "A = sympy.Matrix([[a,a**2,a**3-1],[b,b**2,b**3-1],[c,c**2,c**3-1]])\n", + "\n", + "print A.det()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.4, page no. 57" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Determinanat of a is: -24.0\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.array([[21,17,7,10],[24,22,6,10],[6,8,2,3],[6,7,1,2]])\n", + "print \"Determinanat of a is:\",numpy.linalg.det(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.16, page no.60" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a: x**y*log(x)\n", + "b: x**y*y*log(x)/x + x**y/x\n", + "c: x**y*y**2*log(x)/x**2 - x**y*y*log(x)/x**2 + 2*x**y*y/x**2 - x**y/x**2\n", + "d: x**y*y/x\n", + "e: x**y*y*log(x)/x + x**y/x\n", + "f: x**y*y**2*log(x)/x**2 - x**y*y*log(x)/x**2 + 2*x**y*y/x**2 - x**y/x**2\n", + "Clearly c = f\n" + ] + } + ], + "source": [ + "import sympy\n", + "\n", + "x = sympy.Symbol('x');\n", + "y = sympy.Symbol('y')\n", + "u = x**y\n", + "a = sympy.diff(u, y)\n", + "b = sympy.diff(a, x)\n", + "c = sympy.diff(b, x)\n", + "d = sympy.diff(u, x)\n", + "e = sympy.diff(d, y)\n", + "f = sympy.diff(e, x)\n", + "print \"a: \", a\n", + "print \"b: \", b\n", + "print \"c: \", c\n", + "print \"d: \", d\n", + "print \"e: \", e\n", + "print \"f: \", f\n", + "print \"Clearly c = f\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.17, page no. 65" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A*B=\n", + "[[ 5 9 13]\n", + " [-1 2 4]\n", + " [-2 2 4]]\n", + "\n", + "B*A=\n", + "[[-1 12 11]\n", + " [-1 7 8]\n", + " [-2 -1 5]]\n", + "Clearly AB is not equal to BA\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.array([[1,3,0],[-1,2,1],[0,0,2]])\n", + "B = numpy.array([[2,3,4],[1,2,3],[-1,1,2]])\n", + "ma = numpy.matrix(A)\n", + "mb = numpy.matrix(B)\n", + "print \"A*B=\"\n", + "print ma*mb\n", + "print \"\"\n", + "print \"B*A=\"\n", + "print mb*ma\n", + "print \"Clearly AB is not equal to BA\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.18, page no. 65" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "AB=C−−>B=inv(A)∗C\n", + "\n", + "[[ 1.00000000e+00 -1.77635684e-15 -8.88178420e-16]\n", + " [ -2.22044605e-16 2.00000000e+00 -1.11022302e-16]\n", + " [ 1.77635684e-15 0.00000000e+00 1.00000000e+00]]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.matrix([[3,2,2],[1,3,1],[5,3,4]])\n", + "C = numpy.matrix([[3,4,2],[1,6,1],[5,6,4]])\n", + "print \"AB=C−−>B=inv(A)∗C\"\n", + "print \"\"\n", + "B = numpy.linalg.inv(A)*C \n", + "print B" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.19, page no. 66" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Aˆ3−4∗Aˆ2−3A+11*I=\n", + "\n", + "[[ 0. 0. 0.]\n", + " [ 0. 0. 0.]\n", + " [ 0. 0. 0.]]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.array([[1,3,2],[2,0,-1],[1,2,3]])\n", + "I = numpy.eye(3)\n", + "A = numpy.matrix(A)\n", + "print \"Aˆ3−4∗Aˆ2−3A+11*I=\"\n", + "print \"\"\n", + "print A**3-4*A**2-3*A+11*I" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.20, page no. 67" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter the value of n: 3\n", + "Calculating A ^ n: \n", + "[[ 31 -75]\n", + " [ 12 -29]]\n" + ] + } + ], + "source": [ + "import numpy\n", + "0\n", + "A = numpy.matrix([[11,-25],[4, -9]])\n", + "n = int(raw_input(\"Enter the value of n: \"))\n", + "print \"Calculating A ^ n: \"\n", + "print A**n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.23, page no. 70" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Inverse of A is: \n", + "[[ 3. 1. 1.5 ]\n", + " [-1.25 -0.25 -0.75]\n", + " [-0.25 -0.25 -0.25]]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.matrix([[1,1,3],[1,3,-3],[-2,-4,-4]])\n", + "print \"Inverse of A is: \"\n", + "print numpy.linalg.inv(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.24.1, page no. 71" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Rank of A is: 2\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.matrix([[1,2,3],[1,4,2],[2,6,5]])\n", + "print \"Rank of A is:\",numpy.linalg.matrix_rank(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.24.2, page no. 71" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Rank of A is: 2\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.matrix([[0,1,-3,-1],[1,0,1,1],[3,1,0,2],[1,1,-2,0]])\n", + "print \"Rank of A is:\",numpy.linalg.matrix_rank(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.25, page no. 72" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Inverse of A is: \n", + "[[ 3. 1. 1.5 ]\n", + " [-1.25 -0.25 -0.75]\n", + " [-0.25 -0.25 -0.25]]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.matrix([[1,1,3],[1,3,-3],[-2,-4,-4]])\n", + "print \"Inverse of A is: \"\n", + "print numpy.linalg.inv(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.26, page no. 73" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Rank of A is: 3\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.matrix([[2,3,-1,-1],[1,-1,-2,-4],[3,1,3,-2],[6,3,0,-7]])\n", + "r,p = numpy.linalg.eigh ( A )\n", + "print \"Rank of A is:\",numpy.linalg.matrix_rank(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.28, page no. 75" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Inverse of A is: \n", + "[[ 1.4 0.2 -0.4]\n", + " [-1.5 0. 0.5]\n", + " [ 1.1 -0.2 -0.1]]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.matrix([[1,1,1],[4,3,-1],[3,5,3]])\n", + "print \"Inverse of A is: \"\n", + "print numpy.linalg.inv(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.31, page no. 78" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " The equations can be rewritten as AX=B where X=[ x1 ; x2 ; x3 ; x4 ] and \n", + "Determinant of A=\n", + "8.0\n", + "Inverse of A =\n", + "[[ 0.5 0.5 0.5 -0.5]\n", + " [-0.5 0. 0. 0.5]\n", + " [ 0. -0.5 0. 0.5]\n", + " [ 0. 0. -0.5 0.5]]\n", + "X= [[ 1.]\n", + " [-1.]\n", + " [ 2.]\n", + " [-2.]]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "print \"The equations can be rewritten as AX=B where X=[ x1 ; x2 ; x3 ; x4 ] and \"\n", + "A = numpy.matrix([[1,-1,1,1],[1,1,-1,1],[1,1,1,-1],[1,1,1,1]])\n", + "B = numpy.matrix([[2],[-4],[4],[0]])\n", + "print \"Determinant of A=\"\n", + "print numpy.linalg.det(A)\n", + "print \"Inverse of A =\"\n", + "print numpy.linalg.inv(A)\n", + "print \"X=\",numpy.linalg.inv(A)*B" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.32, page no. 78" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The equations can be rewritten as AX=B where X=[x;y;z] and\n", + "Determinant of A=\n", + "-8.79296635503e-14\n", + "Since det(A)=0 , hence, this system of equation will have infinite solutions.. hence, the system is consistent\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "print \"The equations can be rewritten as AX=B where X=[x;y;z] and\"\n", + "A = numpy.matrix([[5,3,7],[3,26,2],[7,2,10]])\n", + "B = numpy.matrix([[4],[9],[5]])\n", + "print \"Determinant of A=\"\n", + "print numpy.linalg.det(A)\n", + "print \"Since det(A)=0 , hence, this system of equation will have infinite solutions.. hence, the system is consistent\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.34.1, page no. 80" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Rank of A is 3\n", + "Equations have only a trivial solution : x=y=z=0\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.matrix([[1,2,3],[3,4,4],[7,10,12]])\n", + "p = numpy.linalg.matrix_rank(A)\n", + "print \"Rank of A is\",p\n", + "if p==3:\n", + " print \"Equations have only a trivial solution : x=y=z=0\"\n", + "else:\n", + " print \"Equations have infinite no . of solutions.\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 2.34.2, page no. 80" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Rank of A is 2\n", + "Equations have infinite no. of solutions.\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.matrix([[4,2,1,3],[6,3,4,7],[2,1,0,1]])\n", + "p = numpy.linalg.matrix_rank(A)\n", + "print \"Rank of A is\",p\n", + "if p ==4:\n", + " print \"Equations have only a trivial solution : x=y=z=0\"\n", + "else:\n", + " print \"Equations have infinite no. of solutions.\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 2.38, page no. 83" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The given equations can be written as Y=AX where\n", + "Determinant of A is -1.0\n", + "Since, its non−singular, hence transformation is regular\n", + "Inverse of A is\n", + "[[ 2. -2. -1.]\n", + " [-4. 5. 3.]\n", + " [ 1. -1. -1.]]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "print \"The given equations can be written as Y=AX where\"\n", + "A = numpy.matrix([[2,1,1],[1,1,2],[1,0,-2]])\n", + "print \"Determinant of A is\",numpy.linalg.det ( A )\n", + "print \"Since, its non−singular, hence transformation is regular\"\n", + "print\"Inverse of A is\"\n", + "print numpy.linalg.inv ( A )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.39, page no. 84" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[-0.66666667 0.33333333 0.66666667]\n", + " [ 0.66666667 0.66666667 0.33333333]\n", + " [ 0.33333333 -0.66666667 0.66666667]]\n", + "A transpose is equal to\n", + "[[-0.66666667 0.66666667 0.33333333]\n", + " [ 0.33333333 0.66666667 -0.66666667]\n", + " [ 0.66666667 0.33333333 0.66666667]]\n", + "A∗(transpose of A)=\n", + "[[ 1. 0. 0.]\n", + " [ 0. 1. 0.]\n", + " [ 0. 0. 1.]]\n", + "Hence, A is orthogonal\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.matrix([[-2./3,1./3,2./3],[2./3,2./3,1./3],[1./3,-2./3,2./3]])\n", + "print A\n", + "print \"A transpose is equal to\"\n", + "print A.transpose()\n", + "print \"A∗(transpose of A)=\"\n", + "print A*A.transpose()\n", + "print \"Hence, A is orthogonal\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 2.42, page no. 87" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Let R represents the matrix of transformation and P represents a diagonal matrix whose values are the eigenvalues of A. then\n", + "R is normalised. let U represents unnormalised version of r\n", + "Two eigen vectors are the two columns of U\n", + "[[ 4. 1.]\n", + " [ 0. 0.]]\n" + ] + } + ], + "source": [ + "import numpy\n", + "import math\n", + "\n", + "A = numpy.matrix([[5,4],[1,2]])\n", + "print \"Let R represents the matrix of transformation and P represents a diagonal matrix whose values are the eigenvalues of A. then\"\n", + "P,R= numpy.linalg.eig(A)\n", + "U = numpy.zeros([2, 2])\n", + "print \"R is normalised. let U represents unnormalised version of r\"\n", + "U[0,0]= R[0,0]*math.sqrt(17)\n", + "U[0,1]= R[0,1]*math.sqrt(17)\n", + "U[0,1]= R[1,1]*math.sqrt(2)\n", + "print \"Two eigen vectors are the two columns of U\"\n", + "print U" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Examle 2.43, page no. 88" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Let Rrepresents the matrix of transformation and Prepresents a diagonalmatrix whose values are the eigenvalues of A. then\n", + "R is normalised. let U represents unnormalised version of r\n", + "[-2. 3. 6.]\n", + "Three eigen vectors are the three columns of U\n", + "[[ -2.82842712 5.19615242 14.69693846]\n", + " [ 0. 0. 0. ]\n", + " [ 0. 0. 0. ]]\n" + ] + } + ], + "source": [ + "import numpy,math\n", + "\n", + "A = numpy.matrix([[1,1,3],[1,5,1],[3,1,1]])\n", + "U = numpy.zeros([3,3])\n", + "print \"Let Rrepresents the matrix of transformation and Prepresents a diagonalmatrix whose values are the eigenvalues of A. then\"\n", + "R,P = numpy.linalg.eig(A)\n", + "print \"R is normalised. let U represents unnormalised version of r\"\n", + "print R\n", + "U[0,0] = R[0]*math.sqrt(2) \n", + "U[0,1] = R[1]*math.sqrt(3)\n", + "U[0,2] = R[2]*math.sqrt(6)\n", + "print \"Three eigen vectors are the three columns of U\"\n", + "print U" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.44, page no. 89" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Let Rrepresents the matrix of transformation and Prepresents a diagonalmatrix whose values are the eigenvalues of A. then\n", + "R is normalised. let U represents unnormalised version of r\n", + "[ 3. 2. 5.]\n", + "Three eigen vectors are the three columns of U\n", + "[[ 3. 2. 18.70828693]\n", + " [ 0. 0. 0. ]\n", + " [ 0. 0. 0. ]]\n" + ] + } + ], + "source": [ + "import numpy,math\n", + "\n", + "A = numpy.matrix([[3,1,4],[0,2,6],[0,0,5]])\n", + "U = numpy.zeros([3,3])\n", + "print \"Let Rrepresents the matrix of transformation and Prepresents a diagonalmatrix whose values are the eigenvalues of A. then\"\n", + "R,P = numpy.linalg.eig(A)\n", + "print \"R is normalised. let U represents unnormalised version of r\"\n", + "print R\n", + "U[0,0] = R[0]*math.sqrt(1) \n", + "U[0,1] = R[1]*math.sqrt(1)\n", + "U[0,2] = R[2]*math.sqrt(14)\n", + "print \"Three eigen vectors are the three columns of U\"\n", + "print U" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.45, page no. 90" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Eigen values of A are\n", + "(array([-1., 5.]), matrix([[-0.89442719, -0.70710678],\n", + " [ 0.4472136 , -0.70710678]]))\n", + "Let\n", + "Hence, the characteristic equation is ( x−a ) ( x−b)\n", + "[-8 -5]\n", + "Aˆ2−4∗A−5∗ I=\n", + "[[ 0. 0.]\n", + " [ 0. 0.]]\n", + "Inverse of A=\n", + "[[-0.6 0.8]\n", + " [ 0.4 -0.2]]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "x = numpy.poly([0])\n", + "A = numpy.matrix([[1,4],[2,3]])\n", + "I = numpy.eye(2)\n", + "print \"Eigen values of A are\"\n", + "print numpy.linalg.eig(A)\n", + "print \"Let\"\n", + "a = -1;\n", + "b = 5;\n", + "print \"Hence, the characteristic equation is ( x−a ) ( x−b)\"\n", + "print ( x - a ) *( x - b )\n", + "\n", + "print \"Aˆ2−4∗A−5∗ I=\"\n", + "print A**2-4*A-5* I\n", + "print \"Inverse of A=\"\n", + "print numpy.linalg.inv ( A )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.46, page no. 91" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Egenvalues of A are\n", + "(array([ 4.25683813, 0.40327935, -4.66011748]), matrix([[ 0.10296232, -0.91299477, -0.48509974],\n", + " [-0.90473047, 0.40531299, 0.37306899],\n", + " [ 0.41335402, 0.04649661, 0.79088417]]))\n", + "Let\n", + "Hence, the characteristic equation is ( x−a ) ( x−b) ( x−c )\n", + "[-10.99999905 8.00000095]\n", + "Inverse of A=\n", + "[[ 3. 1. 1.5 ]\n", + " [-1.25 -0.25 -0.75]\n", + " [-0.25 -0.25 -0.25]]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "x = numpy.poly([0])\n", + "A = numpy.matrix([[1,1,3],[1,3,-3],[-2,-4,-4]])\n", + "print \"Egenvalues of A are\"\n", + "print numpy.linalg.eig(A)\n", + "print \"Let\"\n", + "a =4.2568381\n", + "b =0.4032794\n", + "c = -4.6601175\n", + "print \"Hence, the characteristic equation is ( x−a ) ( x−b) ( x−c )\"\n", + "p = (x-a)*(x-b)*(x-c)\n", + "print p\n", + "print \"Inverse of A=\"\n", + "print numpy.linalg.inv(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.47, page no. 91" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Eigenvalues of A are\n", + "(array([ 3., 1., 1.]), matrix([[ 0.70710678, -0.70710678, -0.40824829],\n", + " [ 0. , 0. , 0.81649658],\n", + " [ 0.70710678, 0.70710678, -0.40824829]]))\n", + "Let\n", + "Hence, the characteristic equation is (x−a)(x−b)(x−c)=\n", + "[ 0 -3]\n", + "Aˆ8−5∗Aˆ7+7∗Aˆ6−3∗Aˆ5+Aˆ4−5∗Aˆ3+8∗Aˆ2−2∗A+I =\n", + "[[ 8. 5. 5.]\n", + " [ 0. 3. 0.]\n", + " [ 5. 5. 8.]]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "x = numpy.poly([0])\n", + "A = numpy.matrix([[2,1,1],[0,1,0],[1,1,2]])\n", + "I = numpy.eye(3)\n", + "print \"Eigenvalues of A are\"\n", + "print numpy.linalg.eig(A)\n", + "print \"Let\"\n", + "a =1\n", + "b =1\n", + "c =3\n", + "print \"Hence, the characteristic equation is (x−a)(x−b)(x−c)=\"\n", + "p = (x-a)*(x-b)*(x-c)\n", + "print p\n", + "print \"Aˆ8−5∗Aˆ7+7∗Aˆ6−3∗Aˆ5+Aˆ4−5∗Aˆ3+8∗Aˆ2−2∗A+I =\"\n", + "print A**8-5*A**7+7*A**6-3*A**5+A**4-5*A**3+8*A**2-2*A+I" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 2.48, page no. 93" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R is matrix of transformation and D is a diagonal matrix\n", + "[-1.65544238 -0.21075588 2.86619826]\n", + "[[-0.87936655 -0.34661859 -0.32645063]\n", + " [ 0.11410244 0.51222983 -0.85123513]\n", + " [-0.46227167 0.78579651 0.41088775]]\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.matrix([[-1,2,-2],[1,2,1],[-1,-1,0]])\n", + "print \"R is matrix of transformation and D is a diagonal matrix\"\n", + "[R,D]= numpy.linalg.eigh(A)\n", + "print R\n", + "print D" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.49, page no. 93" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R is matrix of transformation and D is a diagonal matrix\n", + "R is normalised, let P denotes unnormalised version of R . Then \n", + "[ 3. 2. 5.]\n", + "[[ 4.24264069 3.46410162 12.24744871]\n", + " [ 0. 0. 0. ]\n", + " [ 0. 0. 0. ]]\n", + "A^4= [[ 81 65 1502]\n", + " [ 0 16 1218]\n", + " [ 0 0 625]]\n" + ] + } + ], + "source": [ + "import numpy,math\n", + "\n", + "A = numpy.matrix([[3,1,4],[0,2,6],[0,0,5]])\n", + "P = numpy.zeros([3,3])\n", + "print \"R is matrix of transformation and D is a diagonal matrix\"\n", + "R,D = numpy.linalg.eig(A)\n", + "print \"R is normalised, let P denotes unnormalised version of R . Then \"\n", + "print R\n", + "P[0,0] = R[0]*math.sqrt(2) \n", + "P[0,1] = R[1]*math.sqrt(3)\n", + "P[0,2] = R[2]*math.sqrt(6)\n", + "print P\n", + "print \"A^4= \",A**4" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.50, page no. 94" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3∗xˆ2+5∗yˆ2+3∗zˆ2−2∗y∗z+2∗z∗x−2∗x∗y\n", + "The matrix of the given quadratic form is\n", + "Let R represents the matrix of transformation and Prepresents a diagonal matrix whose values are the eigenvalues of A. then\n", + "So, canonical form is 2∗xˆ2+3∗yˆ2+6∗zˆ2\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "print \"3∗xˆ2+5∗yˆ2+3∗zˆ2−2∗y∗z+2∗z∗x−2∗x∗y\"\n", + "print \"The matrix of the given quadratic form is\"\n", + "A = numpy.matrix([[3,-1,1],[-1,5,-1],[1,-1,3]])\n", + "print \"Let R represents the matrix of transformation and Prepresents a diagonal matrix whose values are the eigenvalues of A. then\"\n", + "[R,P] = numpy.linalg.eig(A)\n", + "print \"So, canonical form is 2∗xˆ2+3∗yˆ2+6∗zˆ2\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.51, page no. 95" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2∗x1∗x2+2∗x1∗x3−2∗x2∗x3\n", + "The matrix of the given quadratic form is\n", + "Let R represents the matrix of transformation and P represents a diagonal matrix whose values are the eigenvalues of A. then\n", + "so, canonical form is −2∗xˆ2+yˆ2+ zˆ2\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "print \"2∗x1∗x2+2∗x1∗x3−2∗x2∗x3\"\n", + "print \"The matrix of the given quadratic form is\"\n", + "A = numpy.matrix([[0,1,1],[1,0,-1],[1,-1,0]])\n", + "print \"Let R represents the matrix of transformation and P represents a diagonal matrix whose values are the eigenvalues of A. then\"\n", + "[R,P] = numpy.linalg.eig(A)\n", + "print \"so, canonical form is −2∗xˆ2+yˆ2+ zˆ2\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.52, page no. 96" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A∗= [[ 2.-1.j -5.-0.j]\n", + " [ 3.-0.j 0.-1.j]\n", + " [-1.-3.j 4.+2.j]]\n", + "AA∗= [[ 24.+0.j -20.+2.j]\n", + " [-20.-2.j 46.+0.j]]\n", + "Clearly, AA∗ is hermitian matrix\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "'''\n", + "A=[2+%i 3 -1+3*%i;-5 %i 4-2*%i]\n", + "'''\n", + "\n", + "A = numpy.matrix([[2+1j,3,-1+3*1j],[-5,1j,4-2*1j]])\n", + "#A = A.getH()\n", + "print \"A∗=\", A.getH()\n", + "print \"AA∗=\", A*(A.getH())\n", + "print \"Clearly, AA∗ is hermitian matrix\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.53, page no. 97" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " A∗= [[ 0.-0.j 0.-0.j]\n", + " [-0.-0.j 0.-0.j]]\n", + "AA∗= [[ 0.+0.j 0.+0.j]\n", + " [ 0.+0.j 0.+0.j]]\n", + "A∗A= [[ 0.+0.j 0.+0.j]\n", + " [ 0.+0.j 0.+0.j]]\n" + ] + } + ], + "source": [ + "import numpy \n", + "\n", + "A = numpy.matrix([[(1/2)*(1+1j),(1/2)*(-1+1j)],[(1/2)*(1+1j),(1/2)*(1-1j)]])\n", + "print \"A∗=\", A.getH()\n", + "print \"AA∗=\", A*(A.getH())\n", + "print \"A∗A=\", (A.getH())*A" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.54, page no. 97" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "I−A=\n", + "inverse of (I+A)=\n", + "[[ 0.16666667+0.j -0.16666667-0.33333333j]\n", + " [ 0.16666667-0.33333333j 0.16666667+0.j ]]\n", + "((I−A)(inverse(I+A)))∗((I−A)(inverse(I+A)))=\n", + "[[ 1.11111111e-01-0.44444444j -2.77555756e-17+0.88888889j]\n", + " [ -2.77555756e-17+0.88888889j 1.11111111e-01+0.44444444j]]\n", + "((I−A)(inverse(I+A)))((I−A)(inverse(I+A)))∗=\n", + "[[ 1.11111111e-01+0.44444444j 1.11022302e-16+0.88888889j]\n", + " [ 1.11022302e-16+0.88888889j 1.11111111e-01-0.44444444j]]\n", + "Clearly, the product is an identity matrix.hence, it is a unitary matrix\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.matrix([[0,1+2*1j],[-1+2*1j,0]])\n", + "I = numpy.eye(2)\n", + "print \"I−A=\"\n", + "I-A\n", + "print \"inverse of (I+A)=\"\n", + "print numpy.linalg.inv(I+A)\n", + "print \"((I−A)(inverse(I+A)))∗((I−A)(inverse(I+A)))=\"\n", + "print (((I-A)*(numpy.linalg.inv(I+A))).T)*((I-A)*(numpy.linalg.inv(I+A)))\n", + "print \"((I−A)(inverse(I+A)))((I−A)(inverse(I+A)))∗=\"\n", + "print ((I-A)*(numpy.linalg.inv(I+A)))*(((I-A)*(numpy.linalg.inv(I+A))).T)\n", + "print \"Clearly, the product is an identity matrix.hence, it is a unitary matrix\"" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11+" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter34_2.ipynb b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter34_2.ipynb new file mode 100644 index 00000000..68dc76ff --- /dev/null +++ b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter34_2.ipynb @@ -0,0 +1,1414 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 34 : Probability And Distributions" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.1, page no. 830" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "From the principle of counting, the required no. of ways are 12∗11∗10∗9= \n", + "11880\n" + ] + } + ], + "source": [ + "print \"From the principle of counting, the required no. of ways are 12∗11∗10∗9= \"\n", + "print 12*11*10*9" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.2.1, page no. 831" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "no. of permutations=9!/(2!∗2!∗2!)\n", + "45360\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "print \"no. of permutations=9!/(2!∗2!∗2!)\"\n", + "print math.factorial(9)/(math.factorial(2)*math.factorial(2)*math.factorial(2))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.2.2, page no. 831" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "no. of permutations=9!/(2!∗2!∗3!*3!)\n", + "2520\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "print \"no. of permutations=9!/(2!∗2!∗3!*3!)\"\n", + "print math.factorial(9)/(math.factorial(2)*math.factorial(2)*math.factorial(3)*math.factorial(3))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.3.1, page no. 832" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "no. of committees=C(6,3)∗C(5,2)=’\n", + "200\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "def C(a,b):\n", + " x = math.factorial(a)/(math.factorial(b)*math.factorial(a-b))\n", + " return x\n", + "print \"no. of committees=C(6,3)∗C(5,2)=’\"\n", + "print C(6,3)*C(5,2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.3.2, page no. 832" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "no. of committees=C(4,1)∗C(5,2)=’\n", + "40\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "def C(a,b):\n", + " x = math.factorial(a)/(math.factorial(b)*math.factorial(a-b))\n", + " return x\n", + "print \"no. of committees=C(4,1)∗C(5,2)=’\"\n", + "print C(4,1)*C(5,2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.3.3, page no. 833" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "no. of committees=C(6,3)∗C(4,2)=’\n", + "120\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "def C(a,b):\n", + " x = math.factorial(a)/(math.factorial(b)*math.factorial(a-b))\n", + " return x\n", + "print \"no. of committees=C(6,3)∗C(4,2)=’\"\n", + "print C(6,3)*C(4,2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.4.1, page no. 834" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The probability of getting a four is 1/6= 0.166666666667\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "print \"The probability of getting a four is 1/6= \",1./6" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.4.2, page no. 834" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The probability of getting an even no. 1/2= 0.5\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "print \"The probability of getting an even no. 1/2= \",1./2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.5, page no. 835" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The probability of 53 Sundays is 2/7= 0.285714285714\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "print \"The probability of 53 Sundays is 2/7= \",2./7" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.6, page no. 835" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The five digits can be arranged in 5! ways = 120\n", + "Of which 4! will begin with 0 = 24\n", + "So, total no. of five digit numbers = 5!−4! = 96\n", + "The numbers ending in 04, 12, 20, 24, 32, 40 will be divisible by 4 \n", + "numbers ending in 04 = 3! = 6\n", + "numbers ending in 12 = 3!−2! = 4\n", + "numbers ending in 20 = 3! = 6\n", + "numbers ending in 24 = 3!−2! = 4\n", + "numbers ending in 32 = 3!−2! = 4\n", + "numbers ending in 40 = 3! = 6\n", + "So, total no. of favourable ways = 6+4+6+4+4+6 = 30\n", + "probability = 30/96 = 0.3125\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "print \"The five digits can be arranged in 5! ways = \",math.factorial(5)\n", + "print \"Of which 4! will begin with 0 = \",math.factorial(4)\n", + "print \"So, total no. of five digit numbers = 5!−4! = \",math.factorial(5)-math.factorial(4)\n", + "print \"The numbers ending in 04, 12, 20, 24, 32, 40 will be divisible by 4 \"\n", + "print \"numbers ending in 04 = 3! = \",math.factorial(3)\n", + "print \"numbers ending in 12 = 3!−2! = \",math.factorial(3)-math.factorial(2)\n", + "print \"numbers ending in 20 = 3! = \",math.factorial(3)\n", + "print \"numbers ending in 24 = 3!−2! = \",math.factorial(3)-math.factorial(2)\n", + "print \"numbers ending in 32 = 3!−2! = \",math.factorial(3)-math.factorial(2)\n", + "print \"numbers ending in 40 = 3! = \",math.factorial(3)\n", + "print \"So, total no. of favourable ways = 6+4+6+4+4+6 = \",6+4+6+4+4+6\n", + "print \"probability = 30/96 = \",30./96" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.7, page no. 836" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total no. of possible cases = C(40,4) = 91390\n", + "Favourable outcomes = C(24,2)∗C(15,1) = 4140\n", + "Probability = 0.0453003610898\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "def C(a,b):\n", + " x = math.factorial(a)/(math.factorial(b)*math.factorial(a-b))\n", + " return x\n", + "print \"Total no. of possible cases = C(40,4) = \",C(40,4)\n", + "print \"Favourable outcomes = C(24,2)∗C(15,1) = \",C(24,2)*C(15,1)\n", + "print \"Probability = \",float(C(24,2)*C(15,1))/C(40,4)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.8, page no. 836" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total no. of possible cases = C(15,8) = 6435\n", + "Favourable outcomes = C(5,2)∗C(10,6) = 2100\n", + "Probability = 0.32634032634\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "def C(a,b):\n", + " x = math.factorial(a)/(math.factorial(b)*math.factorial(a-b))\n", + " return x\n", + "print \"Total no. of possible cases = C(15,8) = \",C(15,8)\n", + "print \"Favourable outcomes = C(5,2)∗C(10,6) = \",C(5,2)*C(10,6)\n", + "print \"Probability = \",float(C(5,2)*C(10,6))/C(15,8)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.9.1, page no. 837" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total no. of possible cases = C(9,3) = 84\n", + "Favourable outcomes = C(2,1)∗C(3,1)*C(4,1) = 24\n", + "Probability = 0.285714285714\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "def C(a,b):\n", + " x = math.factorial(a)/(math.factorial(b)*math.factorial(a-b))\n", + " return x\n", + "print \"Total no. of possible cases = C(9,3) = \",C(9,3)\n", + "print \"Favourable outcomes = C(2,1)∗C(3,1)*C(4,1) = \",C(2,1)*C(3,1)*C(4,1)\n", + "print \"Probability = \",float(C(2,1)*C(3,1)*C(4,1))/C(9,3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.9.2, page no. 837" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total no. of possible cases = C(9,3) = 84\n", + "Favourable outcomes = C(2,2)∗C(7,1)+C(3,2)∗C(6,1)+C(4,2)∗C(5,1) = 55\n", + "Probability = 0.654761904762\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "\n", + "def C(a,b):\n", + " x = math.factorial(a)/(math.factorial(b)*math.factorial(a-b))\n", + " return x\n", + "print \"Total no. of possible cases = C(9,3) = \",C(9,3)\n", + "print \"Favourable outcomes = C(2,2)∗C(7,1)+C(3,2)∗C(6,1)+C(4,2)∗C(5,1) = \",C(2,2)*C(7,1)+C(3,2)*C(6,1)+C(4,2)*C(5,1)\n", + "print \"Probability = \",float(C(2,2)*C(7,1)+C(3,2)*C(6,1)+C(4,2)*C(5,1))/C(9,3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.9.3, page no. 838" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total no. of possible cases = C(9,3) = 84\n", + "Favourable outcomes = C(3,3)+C(4,3) = 5\n", + "Probability = 0.0595238095238\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "def C(a,b):\n", + " x = math.factorial(a)/(math.factorial(b)*math.factorial(a-b))\n", + " return x\n", + "print \"Total no. of possible cases = C(9,3) = \",C(9,3)\n", + "print \"Favourable outcomes = C(3,3)+C(4,3) = \",C(3,3)+C(4,3)\n", + "print \"Probability = \",5./84" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.13, page no. 840" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability of drawing an ace or spade or both from pack of 52 cards = 4/52+13/52−1/52= 17\n" + ] + } + ], + "source": [ + "print \"Probability of drawing an ace or spade or both from pack of 52 cards = 4/52+13/52−1/52= \",4+13-1/52" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.14.1, page no. 841" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability of first card being a king = 4/52 = 0.0769230769231\n", + "Probability of second card being a queen = 4/52 = 0.0769230769231\n", + "Probability of drawing both cards in succession = 4/52∗4/52= 0.00591715976331\n" + ] + } + ], + "source": [ + "print \"Probability of first card being a king = 4/52 = \",4./52\n", + "print \"Probability of second card being a queen = 4/52 = \",4./52\n", + "print \"Probability of drawing both cards in succession = 4/52∗4/52= \",(4./52)*(4./52)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.15.1, page no. 842" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability of getting 7 in first toss and not getting it in second toss = 1/6∗5/6 = 0.138888888889\n", + "Probability of not getting 7 in first toss and getting it in second toss = 5/6∗1/6 = 0.138888888889\n", + "Required probability = 1/6∗5/6+5/6∗1/6 = 0.277777777778\n" + ] + } + ], + "source": [ + "print \"Probability of getting 7 in first toss and not getting it in second toss = 1/6∗5/6 = \",(1./6)*(5./6)\n", + "print \"Probability of not getting 7 in first toss and getting it in second toss = 5/6∗1/6 = \",(5./6)*(1./6)\n", + "print \"Required probability = 1/6∗5/6+5/6∗1/6 = \",((1./6)*(5./6))+((5./6)*(1./6))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.15.2, page no. 842" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability of not getting 7 in either toss = 5/6∗5/6 = 0.694444444444\n", + "Probability of getting 7 at least once = 1−5/6∗5/6 = 0.305555555556\n" + ] + } + ], + "source": [ + "print \"Probability of not getting 7 in either toss = 5/6∗5/6 = \",(5./6)*(5./6)\n", + "print \"Probability of getting 7 at least once = 1−5/6∗5/6 = \",1-(5./6)*(5./6)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.15.3, page no. 842" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability of getting 7 twice = 1/6∗1/6 = 0.0277777777778\n" + ] + } + ], + "source": [ + "print \"Probability of getting 7 twice = 1/6∗1/6 = \",(1./6)*(1./6)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.16, page no. 843" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability of engineering subject being choosen = (1/3∗3/8)+(2/3∗5/8) = 0.541666666667\n" + ] + } + ], + "source": [ + "print \"Probability of engineering subject being choosen = (1/3∗3/8)+(2/3∗5/8) = \",((1./3)*(3./8)) +((2./3)*(5./8))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.17, page no. 844" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability of white ball being choosen = 2/6∗6/13+4/6∗5/13 = 0.410256410256\n" + ] + } + ], + "source": [ + "print \"Probability of white ball being choosen = 2/6∗6/13+4/6∗5/13 = \",((2./6)*(6./13))+((4./6)*(5./13))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.18, page no. 844" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Chances of winning of A=1/2+(1/2)ˆ2∗(1/2)+(1/2)ˆ4∗(1/2)+(1/2)ˆ6∗(1/2)+..= 0.666666666667\n", + "Chances of winning of B=1−chances of winning of A = 1\n" + ] + } + ], + "source": [ + "print \"Chances of winning of A=1/2+(1/2)ˆ2∗(1/2)+(1/2)ˆ4∗(1/2)+(1/2)ˆ6∗(1/2)+..= \",(1./2)/(1-(1./2)**2)\n", + "print \"Chances of winning of B=1−chances of winning of A = \",1-(2/3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.19.1, page no. 845" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total no. of possible outcomes = C(10,2) = 45\n", + "Favourable outcomes = 5*5 = 25\n", + "P = 0.555555555556\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "def C(a,b):\n", + " x = math.factorial(a)/(math.factorial(b)*math.factorial(a-b))\n", + " return x\n", + "print \"Total no. of possible outcomes = C(10,2) = \",C(10,2)\n", + "print \"Favourable outcomes = 5*5 = \",5*5\n", + "print \"P = \",25./45" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.19.2, page no. 845" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total no. of possible outcomes = 10*10 = 100\n", + "Favourable outcomes = 5*5+5*5 = 50\n", + "P = 0.5\n" + ] + } + ], + "source": [ + "print \"Total no. of possible outcomes = 10*10 = \",10*10\n", + "print \"Favourable outcomes = 5*5+5*5 = \",5*5+5*5\n", + "print \"P = \",50./100" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.20, page no. 846" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability of A/B = AandB/B = 0.25\n", + "Probability of B/A = AandB/A = 0.333333333333\n", + "Probability of AandBnot = A−AandB = 0.166666666667\n", + "Probability of A/Bnot = AandBnot/Bnot = 0.25\n" + ] + } + ], + "source": [ + "A = 1./4\n", + "B = 1./3\n", + "AorB = 1./2\n", + "AandB = A+B-AorB\n", + "print \"Probability of A/B = AandB/B = \",AandB/B\n", + "print \"Probability of B/A = AandB/A = \",AandB/A\n", + "print \"Probability of AandBnot = A−AandB = \",A-AandB\n", + "print \"Probability of A/Bnot = AandBnot/Bnot = \",(1./6)/(1-1./3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.22, page no. 846" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability of A hitting target = 3/5\n", + "Probability of B hitting target = 2/5\n", + "Probability of C hitting target = 3/4\n", + "Probability that two shots hit = 3/5∗2/5∗(1−3/4)+2/5∗3/4∗(1−3/5)+3/4∗3/5∗(1−2/5) = \n", + "0.45\n" + ] + } + ], + "source": [ + "print \"Probability of A hitting target = 3/5\"\n", + "print \"Probability of B hitting target = 2/5\"\n", + "print \"Probability of C hitting target = 3/4\"\n", + "print \"Probability that two shots hit = 3/5∗2/5∗(1−3/4)+2/5∗3/4∗(1−3/5)+3/4∗3/5∗(1−2/5) = \"\n", + "print (3./5)*(2./5)*(1-3./4)+(2./5)*(3./4)*(1-3./5)+(3./4)*(3./5)*(1-2./5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.23, page no. 847" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability of problem not getting solved = 1/2∗2/3∗3/4 = 0.25\n", + "Probability of problem getting solved = 1−(1/2∗2/3∗3/4) = 0.75\n" + ] + } + ], + "source": [ + "print \"Probability of problem not getting solved = 1/2∗2/3∗3/4 = \",(1./2)*(2./3)*(3./4)\n", + "print \"Probability of problem getting solved = 1−(1/2∗2/3∗3/4) = \",1-((1./2)*(2./3)*(3./4))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.25, page no. 848" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total frequency=integrate(f,x,0,2) =\n", + "u1 about origin = 1\n", + "u2 about origin = 16/15\n", + "Standard deviation = (u2−u1ˆ2)ˆ0.5= 0.258198889747161\n", + "Mean deviation about the mean = (1/n)∗(integrate(|x−1|∗(xˆ3),x,0,1)+integrate(|x−1|∗((2−x)ˆ3),x,1,2))\n", + "1/5\n" + ] + } + ], + "source": [ + "import sympy\n", + "\n", + "print \"Total frequency=integrate(f,x,0,2) =\" \n", + "n = sympy.integrate('x**3',('x',0,1))+sympy.integrate('(2-x)**3',('x',1,2))\n", + "print \"u1 about origin = \",\n", + "u1 = (1/n)*(sympy.integrate('(x)*(x**3)',('x',0,1))+sympy.integrate('(x)*((2-x)**3)',('x',1,2)))\n", + "print u1\n", + "print \"u2 about origin = \",\n", + "u2 = (1/n)*(sympy.integrate('(x**2)*(x**3)',('x',0,1))+sympy.integrate('(x**2)*((2-x)**3)',('x',1,2)))\n", + "print u2\n", + "print \"Standard deviation = (u2−u1ˆ2)ˆ0.5= \",(u2-u1**2)**0.5\n", + "print \"Mean deviation about the mean = (1/n)∗(integrate(|x−1|∗(xˆ3),x,0,1)+integrate(|x−1|∗((2−x)ˆ3),x,1,2))\"\n", + "print (1/n)*(sympy.integrate('(1-x)*(x**3)',('x',0,1))+sympy.integrate('(x-1)*((2-x)**3)',('x',1,2)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.26, page no. 849" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability = (0.45∗0.03)/(0.45∗0.03+0.25∗0.05+0.3∗0.04 = 0.355263157895\n" + ] + } + ], + "source": [ + "print \"Probability = (0.45∗0.03)/(0.45∗0.03+0.25∗0.05+0.3∗0.04 = \",(0.45*0.03)/(0.45*0.03+0.25*0.05+0.3*0.04)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.27, page no. 849" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability = (1/3∗2/6∗3/5)/(1/3∗2/6∗3/5+1/3∗1/6∗2/5+1/3∗3/6∗1/5) = 1.05555555556\n" + ] + } + ], + "source": [ + "print \"Probability = (1/3∗2/6∗3/5)/(1/3∗2/6∗3/5+1/3∗1/6∗2/5+1/3∗3/6∗1/5) = \",\n", + "print ((1./3)*(2./6)*(3./5))/((1./3)*(2./6)*(3./5))+((1./3)*(1./6)*(2./5))+((1./3)*(3./6)*(1./5))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.28, page no. 850" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability of no success = 8/27 \n", + "Probability of a success = 1/3 \n", + "Probability of one success = 4/9\n", + "Probability of two success = 2/9\n", + "Probability of three success = 2/9\n", + "mean=sum of i∗pi = 1.0\n", + "sum of i∗piˆ2 = 1.66666666667\n", + "variance = (sum of i∗piˆ2)−1= 0.666666666667\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "print \"Probability of no success = 8/27 \"\n", + "print \"Probability of a success = 1/3 \"\n", + "print \"Probability of one success = 4/9\"\n", + "print \"Probability of two success = 2/9\"\n", + "print \"Probability of three success = 2/9\"\n", + "A = numpy.array([[0,1,2,3],[8./27,4./9,2./9,1./27]])\n", + "print \"mean=sum of i∗pi = \",\n", + "print A[0,0]*A[1,0]+A[0,1]*A[1,1]+A[0,3]*A[1,3]+A[0,2]*A[1,2]\n", + "print \"sum of i∗piˆ2 = \",\n", + "print A[0,0]**2*A[1,0]+A[0,1]**2*A[1,1]+A[0,3]**2*A[1,3]+A[0,2]**2*A[1,2]\n", + "print \"variance = (sum of i∗piˆ2)−1= \",\n", + "print A[0,0]**2*A[1,0]+A[0,1]**2*A[1,1]+A[0,3]**2*A[1,3]+A[0,2]**2*A[1,2]-1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.29, page no. 851" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sumof all pi = 1 \n", + "Hence ,\n", + "p(x<4) = 16.0*k\n", + "p(x>=5) = 24.0*k\n", + "p(3<x<=6) = 33.0*k\n", + "p(x<=2) = 9.0*k\n" + ] + } + ], + "source": [ + "import sympy,numpy\n", + "\n", + "k = sympy.Symbol('k')\n", + "A =numpy.array([[0,1,2,3,4,5,6],[k,3*k,5*k,7*k,9*k,11*k,13*k]])\n", + "print \"Sumof all pi = 1 \"\n", + "print \"Hence ,\"\n", + "k = 1./49\n", + "print \"p(x<4) = \",\n", + "a = A[1,0]+A[1,1]+A[1,3]+A[1,2]\n", + "print a.evalf()\n", + "print \"p(x>=5) = \",\n", + "b = A[1,5]+A[1,6]\n", + "print b.evalf()\n", + "print \"p(3<x<=6) = \",\n", + "c = A[1,4]+A[1,5]+A[1,6]\n", + "print c.evalf()\n", + "print \"p(x<=2) = \",\n", + "e = A[1,0]+A[1,1]+A[1,2]\n", + "print e.evalf()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.30, page no. 853" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Sum of all pi = 1\n", + "Hence,\n", + "p(x<6) = 2.0*k**2 + 10.0*k\n", + "p(x>=6) = 9.0*k**2 + k\n", + "p(3<x<5) = 8.0*k\n" + ] + } + ], + "source": [ + "import sympy,numpy,math\n", + "\n", + "k = sympy.Symbol('k')\n", + "A =numpy.array([[0,1,2,3,4,5,6,7],[0,k,2*k,2*k,3*k,k**2,2*k**2,7*k**2+ k]])\n", + "print \"Sum of all pi = 1\"\n", + "print \"Hence,\"\n", + "k = 1./10\n", + "print \"p(x<6) = \",\n", + "a = A[1,0]+A[1,1]+A[1,3]+A[1,2]+ A[1,3]+A[1,4]+A[1,6]\n", + "print a.evalf()\n", + "print \"p(x>=6) = \",\n", + "b = A[1,6]+A[1,7]\n", + "print b.evalf()\n", + "print \"p(3<x<5) = \",\n", + "c = A[1,1]+A[1,2]+A[1,3]+A[1,4]\n", + "print c.evalf()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.31, page no. 853" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Clearly, f>0 for every x in (1,2) and integrate(f,x,0,numpy.inf)= 1.00000000000000\n", + "Required probability=p(1<=x<=2)= integrate(f,x,1,2) = 0.232544157934830\n", + "Cumulative probability function f(2)=integrate(f,x,−%inf,2) = 0.864664716763387\n" + ] + } + ], + "source": [ + "import sympy,numpy,math\n", + "\n", + "y = sympy.Symbol('y')\n", + "f = math.e**(-y)\n", + "print \"Clearly, f>0 for every x in (1,2) and integrate(f,x,0,numpy.inf)= \",\n", + "print sympy.integrate(math.e**(-y),('y',0,sympy.oo))\n", + "print \"Required probability=p(1<=x<=2)= integrate(f,x,1,2) = \",\n", + "print sympy.integrate(math.e**(-y),('y',1,2))\n", + "print \"Cumulative probability function f(2)=integrate(f,x,−%inf,2) = \",\n", + "print sympy.integrate(math.e**(-y),('y',0,2))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.33, page no. 854" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total probability = integrate(f,x,0,6)=\n", + "2*k\n", + "4*k\n", + "2*k\n" + ] + } + ], + "source": [ + "import sympy\n", + "\n", + "k = sympy.Symbol('k')\n", + "print \"Total probability = integrate(f,x,0,6)=\"\n", + "p = sympy.integrate('k*x',('x',0,2))\n", + "q = sympy.integrate('2*k',('x',2,4))\n", + "r = sympy.integrate('-k*x+6*k',('x',4,6))\n", + "print p\n", + "print q\n", + "print r" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 34.34, page no. 854" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "First row of A displays the value of x\n", + "The second row of x displays the probability of corresponding to x\n", + "E(x) = 5.5\n", + "E(x)ˆ2 = 46.5\n", + "E(2∗x+1)^2=E(4∗xˆ2+4∗x+1) = 209.0\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.array([[-3.,6.,9.],[1./6,1./2,1./3]])\n", + "print \"First row of A displays the value of x\"\n", + "print \"The second row of x displays the probability of corresponding to x\"\n", + "print \"E(x) = \",\n", + "c = A[0,0]*A[1,0]+A[0,1]*A[1,1]+A[0,2]*A[1,2]\n", + "print c\n", + "print \"E(x)ˆ2 = \",\n", + "b = A[0,0]**2*A[1,0]+A[0,1]**2*A[1,1]+A[0,2]**2*A[1,2]\n", + "print b\n", + "print \"E(2∗x+1)^2=E(4∗xˆ2+4∗x+1) = \",4*b+4*c+1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.35, page no. 855" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total frequency=integrate(f,x,0,2)= \n", + "u1 about origin = \n", + "u2 about origin = \n", + "standard deviation = (u2−u1ˆ2)ˆ0.5 = 0.258198889747161\n", + "Mean deviation about the mean = (1/n)∗(integrate|x−1|∗(xˆ3),x,0,1)+integrate(|x−1|∗((2−x)ˆ3),x,1,2))\n", + "1/5\n" + ] + } + ], + "source": [ + "import sympy\n", + "\n", + "print \"Total frequency=integrate(f,x,0,2)= \"\n", + "n = sympy.integrate('x**3',('x',0,1))+sympy.integrate('(2-x)**3',('x',1,2))\n", + "print \"u1 about origin = \"\n", + "u1 = (1/n)*(sympy.integrate('(x)*(x**3)',('x',0,1))+sympy.integrate('(x)*((2-x)**3)',('x',1,2)))\n", + "print \"u2 about origin = \"\n", + "u2 = (1/n)*(sympy.integrate('(x**2)*(x**3)',('x',0,1))+sympy.integrate('(x**2)*((2-x)**3)',('x',1,2)))\n", + "print \"standard deviation = (u2−u1ˆ2)ˆ0.5 = \",(u2-u1**2)**0.5\n", + "print \"Mean deviation about the mean = (1/n)∗(integrate|x−1|∗(xˆ3),x,0,1)+integrate(|x−1|∗((2−x)ˆ3),x,1,2))\"\n", + "print (1/n)*(sympy.integrate('(1-x)*(x**3)',('x',0,1))+sympy.integrate('(x-1)*((2-x)**3)',('x',1,2)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.38, page no. 857" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Probability that exactly two will be defective = C(12,2)∗(0.1)ˆ2∗(0.9)ˆ10 = 0.230127770466\n", + "Probability that at least two will be defective = 1−(C(12,0)∗(0.9)ˆ12+C(12,1)∗(0.1)∗(0.9)ˆ11) = 0.340997748211\n", + "The probability that none will be defective = C(12,12)∗(0.9)ˆ12 = 0.282429536481\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "def C(a,b):\n", + " x = math.factorial(a)/(math.factorial(b)*math.factorial(a-b))\n", + " return x\n", + "print \"Probability that exactly two will be defective = C(12,2)∗(0.1)ˆ2∗(0.9)ˆ10 = \",C(12,2)*(0.1)**2*(0.9)**10\n", + "print \"Probability that at least two will be defective = 1−(C(12,0)∗(0.9)ˆ12+C(12,1)∗(0.1)∗(0.9)ˆ11) = \",\n", + "print 1-(C(12,0)*(0.9)**12+C(12,1)*(0.1)*(0.9)**11)\n", + "print \"The probability that none will be defective = C(12,12)∗(0.9)ˆ12 = \",C(12,12)*(0.9)**12" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.39, page no. 858" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability of 8 heads and 4 tail sin 12 trials = p(8) = C(12,8)∗(1/2)ˆ8∗(1/2)ˆ4= 0.120849609375\n", + "The expected no. of such cases in 256 sets = 256∗p(8) = 30.9375\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "def C(a,b):\n", + " x = math.factorial(a)/(math.factorial(b)*math.factorial(a-b))\n", + " return x\n", + "print \"Probability of 8 heads and 4 tail sin 12 trials = p(8) = C(12,8)∗(1/2)ˆ8∗(1/2)ˆ4= \",C(12.,8.)*(1./2)**8*(1./2)**4\n", + "print \"The expected no. of such cases in 256 sets = 256∗p(8) = \",256*(495./4096)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.40, page no. 859" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability of a defective part = 2/20 =0.1 \n", + "Probability of a non defective part = 0.9 \n", + "Probabaility of atleast three defectives in a sample = 0.323073194811\n", + "No. of sample shaving three defective parts = 1000∗0.323 = 323.0\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "def C(a,b):\n", + " x = math.factorial(a)/(math.factorial(b)*math.factorial(a-b))\n", + " return x\n", + "print \"Probability of a defective part = 2/20 =0.1 \"\n", + "print \"Probability of a non defective part = 0.9 \"\n", + "print \"Probabaility of atleast three defectives in a sample = \",\n", + "print 1-(C(20.,0.)*(0.9)**20+C(20.,1.)*(0.1)*(0.9)**19+C(20.,2.)*(0.1)**2*(0.9)**18)\n", + "print \"No. of sample shaving three defective parts = 1000∗0.323 = \",1000*0.323" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11+" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter35_2.ipynb b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter35_2.ipynb new file mode 100644 index 00000000..5ca46e4e --- /dev/null +++ b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter35_2.ipynb @@ -0,0 +1,536 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 35 : Sampling And Inference" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 35.1, page no. 864" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Suppose the coin is unbiased\n", + "Then probability of getting the head in a toss = 1/2 \n", + "Then, expected no. of successes = a = 1/2∗400\n", + "Observed no. of successes = 216\n", + "The excess of observed value over expected value = 216\n", + "S. D. of simple sampling = (n∗p∗q)ˆ0.5 = c \n", + "Hence, z = (b−a)/c = 21.6\n", + "As z<1.96, the hypothesis is accepted at 5% level of significance\n" + ] + } + ], + "source": [ + "print \"Suppose the coin is unbiased\"\n", + "print \"Then probability of getting the head in a toss = 1/2 \"\n", + "print \"Then, expected no. of successes = a = 1/2∗400\"\n", + "a = 1/2*400\n", + "print \"Observed no. of successes = 216\"\n", + "b = 216\n", + "print \"The excess of observed value over expected value = \",b-a\n", + "print \"S. D. of simple sampling = (n∗p∗q)ˆ0.5 = c \"\n", + "c = (400*0.5*0.5)**0.5\n", + "print \"Hence, z = (b−a)/c = \",(b-a)/c\n", + "print \"As z<1.96, the hypothesis is accepted at 5% level of significance\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 35.2, page no. 865" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Suppose the die is unbiased \n", + "Then probability of getting 5 or 6 with one die=1/3 \n", + "Then, expected no. of successes = a = 1/3∗9000 \n", + "Observed no. of successes = 3240\n", + "The excess of observed value over expected value = 240.0\n", + "S. D. of simple sampling = (n∗p∗q)ˆ0.5=c\n", + "Hence, z = (b−a)/c = 5.366563146\n", + "As z>2.58, the hypothesis has to be rejected at 1% level of significance\n" + ] + } + ], + "source": [ + "print \"Suppose the die is unbiased \"\n", + "print \"Then probability of getting 5 or 6 with one die=1/3 \"\n", + "print \"Then, expected no. of successes = a = 1/3∗9000 \"\n", + "a = 1./3*9000\n", + "print \"Observed no. of successes = 3240\"\n", + "b = 3240\n", + "print \"The excess of observed value over expected value = \",b-a\n", + "print \"S. D. of simple sampling = (n∗p∗q)ˆ0.5=c\"\n", + "c = (9000*(1./3)*(2./3))**0.5\n", + "print \"Hence, z = (b−a)/c = \",(b-a)/c\n", + "print \"As z>2.58, the hypothesis has to be rejected at 1% level of significance\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 35.3, page no. 865" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "q = 1−p \n", + "Standard error of the population of families having a monthly income of rs. 250 or less=(p∗q/n)ˆ0.5 = 0.0148442858929\n", + "Hence taking 103/420 to be the estimate of families having a monthly income of rs. 250 or less, the limits are 20% and 29% approximately\n" + ] + } + ], + "source": [ + "p = 206./840\n", + "print \"q = 1−p \"\n", + "q = 1-p\n", + "n = 840\n", + "print \"Standard error of the population of families having a monthly income of rs. 250 or less=(p∗q/n)ˆ0.5 = \",(p*q/n)**0.5\n", + "print \"Hence taking 103/420 to be the estimate of families having a monthly income of rs. 250 or less, the limits are 20% and 29% approximately\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 35.4, page no. 866" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "p=(n1∗p1+n2∗p2)/(n1+n2)\n", + "0.1904\n", + "q = 1−p \n", + "0.8096\n", + "e=(p∗q∗(1/n1+1/n2))ˆ0.5\n", + "0.0163590274093\n", + "z = 0.916924926202\n", + "As z<1, the difference between the proportions is not significant. \n" + ] + } + ], + "source": [ + "n1 = 900\n", + "n2 = 1600\n", + "p1 = 20./100\n", + "p2 = 18.5/100\n", + "print \"p=(n1∗p1+n2∗p2)/(n1+n2)\"\n", + "p = (n1*p1+n2*p2)/(n1+n2)\n", + "print p\n", + "print \"q = 1−p \"\n", + "q = 1-p\n", + "print q\n", + "print \"e=(p∗q∗(1/n1+1/n2))ˆ0.5\"\n", + "e = (p*q*((1./n1)+(1./n2)))**0.5\n", + "print e\n", + "z = (p1-p2)/e\n", + "print \"z = \",z\n", + "print \"As z<1, the difference between the proportions is not significant. \"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 35.5, page no. 867" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "q1 = 1−p1 \n", + "q2=1−p2\n", + "e=((p1∗q1/n1)+(p2*q2/n2))ˆ0.5\n", + "Hence, it is likely that real difference will be hidden.\n" + ] + } + ], + "source": [ + "p1 = 0.3\n", + "p2 = 0.25\n", + "print \"q1 = 1−p1 \"\n", + "q1 = 1-p1\n", + "print \"q2=1−p2\"\n", + "q2 = 1-p2\n", + "n1 = 1200\n", + "n2 = 900\n", + "print \"e=((p1∗q1/n1)+(p2*q2/n2))ˆ0.5\"\n", + "e = ((p1*q1/n1)+(p2*q2/n2))**0.5\n", + "z = (p1-p2)/e\n", + "print \"Hence, it is likely that real difference will be hidden.\" " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 35.6, page no. 868" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "m and n represents mean and number of objects in sample respectively \n", + "z=(m−M)/(d/(nˆ0.5)\n", + "z = 2.7950310559\n", + "As z>1.96, it cannot be regarded as a random sample\n" + ] + } + ], + "source": [ + "print \"m and n represents mean and number of objects in sample respectively \"\n", + "m = 3.4\n", + "n = 900.\n", + "M = 3.25\n", + "d = 1.61\n", + "print \"z=(m−M)/(d/(nˆ0.5)\"\n", + "z = (m-M)/(d/(n**0.5))\n", + "print \"z = \",z\n", + "print \"As z>1.96, it cannot be regarded as a random sample\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 35.9, page no. 871" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "m1 and n1 represents mean and no. of objects in sample 1\n", + "m2 and n2 represents mean and no. of objects in sample 2\n", + "On the hypothesis that the samples are drawn from the same population of d = 2.5, we get\n", + "z = -5.16397779494\n", + "Since |z|>1.96, thus samples cannot be regarded as drawn from the same population\n" + ] + } + ], + "source": [ + "print \"m1 and n1 represents mean and no. of objects in sample 1\"\n", + "print \"m2 and n2 represents mean and no. of objects in sample 2\"\n", + "m1 = 67.5\n", + "m2 = 68.\n", + "n1 = 1000.\n", + "n2 = 2000.\n", + "d = 2.5\n", + "print \"On the hypothesis that the samples are drawn from the same population of d = 2.5, we get\"\n", + "z = (m1-m2)/(d*((1/n1)+(1/n2))**0.5)\n", + "print \"z = \",z\n", + "print \"Since |z|>1.96, thus samples cannot be regarded as drawn from the same population\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 35.10, page no. 872" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "m1, d1 and n1 denotes mean, deviation and no.of objects in first sample \n", + "m2, d2 and n2 denotes mean, deviation and no.of objects in second sample\n", + "S. E. of the difference of the mean heights is 0.0703246933872\n", + "-0.7\n", + "|m1−m2|>10e, this is highly significant. hence, the data indicates that the sailors are on the average taller than the soldiers.\n" + ] + } + ], + "source": [ + "print \"m1, d1 and n1 denotes mean, deviation and no.of objects in first sample \"\n", + "m1 = 67.85\n", + "d1 = 2.56\n", + "n1 = 6400.\n", + "print \"m2, d2 and n2 denotes mean, deviation and no.of objects in second sample\"\n", + "m2 = 68.55\n", + "d2 = 2.52\n", + "n2 = 1600.\n", + "print \"S. E. of the difference of the mean heights is \",\n", + "e = ((d**2/n1)+(d2**2/n2))**0.5\n", + "print e\n", + "print m1-m2\n", + "print \"|m1−m2|>10e, this is highly significant. hence, the data indicates that the sailors are on the average taller than the soldiers.\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 35.12, page no. 874" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "First of row denotes the different values of sample \n", + "The second row denotes the corresponding deviation\n", + "The third row denotes the corresponding square of deviation\n", + "The sum of second row elements = 10.0\n", + "The sum of third row elements = 66.0\n", + "let m be the mean \n", + "let d be the standard deviation\n", + "1.84522581263\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.zeros((3,9))\n", + "n = 9\n", + "print \"First of row denotes the different values of sample \"\n", + "A[0,:] = [45,47,50,52,48,47,49,53,51]\n", + "print \"The second row denotes the corresponding deviation\"\n", + "for i in range(0,9):\n", + " A[1,i] = A[0,i]-48\n", + "print \"The third row denotes the corresponding square of deviation\"\n", + "for i in range(0,9):\n", + " A[2,i] = A[1,i]**2\n", + "print \"The sum of second row elements = \",\n", + "a =0\n", + "for i in range(0,9):\n", + " a = a+A[1,i]\n", + "print a\n", + "print \"The sum of third row elements = \",\n", + "b = 0\n", + "for i in range(0,9):\n", + " b = b+A[2,i]\n", + "print b\n", + "print \"let m be the mean \"\n", + "m = 48+a/n\n", + "print \"let d be the standard deviation\"\n", + "d = ((b/n)-(a/n)**2)**0.5\n", + "t = (m-47.5)*(n-1)**0.5/d\n", + "print t" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 35.13, page no. 876" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "d and n represents the deviation and no. objects in given sample\n", + "Taking the hypothesis that the product is not inferior i.e. there is no significant difference between m and M\n", + "3.15\n", + "Degrees of freedom= \n", + "9.0\n" + ] + } + ], + "source": [ + "print \"d and n represents the deviation and no. objects in given sample\"\n", + "n = 10.\n", + "d = 0.04\n", + "m = 0.742\n", + "M = 0.700\n", + "print \"Taking the hypothesis that the product is not inferior i.e. there is no significant difference between m and M\"\n", + "t = (m-M)*(n-1)**0.5/d\n", + "print t\n", + "print \"Degrees of freedom= \"\n", + "f = n-1\n", + "print f" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 34.15, page no. 878" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The first row denotes the boy no. \n", + "The second row denotes the marks in test I(x1)\n", + "The third row denotes the marks in test I(x2)\n", + "The fourth row denotes the difference of marks in two tests(d)\n", + "The fifth row denotes the (d−1)\n", + "The sixth row denotes the square of elements of fourth row \n", + "[[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.]\n", + " [ 23. 20. 19. 21. 18. 20. 18. 17. 23. 16. 19.]\n", + " [ 24. 19. 22. 18. 20. 22. 20. 20. 23. 20. 17.]\n", + " [ 1. -1. 3. -3. 2. 2. 2. 3. 0. 4. -2.]\n", + " [ 0. -2. 2. -4. 1. 1. 1. 2. -1. 3. -3.]\n", + " [ 1. 1. 9. 9. 4. 4. 4. 9. 0. 16. 4.]]\n", + "The sum of elements of fourth row=\n", + "11.0\n", + "The sum of elements of sixth row= \n", + "61.0\n", + "Standard deviation\n", + "d = 2.46981780705\n", + "t = 1.48063606712\n" + ] + } + ], + "source": [ + "import numpy\n", + "\n", + "A = numpy.zeros((6,11))\n", + "n = 11\n", + "print \"The first row denotes the boy no. \"\n", + "A[0,:] = [1,2,3,4,5,6,7,8,9,10,11]\n", + "print \"The second row denotes the marks in test I(x1)\"\n", + "A[1,:] = [23,20,19,21,18,20,18,17,23,16,19]\n", + "print \"The third row denotes the marks in test I(x2)\"\n", + "A[2,:] = [24,19,22,18,20,22,20,20,23,20,17]\n", + "print \"The fourth row denotes the difference of marks in two tests(d)\"\n", + "for i in range (0,11):\n", + " A[3,i] = A[2,i]-A[1,i]\n", + "print \"The fifth row denotes the (d−1)\"\n", + "for i in range (0,11):\n", + " A[4,i] = A[3,i]-1\n", + "print \"The sixth row denotes the square of elements of fourth row \"\n", + "for i in range(0,11):\n", + " A[5,i] = A[3,i]**2\n", + "print A\n", + "a = 0\n", + "print \"The sum of elements of fourth row=\"\n", + "for i in range(0,11):\n", + " a = a+A[3,i]\n", + "print a\n", + "b = 0\n", + "print \"The sum of elements of sixth row= \"\n", + "for i in range(0,11):\n", + " b = b + A[5,i]\n", + "print b\n", + "print \"Standard deviation\"\n", + "d = (b/(n-1))**0.5\n", + "t = (1-0)*(n)**0.5/2.24\n", + "print \"d = \",d\n", + "print \"t = \",t" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter4_2.ipynb b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter4_2.ipynb new file mode 100644 index 00000000..e40044d7 --- /dev/null +++ b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter4_2.ipynb @@ -0,0 +1,1208 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 4: Diffrentiations And Applications" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 4.1, page no. 133" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "We have to find yn for F=cosxcos2xcos3x\n", + "Enter the order of differentiation: 0\n", + "calculating yn..\n", + "The expression for yn is\n", + "cos(x)*cos(2*x)*cos(3*x)\n" + ] + } + ], + "source": [ + "import sympy\n", + "import numpy\n", + "import math\n", + "\n", + "print \"We have to find yn for F=cosxcos2xcos3x\"\n", + "x = sympy.Symbol('x')\n", + "F = sympy.cos(x)*sympy.cos(2*x)*sympy.cos(3*x)\n", + "n = int(raw_input(\"Enter the order of differentiation: \"))\n", + "print \"calculating yn..\"\n", + "yn= sympy.diff(F,x,n)\n", + "print \"The expression for yn is\"\n", + "print yn " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.5, page no. 137" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "we have to find yn for F=cosxcos2xcos3x\n", + "Enter the order of differentiation: 0\n", + "calculating yn\n", + "The expression for yn is\n", + "x/((x - 1)*(2*x + 3))\n" + ] + } + ], + "source": [ + "import sympy\n", + "\n", + "print 'we have to find yn for F=cosxcos2xcos3x'\n", + "x = sympy.Symbol('x')\n", + "F = x/((x-1)*(2*x+3))\n", + "n = int(raw_input(\"Enter the order of differentiation: \"))\n", + "print \"calculating yn\"\n", + "yn= sympy.diff(F,x,n)\n", + "print \"The expression for yn is\"\n", + "print yn" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.6, page no. 138" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "We have to find yn for F=cosxcos2xcos3x\n", + "Enter the orde of differentiation:0\n", + "calculating yn\n", + "the expression for yn is\n", + "x/(a**2 + x**2)\n" + ] + } + ], + "source": [ + "import sympy\n", + "\n", + "print \"We have to find yn for F=cosxcos2xcos3x\"\n", + "x = sympy.Symbol('x')\n", + "a = sympy.Symbol('a')\n", + "F = x/(x**2+a**2)\n", + "n = raw_input (\"Enter the orde of differentiation:\")\n", + "print \"calculating yn\"\n", + "yn = diff(F,x,n)\n", + "print \"the expression for yn is\"\n", + "print yn" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.7, page no. 139" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "we have to find yn for F=cosxcos2xcos3x\n", + "Enter the order of differentiation: 0\n", + "calculating yn\n", + "the expression for yn is\n", + "2.71828182845905**x*(2*x + 3)**3\n" + ] + } + ], + "source": [ + "import sympy, math\n", + "\n", + "print \"we have to find yn for F=cosxcos2xcos3x\"\n", + "x = sympy.Symbol('x')\n", + "a = sympy.Symbol('a')\n", + "F = math.e**(x)*(2*x+3)**3\n", + "n = raw_input (\"Enter the order of differentiation: \")\n", + "print \"calculating yn\"\n", + "yn = diff(F,x,n)\n", + "print \"the expression for yn is\"\n", + "print yn" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.8, page no. 139" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "y=(sinˆ-1)x) --sign inverse x\n", + "we have to prove (1-xˆ2)y(n+2)-(2n+1)xy(n+1)-nˆ2 yn\n", + "Calculating yn for various values of n\n", + "1\n", + "The expression for yn is\n", + "-6*x*(x*asin(x)/(-x**2 + 1)**(3/2) - 1/(x**2 - 1)) - 2*(a**2 + 1)*asin(x)/sqrt(-x**2 + 1) + 2*(-x**2 + 1)*(3*x**2*asin(x)/(-x**2 + 1)**(5/2) + 3*x/(x**2 - 1)**2 + asin(x)/(-x**2 + 1)**(3/2))\n", + "Which is equal to 0\n", + "2\n", + "The expression for yn is\n", + "-10*x*(3*x**2*asin(x)/(-x**2 + 1)**(5/2) + 3*x/(x**2 - 1)**2 + asin(x)/(-x**2 + 1)**(3/2)) - 2*(a**2 + 4)*(x*asin(x)/(-x**2 + 1)**(3/2) - 1/(x**2 - 1)) + 2*(-x**2 + 1)*(15*x**3*asin(x)/(-x**2 + 1)**(7/2) - 15*x**2/(x**2 - 1)**3 + 9*x*asin(x)/(-x**2 + 1)**(5/2) + 4/(x**2 - 1)**2)\n", + "Which is equal to 0\n", + "3\n", + "The expression for yn is\n", + "-14*x*(15*x**3*asin(x)/(-x**2 + 1)**(7/2) - 15*x**2/(x**2 - 1)**3 + 9*x*asin(x)/(-x**2 + 1)**(5/2) + 4/(x**2 - 1)**2) - 2*(a**2 + 9)*(3*x**2*asin(x)/(-x**2 + 1)**(5/2) + 3*x/(x**2 - 1)**2 + asin(x)/(-x**2 + 1)**(3/2)) + 2*(-x**2 + 1)*(105*x**4*asin(x)/(-x**2 + 1)**(9/2) + 105*x**3/(x**2 - 1)**4 + 90*x**2*asin(x)/(-x**2 + 1)**(7/2) - 55*x/(x**2 - 1)**3 + 9*asin(x)/(-x**2 + 1)**(5/2))\n", + "Which is equal to 0\n", + "4\n", + "The expression for yn is\n", + "-18*x*(105*x**4*asin(x)/(-x**2 + 1)**(9/2) + 105*x**3/(x**2 - 1)**4 + 90*x**2*asin(x)/(-x**2 + 1)**(7/2) - 55*x/(x**2 - 1)**3 + 9*asin(x)/(-x**2 + 1)**(5/2)) - 2*(a**2 + 16)*(15*x**3*asin(x)/(-x**2 + 1)**(7/2) - 15*x**2/(x**2 - 1)**3 + 9*x*asin(x)/(-x**2 + 1)**(5/2) + 4/(x**2 - 1)**2) + 2*(-x**2 + 1)*(945*x**5*asin(x)/(-x**2 + 1)**(11/2) - 945*x**4/(x**2 - 1)**5 + 1050*x**3*asin(x)/(-x**2 + 1)**(9/2) + 735*x**2/(x**2 - 1)**4 + 225*x*asin(x)/(-x**2 + 1)**(7/2) - 64/(x**2 - 1)**3)\n", + "Which is equal to 0\n", + "Hence Proved\n" + ] + } + ], + "source": [ + "import sympy\n", + "\n", + "print 'y=(sinˆ-1)x) --sign inverse x'\n", + "x = sympy.Symbol('x')\n", + "a = sympy.Symbol('a')\n", + "y = (sympy.asin(x))**2;\n", + "print 'we have to prove (1-xˆ2)y(n+2)-(2n+1)xy(n+1)-nˆ2 yn'\n", + "print 'Calculating yn for various values of n'\n", + "for n in range(1,5):\n", + " F=(1-x**2)*sympy.diff(y,x,n+2)-(2*n+1)*x*sympy.diff(y,x,n+1)-(n**2+a**2)*sympy.diff(y,x,n)\n", + " print n\n", + " print 'The expression for yn is'\n", + " print F\n", + " print 'Which is equal to 0'\n", + "print 'Hence Proved'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.9, page no. 140" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "y=eˆ(a(sinˆ-1)x))--sign inverse x\n", + "We have to prove (1-xˆ2)y(n+2)-(2n+1)xy(n+1)-(nˆ2+aˆ2)yn\n", + "Calculating yn for various values of n\n", + "1\n", + "The expression for yn is\n", + "-3.0*2.71828182845905**(a*asin(x))*a*x*(-a/(x**2 - 1) + x/(-x**2 + 1)**(3/2)) - 1.0*2.71828182845905**(a*asin(x))*a*(a**2 + 1)/sqrt(-x**2 + 1) + 2.71828182845905**(a*asin(x))*a*(-x**2 + 1)*(1.0*a**2/(-x**2 + 1)**(3/2) + 3.0*a*x/(x**2 - 1)**2 + 3.0*x**2/(-x**2 + 1)**(5/2) + 1.0/(-x**2 + 1)**(3/2))\n", + "Which is equal to 0\n", + "2\n", + "The expression for yn is\n", + "-5*2.71828182845905**(a*asin(x))*a*x*(1.0*a**2/(-x**2 + 1)**(3/2) + 3.0*a*x/(x**2 - 1)**2 + 3.0*x**2/(-x**2 + 1)**(5/2) + 1.0/(-x**2 + 1)**(3/2)) - 1.0*2.71828182845905**(a*asin(x))*a*(a**2 + 4)*(-a/(x**2 - 1) + x/(-x**2 + 1)**(3/2)) + 2.71828182845905**(a*asin(x))*a*(-x**2 + 1)*(1.0*a**3/(x**2 - 1)**2 + 6.0*a**2*x/(-x**2 + 1)**(5/2) - 15.0*a*x**2/(x**2 - 1)**3 + 4.0*a/(x**2 - 1)**2 + 15.0*x**3/(-x**2 + 1)**(7/2) + 9.0*x/(-x**2 + 1)**(5/2))\n", + "Which is equal to 0\n", + "3\n", + "The expression for yn is\n", + "-7*2.71828182845905**(a*asin(x))*a*x*(1.0*a**3/(x**2 - 1)**2 + 6.0*a**2*x/(-x**2 + 1)**(5/2) - 15.0*a*x**2/(x**2 - 1)**3 + 4.0*a/(x**2 - 1)**2 + 15.0*x**3/(-x**2 + 1)**(7/2) + 9.0*x/(-x**2 + 1)**(5/2)) - 2.71828182845905**(a*asin(x))*a*(a**2 + 9)*(1.0*a**2/(-x**2 + 1)**(3/2) + 3.0*a*x/(x**2 - 1)**2 + 3.0*x**2/(-x**2 + 1)**(5/2) + 1.0/(-x**2 + 1)**(3/2)) + 2.71828182845905**(a*asin(x))*a*(-x**2 + 1)*(1.0*a**4/(-x**2 + 1)**(5/2) - 10.0*a**3*x/(x**2 - 1)**3 + 45.0*a**2*x**2/(-x**2 + 1)**(7/2) + 10.0*a**2/(-x**2 + 1)**(5/2) + 105.0*a*x**3/(x**2 - 1)**4 - 55.0*a*x/(x**2 - 1)**3 + 105.0*x**4/(-x**2 + 1)**(9/2) + 90.0*x**2/(-x**2 + 1)**(7/2) + 9.0/(-x**2 + 1)**(5/2))\n", + "Which is equal to 0\n", + "4\n", + "The expression for yn is\n", + "-9*2.71828182845905**(a*asin(x))*a*x*(1.0*a**4/(-x**2 + 1)**(5/2) - 10.0*a**3*x/(x**2 - 1)**3 + 45.0*a**2*x**2/(-x**2 + 1)**(7/2) + 10.0*a**2/(-x**2 + 1)**(5/2) + 105.0*a*x**3/(x**2 - 1)**4 - 55.0*a*x/(x**2 - 1)**3 + 105.0*x**4/(-x**2 + 1)**(9/2) + 90.0*x**2/(-x**2 + 1)**(7/2) + 9.0/(-x**2 + 1)**(5/2)) - 2.71828182845905**(a*asin(x))*a*(a**2 + 16)*(1.0*a**3/(x**2 - 1)**2 + 6.0*a**2*x/(-x**2 + 1)**(5/2) - 15.0*a*x**2/(x**2 - 1)**3 + 4.0*a/(x**2 - 1)**2 + 15.0*x**3/(-x**2 + 1)**(7/2) + 9.0*x/(-x**2 + 1)**(5/2)) + 2.71828182845905**(a*asin(x))*a*(-x**2 + 1)*(-1.0*a**5/(x**2 - 1)**3 + 15.0*a**4*x/(-x**2 + 1)**(7/2) + 105.0*a**3*x**2/(x**2 - 1)**4 - 20.0*a**3/(x**2 - 1)**3 + 420.0*a**2*x**3/(-x**2 + 1)**(9/2) + 195.0*a**2*x/(-x**2 + 1)**(7/2) - 945.0*a*x**4/(x**2 - 1)**5 + 735.0*a*x**2/(x**2 - 1)**4 - 64.0*a/(x**2 - 1)**3 + 945.0*x**5/(-x**2 + 1)**(11/2) + 1050.0*x**3/(-x**2 + 1)**(9/2) + 225.0*x/(-x**2 + 1)**(7/2))\n", + "Which is equal to 0\n", + "Hence proved\n" + ] + } + ], + "source": [ + "import sympy, math\n", + "\n", + "print 'y=eˆ(a(sinˆ-1)x))--sign inverse x'\n", + "x = sympy.Symbol('x')\n", + "a = sympy.Symbol('a')\n", + "y = math.e**(a*(sympy.asin(x)))\n", + "print 'We have to prove (1-xˆ2)y(n+2)-(2n+1)xy(n+1)-(nˆ2+aˆ2)yn'\n", + "print 'Calculating yn for various values of n'\n", + "for n in range(1,5):\n", + " F =(1-x**2)*sympy.diff(y,x,n+2)-(2*n+1)*x*sympy.diff(y,x,n+1)-(n**2+a**2)*sympy.diff(y,x,n)\n", + " print n\n", + " print 'The expression for yn is'\n", + " print F\n", + " print 'Which is equal to 0'\n", + "print 'Hence proved'\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.10, page no. 141" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "y^(1/m)+y^-(1/m)=2x\n", + "OR y^(2/m)-2xy^(1/m)+1\n", + "OR y=[ x+(xˆ2-1)]ˆm and y=[x-(xˆ2 −1)]ˆm\n", + "For y=[x+(xˆ2−1)]ˆm\n", + "We have to prove (xˆ2−1)y(n+2)+(2n+1)xy(n+1)+(nˆ2−mˆ2)yn\n", + "Calculating various values for yn\n", + "1\n", + "The expression for yn is\n", + "3*m*x*(x**2 + x - 1)**m*(m*(2*x + 1)**2/(x**2 + x - 1) - (2*x + 1)**2/(x**2 + x - 1) + 2)/(x**2 + x - 1) + m*(-m**2 + 1)*(2*x + 1)*(x**2 + x - 1)**m/(x**2 + x - 1) + m*(2*x + 1)*(x**2 - 1)*(x**2 + x - 1)**m*(m**2*(2*x + 1)**2/(x**2 + x - 1) - 3*m*(2*x + 1)**2/(x**2 + x - 1) + 6*m + 2*(2*x + 1)**2/(x**2 + x - 1) - 6)/(x**2 + x - 1)**2\n", + "Which is equal to 0\n", + "2\n", + "The expression for yn is\n", + "5*m*x*(2*x + 1)*(x**2 + x - 1)**m*(m**2*(2*x + 1)**2/(x**2 + x - 1) - 3*m*(2*x + 1)**2/(x**2 + x - 1) + 6*m + 2*(2*x + 1)**2/(x**2 + x - 1) - 6)/(x**2 + x - 1)**2 + m*(-m**2 + 4)*(x**2 + x - 1)**m*(m*(2*x + 1)**2/(x**2 + x - 1) - (2*x + 1)**2/(x**2 + x - 1) + 2)/(x**2 + x - 1) + m*(x**2 - 1)*(x**2 + x - 1)**m*(m**3*(2*x + 1)**4/(x**2 + x - 1)**2 - 6*m**2*(2*x + 1)**4/(x**2 + x - 1)**2 + 12*m**2*(2*x + 1)**2/(x**2 + x - 1) + 11*m*(2*x + 1)**4/(x**2 + x - 1)**2 - 36*m*(2*x + 1)**2/(x**2 + x - 1) + 12*m - 6*(2*x + 1)**4/(x**2 + x - 1)**2 + 24*(2*x + 1)**2/(x**2 + x - 1) - 12)/(x**2 + x - 1)**2\n", + "Which is equal to 0\n", + "3\n", + "The expression for yn is\n", + "7*m*x*(x**2 + x - 1)**m*(m**3*(2*x + 1)**4/(x**2 + x - 1)**2 - 6*m**2*(2*x + 1)**4/(x**2 + x - 1)**2 + 12*m**2*(2*x + 1)**2/(x**2 + x - 1) + 11*m*(2*x + 1)**4/(x**2 + x - 1)**2 - 36*m*(2*x + 1)**2/(x**2 + x - 1) + 12*m - 6*(2*x + 1)**4/(x**2 + x - 1)**2 + 24*(2*x + 1)**2/(x**2 + x - 1) - 12)/(x**2 + x - 1)**2 + m*(-m**2 + 9)*(2*x + 1)*(x**2 + x - 1)**m*(m**2*(2*x + 1)**2/(x**2 + x - 1) - 3*m*(2*x + 1)**2/(x**2 + x - 1) + 6*m + 2*(2*x + 1)**2/(x**2 + x - 1) - 6)/(x**2 + x - 1)**2 + m*(2*x + 1)*(x**2 - 1)*(x**2 + x - 1)**m*(m**4*(2*x + 1)**4/(x**2 + x - 1)**2 - 10*m**3*(2*x + 1)**4/(x**2 + x - 1)**2 + 20*m**3*(2*x + 1)**2/(x**2 + x - 1) + 35*m**2*(2*x + 1)**4/(x**2 + x - 1)**2 - 120*m**2*(2*x + 1)**2/(x**2 + x - 1) + 60*m**2 - 50*m*(2*x + 1)**4/(x**2 + x - 1)**2 + 220*m*(2*x + 1)**2/(x**2 + x - 1) - 180*m + 24*(2*x + 1)**4/(x**2 + x - 1)**2 - 120*(2*x + 1)**2/(x**2 + x - 1) + 120)/(x**2 + x - 1)**3\n", + "Which is equal to 0\n", + "4\n", + "The expression for yn is\n", + "9*m*x*(2*x + 1)*(x**2 + x - 1)**m*(m**4*(2*x + 1)**4/(x**2 + x - 1)**2 - 10*m**3*(2*x + 1)**4/(x**2 + x - 1)**2 + 20*m**3*(2*x + 1)**2/(x**2 + x - 1) + 35*m**2*(2*x + 1)**4/(x**2 + x - 1)**2 - 120*m**2*(2*x + 1)**2/(x**2 + x - 1) + 60*m**2 - 50*m*(2*x + 1)**4/(x**2 + x - 1)**2 + 220*m*(2*x + 1)**2/(x**2 + x - 1) - 180*m + 24*(2*x + 1)**4/(x**2 + x - 1)**2 - 120*(2*x + 1)**2/(x**2 + x - 1) + 120)/(x**2 + x - 1)**3 + m*(-m**2 + 16)*(x**2 + x - 1)**m*(m**3*(2*x + 1)**4/(x**2 + x - 1)**2 - 6*m**2*(2*x + 1)**4/(x**2 + x - 1)**2 + 12*m**2*(2*x + 1)**2/(x**2 + x - 1) + 11*m*(2*x + 1)**4/(x**2 + x - 1)**2 - 36*m*(2*x + 1)**2/(x**2 + x - 1) + 12*m - 6*(2*x + 1)**4/(x**2 + x - 1)**2 + 24*(2*x + 1)**2/(x**2 + x - 1) - 12)/(x**2 + x - 1)**2 + m*(x**2 - 1)*(x**2 + x - 1)**m*(m**5*(2*x + 1)**6/(x**2 + x - 1)**3 - 15*m**4*(2*x + 1)**6/(x**2 + x - 1)**3 + 30*m**4*(2*x + 1)**4/(x**2 + x - 1)**2 + 85*m**3*(2*x + 1)**6/(x**2 + x - 1)**3 - 300*m**3*(2*x + 1)**4/(x**2 + x - 1)**2 + 180*m**3*(2*x + 1)**2/(x**2 + x - 1) - 225*m**2*(2*x + 1)**6/(x**2 + x - 1)**3 + 1050*m**2*(2*x + 1)**4/(x**2 + x - 1)**2 - 1080*m**2*(2*x + 1)**2/(x**2 + x - 1) + 120*m**2 + 274*m*(2*x + 1)**6/(x**2 + x - 1)**3 - 1500*m*(2*x + 1)**4/(x**2 + x - 1)**2 + 1980*m*(2*x + 1)**2/(x**2 + x - 1) - 360*m - 120*(2*x + 1)**6/(x**2 + x - 1)**3 + 720*(2*x + 1)**4/(x**2 + x - 1)**2 - 1080*(2*x + 1)**2/(x**2 + x - 1) + 240)/(x**2 + x - 1)**3\n", + "Which is equal to 0\n", + "Hence Proved\n" + ] + } + ], + "source": [ + "import sympy\n", + "\n", + "print 'y^(1/m)+y^-(1/m)=2x'\n", + "print 'OR y^(2/m)-2xy^(1/m)+1'\n", + "print 'OR y=[ x+(xˆ2-1)]ˆm and y=[x-(xˆ2 −1)]ˆm'\n", + "x = sympy.Symbol('x')\n", + "m = sympy.Symbol('m')\n", + "print 'For y=[x+(xˆ2−1)]ˆm'\n", + "y=(x+(x**2-1))**m\n", + "print 'We have to prove (xˆ2−1)y(n+2)+(2n+1)xy(n+1)+(nˆ2−mˆ2)yn'\n", + "print 'Calculating various values for yn'\n", + "for n in range(1,5):\n", + " F=(x**2-1)*sympy.diff(y,x,n+2)+(2*n+1)*x*sympy.diff(y,x,n+1)+(n**2-m**2)*sympy.diff(y,x,n)\n", + " print n\n", + " print 'The expression for yn is'\n", + " print F\n", + " print 'Which is equal to 0'\n", + "print 'Hence Proved'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.11, page no. 144" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "For roles theorem F9x should be differentiable in (a, b) and f(a)=f(b)\n", + "Here f(x)=sin(x)/e^x\n", + "-1.0*2.71828182845905**(-x)*sin(x) + 2.71828182845905**(-x)*cos(x)\n", + "Putting this to zero we get tan(x)=1 ie x=pi/4\n", + "Value pi/2 lies b/w 0 and pi. Hence roles theroem is verified\n" + ] + } + ], + "source": [ + "import sympy, math\n", + "\n", + "print 'For roles theorem F9x should be differentiable in (a, b) and f(a)=f(b)'\n", + "print 'Here f(x)=sin(x)/e^x'\n", + "x = sympy.Symbol('x')\n", + "y = sympy.sin(x)/math.e**x\n", + "y1 = sympy.diff(y,x)\n", + "print y1\n", + "print 'Putting this to zero we get tan(x)=1 ie x=pi/4'\n", + "print 'Value pi/2 lies b/w 0 and pi. Hence roles theroem is verified'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.16 page no. 149" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Maclaurin's Series\n", + "f(x)=f(0)+xf1(0)+xˆ2/2!∗f2(0)+xˆ3/3!∗f3(0)+......\n", + "Enter the orde of differentiation: 6\n", + "-I*x**5*atanh(sqrt(-sqrt(105)/30 + 1/2))/120 - I*x**3*atanh(sqrt(3)/3)/6\n" + ] + } + ], + "source": [ + "import numpy, sympy, math\n", + "\n", + "print \"Maclaurin's Series\"\n", + "print 'f(x)=f(0)+xf1(0)+xˆ2/2!∗f2(0)+xˆ3/3!∗f3(0)+......'\n", + "x = sympy.Symbol('x')\n", + "a = sympy.Symbol('a')\n", + "y = sympy.tan(a)\n", + "n = int(raw_input(\"Enter the orde of differentiation: \"))\n", + "a = 1\n", + "t = sympy.solve(y)[0]\n", + "a = 0\n", + "for i in range(2,n+1):\n", + " y1 = sympy.diff (y,'a',i-1)\n", + " if sympy.solve(y1):\n", + " t = t+x**(i-1)*sympy.solve(y1)[0]/math.factorial(i-1)\n", + "print t" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.17, page no. 150" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Maclaurins series\n", + "f(x)=f(0)+xf1(0)+xˆ2/2!∗f2(0)+xˆ3/3!∗f3(0)+......\n", + "enter the number of expression in series:2\n", + "1.5707963267949*x\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "print \"Maclaurins series\"\n", + "print \"f(x)=f(0)+xf1(0)+xˆ2/2!∗f2(0)+xˆ3/3!∗f3(0)+......\"\n", + "x = sympy.Symbol('x')\n", + "a = sympy.Symbol('a')\n", + "y = math.e**(sympy.sin(a))\n", + "n = int(raw_input('enter the number of expression in series:'))\n", + "a = 0\n", + "t = 0\n", + "a = 0\n", + "for i in range(2,n+1):\n", + " y1 = sympy.diff(y,'a',i-1) \n", + " t = t+x**(i-1)*sympy.solve(y1)[0]/math.factorial(i-1) \n", + "print t" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 4.18, page no. 150" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Maclaurins series\n", + "f(x)=f(0)+xf1(0)+xˆ2/2!∗f2(0)+xˆ3/3!∗f3(0)+......\n", + "enter the number of differentiation involved in maclaurins series :3\n", + "x**2*atan(RootOf(tan(a/2)**4 - 10*tan(a/2)**2 + 1, 0))\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "print \"Maclaurins series\"\n", + "print \"f(x)=f(0)+xf1(0)+xˆ2/2!∗f2(0)+xˆ3/3!∗f3(0)+......\"\n", + "x = sympy.Symbol('x')\n", + "a = sympy.Symbol('a')\n", + "y = sympy.log(1+(sympy.sin(a))**2)\n", + "n = int(raw_input(\"enter the number of differentiation involved in maclaurins series :\"))\n", + "a = 0\n", + "t = 0\n", + "a = 0\n", + "for i in range(2,n+1):\n", + " y1 = sympy.diff(y,'a',i-1) \n", + " t = t+x**(i-1)*sympy.solve(y1)[0]/math.factorial(i-1) \n", + "print t" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 4.19, page no. 151" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Maclaurins series\n", + "f(x)=f(0)+xf1(0)+xˆ2/2!∗f2(0)+xˆ3/3!∗f3(0)+......\n", + "enter the number of expression in series :2\n", + "1.0*2.71828182845905**(a*asin(b))*a*x*(-b**2 + 1.0)**(-0.5)\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "print \"Maclaurins series\"\n", + "print \"f(x)=f(0)+xf1(0)+xˆ2/2!∗f2(0)+xˆ3/3!∗f3(0)+......\"\n", + "x = sympy.Symbol('x')\n", + "a = sympy.Symbol('a')\n", + "b = sympy.Symbol('b')\n", + "y = math.e**(a*sympy.asin(b))\n", + "y1 = sympy.diff(y, 'b', 1)\n", + "n = int(raw_input(\"enter the number of expression in series :\"))\n", + "b = 0\n", + "t = 0\n", + "for i in range(2,n+1):\n", + " y1 = sympy.diff(y,'b',i-1) \n", + " t = t+x**(i-1)*y1.evalf()/math.factorial(i-1) \n", + "print t" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.20, page no. 152" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Advantage of scilab is that we can calculate log1.1 directly without using Taylor series\n", + "Use of taylor series are given in subsequent examples\n", + "log(1.1) = 0.0953101798043\n" + ] + } + ], + "source": [ + "import numpy,math,sympy\n", + "\n", + "print \"Use of taylor series are given in subsequent examples\"\n", + "y = math.log(1.1)\n", + "print \"log(1.1) = \",math.log (1.1) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.21, page no. 152" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Taylor series\n", + "f(x+h)=f(x)+hf1(x)+hˆ2/2!∗f2(x)+hˆ3/3!∗f3(x)+......\n", + "To finf the taylor expansion of tan−1(x+h)\n", + "enter the number of expression in series : 2\n", + "h/(x**2 + 1) + atan(x)\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "print \"Taylor series\"\n", + "print \"f(x+h)=f(x)+hf1(x)+hˆ2/2!∗f2(x)+hˆ3/3!∗f3(x)+......\"\n", + "print \"To finf the taylor expansion of tan−1(x+h)\"\n", + "x = sympy.Symbol('x')\n", + "h = sympy.Symbol('h')\n", + "y = sympy.atan ( x )\n", + "n = int(raw_input (\"enter the number of expression in series : \"))\n", + "t = y \n", + "for i in range (2,n+1):\n", + " y1 = sympy.diff (y,'x',i-1)\n", + " t = t+h**(i-1)*(y1)/math.factorial(i-1)\n", + "print t" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.22, page no. 153" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Here we need to find the limit off(x) at x=0\n", + "2.46828182845905\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "print \"Here we need to find the limit off(x) at x=0\"\n", + "x = sympy.Symbol('x')\n", + "y = (x*math.e**x-sympy.log(1+x))/x**2\n", + "f = 1\n", + "while f==1:\n", + " yn = x*math.e**x-sympy.log(1+x)\n", + " yd = x**2;\n", + " yn1 = sympy.diff(yn,'x',1)\n", + " yd1 = sympy.diff(yd,'x',1)\n", + " x = 0\n", + " a = yn1.evalf(subs=dict(x=1))\n", + " b = yd1.evalf(subs=dict(x=1))\n", + " if a == b:\n", + " yn = yn1 \n", + " yd = yd1 \n", + " else:\n", + " f =0\n", + "h = a / b \n", + "print h" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.32, page no. 162" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Equation of tangent\n", + "Equation is g=0 where g is x - y\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "print \"Equation of tangent\"\n", + "x = sympy.Symbol('x')\n", + "a = sympy.Symbol('a')\n", + "y = sympy.Symbol('y')\n", + "f = (a**(2/3)-x**(2/3))**(3/2)\n", + "s = sympy.diff(f,x)\n", + "Y1 = s*(-x)+y\n", + "X1 = -y/s*x\n", + "g = x-(Y1-s*(X1-x))\n", + "print \"Equation is g=0 where g is\",g" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example, 4.34, page no. 163" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Equation of tangent\n", + "y = a*(-t*cos(t) + sin(t)) + (-a*(t*sin(t) + cos(t)) + x)*cos(t)/sin(t)\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "print \"Equation of tangent\"\n", + "x = sympy.Symbol('x')\n", + "a = sympy.Symbol('a')\n", + "y = sympy.Symbol('y')\n", + "t = sympy.Symbol('t')\n", + "xo = a*(sympy.cos(t)+t*sympy.sin(t))\n", + "yo = a*(sympy.sin(t)-t*sympy.cos(t))\n", + "s = sympy.diff(xo,t)/sympy.diff(yo,t)\n", + "y = yo+s*(x-xo)\n", + "print \"y = \",y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.35, page no. 163" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The two given curves are xˆ=4y and yˆ2=4x which intersects at (0,0) and (4,4)\n", + "for (4 ,4)\n", + "Angle between them is (radians):−\n", + "atan(x/2)\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "print \"The two given curves are xˆ=4y and yˆ2=4x which intersects at (0,0) and (4,4)\"\n", + "print \"for (4 ,4)\"\n", + "x = 4\n", + "x = sympy.Symbol('x')\n", + "y1= x**2/4\n", + "y2 = 2*x**(1/2)\n", + "m1= sympy.diff(y1,x,1)\n", + "m2= sympy.diff(y2,x,1)\n", + "x = 4\n", + "print \"Angle between them is (radians):−\"\n", + "t= sympy.atan((m1-m2)/(1+m1*m2)) \n", + "print t" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.37, page no. 165" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "length of tangent\n", + "a*(((tan(t/2)**2/2 + 1/2)/tan(t/2) - sin(t))/cos(t) + 1)**0.5*sin(t)\n", + "checking for its dependency on t\n", + "verified and equal to a\n", + "subtangent\n", + "a*sin(t)*cos(t)/((tan(t/2)**2/2 + 1/2)/tan(t/2) - sin(t))\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "a = sympy.Symbol('a')\n", + "t = sympy.Symbol('t')\n", + "x = a*(sympy.cos(t)+sympy.log(sympy.tan(t/2)))\n", + "y = a*sympy.sin(t)\n", + "s = sympy.diff(x,t,1)/sympy.diff(y,t,1)\n", + "print \"length of tangent\"\n", + "l = y*(1+s)**(0.5)\n", + "print l\n", + "print \"checking for its dependency on t\"\n", + "f = 1\n", + "t = 0\n", + "k = sympy.solve(l)\n", + "for i in range(1,11):\n", + " t = i\n", + " if(sympy.solve(l)!=k):\n", + " f = 0\n", + "if(f==1):\n", + " print \"verified and equal to a\"\n", + "print \"subtangent\"\n", + "m = y/s\n", + "print m" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.39, page no. 168" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Angle of intersection\n", + "point of intersection of r=sint+cost and r=2 sint is t=pi/4\n", + "tanu=dQ/dr∗r\n", + "The angle at point of intersection in radians is : \n", + "atan(2*(-sin(Q) + cos(Q))*sin(Q))\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "print \"Angle of intersection\"\n", + "print \"point of intersection of r=sint+cost and r=2 sint is t=pi/4\"\n", + "print \"tanu=dQ/dr∗r\"\n", + "Q = sympy.Symbol('Q')\n", + "r1 = 2*sympy.sin(Q)\n", + "r2 = sympy.sin(Q)+sympy.cos(Q)\n", + "u = sympy.atan(r1*sympy.diff(r2,Q,1))\n", + "Q = math.pi/4\n", + "u = u.evalf()\n", + "print \"The angle at point of intersection in radians is : \"\n", + "print u" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.41, page no. 170" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tanu=dQ/dr∗r\n", + "atan(2*a/((-sin(Q) + cos(Q))*(-cos(Q) + 1)))\n", + "4.0*a**2*(4.0*a**2/((-sin(Q) + cos(Q))**2*(-cos(Q) + 1.0)**2) + 1.0)**(-0.5)/((-sin(Q) + cos(Q))*(-cos(Q) + 1.0)**2)\n" + ] + } + ], + "source": [ + "import sympy,math\n", + "\n", + "print \"tanu=dQ/dr∗r\"\n", + "Q = sympy.Symbol('Q')\n", + "a = sympy.Symbol('a')\n", + "r = 2*a/(1-sympy.cos(Q))\n", + "u = sympy.atan(r/sympy.diff(r2,Q,1))\n", + "u = u.evalf()\n", + "print u\n", + "p = r*sympy.sin(u)\n", + "r = sympy.Symbol('r')\n", + "Q = sympy.acos(1-2*a/r)\n", + "p = p.evalf()\n", + "print p" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.43, page no. 172" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The radius of curvature is : -(1 + sin(t)**2/(cos(t) + 1)**2)*sin(t)/cos(t)\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "a = sympy.Symbol('a')\n", + "t = sympy.Symbol('t')\n", + "x = a*(t+sympy.sin(t))\n", + "y = a*(1-sympy.cos(t))\n", + "s2 = sympy.diff(y,t,2)/sympy.diff(x,t,2)\n", + "s1 = sympy.diff(y,t,1)/sympy.diff(x,t,1)\n", + "r = (1+s1**2)**(3/2)/s2\n", + "print \"The radius of curvature is :\",r" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.46, page no. 176" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "radius of curvature\n", + "(a**2*(-cos(t) + 1.0)**2 + a**2*sin(t)**2)/(a**2*(-cos(t) + 1.0)**2 - a**2*(-cos(t) + 1.0)*sin(t) + 2.0*a**2*sin(t)**2)\n", + "Which is proportional to rˆ0.5\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "print \"radius of curvature\"\n", + "a = sympy.Symbol('a')\n", + "t = sympy.Symbol('t')\n", + "r = a*(1-sympy.cos(t))\n", + "r1 = sympy.diff(r,t,1) \n", + "l = (r**2+r1**2)**(3/2)/(r**2+2*r1**2-r*r1)\n", + "r = sympy.Symbol('r')\n", + "t = sympy.acos(1-r/a)\n", + "l = l.evalf()\n", + "print l\n", + "print \"Which is proportional to rˆ0.5\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.47, page no. 177" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The centre of curvature\n", + "the coordinates x,y are resp : \n", + "2.0*x*(1 + 1.0*(a*x)**0.5/x)**2 + x\n", + "-2.0*x**2*(a*x)**(-0.5)*(1 + 1.0*(a*x)**1.0/x**2) + 2*(a*x)**0.5\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "print \"The centre of curvature\"\n", + "x = sympy.Symbol('x')\n", + "a = sympy.Symbol('a')\n", + "y = sympy.Symbol('y')\n", + "y = 2*(a*x)**0.5\n", + "y1 = sympy.diff(y,x,1)\n", + "y2 = sympy.diff(y,x,2)\n", + "xx = x-y1*(1+y1)**2/y2\n", + "yy = y+(1+y1**2)/y2\n", + "print \"the coordinates x,y are resp : \"\n", + "print xx\n", + "print yy" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Examle 4.48, page no. 177" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "centre of curvature of given cycloid\n", + "the coordinates x,y are resp : \n", + "a*(t - sin(t)) - (a*sin(t) + 1)**2*sin(t)/cos(t)\n", + "a*(-cos(t) + 1) + (a**2*sin(t)**2 + 1)/(a*cos(t))\n", + "which another parametric equation of cycloid\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "print \"centre of curvature of given cycloid\"\n", + "a = sympy.Symbol('a')\n", + "t = sympy.Symbol('t')\n", + "x = a*(t-sympy.sin(t))\n", + "y = a*(1-sympy.cos(t))\n", + "y1 = sympy.diff(y,t,1)\n", + "y2 = sympy.diff(y,t,2)\n", + "xx = x-y1*(1+y1)**2/y2 \n", + "yy = y+(1+y1**2)/y2\n", + "print \"the coordinates x,y are resp : \"\n", + "print xx\n", + "print yy\n", + "print \"which another parametric equation of cycloid\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.52, page no. 180" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To find the maxima and minima of given function put f1(x)=0\n", + "[-1, 1/2, 1]\n" + ] + } + ], + "source": [ + "import sympy\n", + "print 'To find the maxima and minima of given function put f1(x)=0'\n", + "x = sympy.Symbol('x')\n", + "f=3*x**4-2*x**3-6*x**2+6*x+1\n", + "k = sympy.diff(f,x)\n", + "x = sympy.poly(0,x)\n", + "k = sympy.solve(k)\n", + "print k" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.61, page no. 188" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "to find the assymptote of given curve\n", + "assymptotes parallel to x−axis is given by f1=0 where f1 is : \n", + "[1, -1, -1, 1, 1, 1]\n", + "assymptotes parallel to y−axis is given by f 2=0 and f2 is : \n", + "x**2*y**2 - x**2*y - x*y**2 + x + y + 1\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "print \"to find the assymptote of given curve\"\n", + "x = sympy.Symbol('x')\n", + "y = sympy.Symbol('y')\n", + "f = x**2*y**2-x**2*y-x*y**2+x+y+1\n", + "f1 = sympy.poly(f,y,x)\n", + "f1 = f1.coeffs()\n", + "print \"assymptotes parallel to x−axis is given by f1=0 where f1 is : \"\n", + "print sympy.factor(f1)\n", + "f2 = sympy.poly(f,y,x)\n", + "print \"assymptotes parallel to y−axis is given by f 2=0 and f2 is : \"\n", + "print sympy.factor(f2)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter5_2.ipynb b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter5_2.ipynb new file mode 100644 index 00000000..2056bd4b --- /dev/null +++ b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter5_2.ipynb @@ -0,0 +1,317 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 5 : Partial Differentiation And Its Applications" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 5.5, page no. 195" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2*(4*x**2/(x**2 + y**2 + z**2) - 1)/(x**2 + y**2 + z**2)**2 + 2*(4*y**2/(x**2 + y**2 + z**2) - 1)/(x**2 + y**2 + z**2)**2 + 2*(4*z**2/(x**2 + y**2 + z**2) - 1)/(x**2 + y**2 + z**2)**2\n" + ] + } + ], + "source": [ + "import sympy\n", + "\n", + "x = sympy.Symbol('x')\n", + "y = sympy.Symbol('y')\n", + "z = sympy.Symbol('z')\n", + "v = (x**2+y**2+z**2)**(-1/2)\n", + "a = sympy.diff(v,x,2)\n", + "b = sympy.diff(v,y,2)\n", + "c = sympy.diff(v,z,2)\n", + "print a+b+c" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.14, page no. 203" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x*(-0.5*x**(-0.5)*(x + y)/(x**0.5 + y**0.5)**2 + 1/(x**0.5 + y**0.5))/sqrt(1 - (x + y)**2/(x**0.5 + y**0.5)**2) + y*(-0.5*y**(-0.5)*(x + y)/(x**0.5 + y**0.5)**2 + 1/(x**0.5 + y**0.5))/sqrt(1 - (x + y)**2/(x**0.5 + y**0.5)**2)\n", + "0\n", + "x**2*((0.25*x**(-1.5)*(x + y)/(x**0.5 + y**0.5)**2 + 0.5*x**(-1.0)*(x + y)/(x**0.5 + y**0.5)**3 - 1.0*x**(-0.5)/(x**0.5 + y**0.5)**2)/sqrt(1 - (x + y)**2/(x**0.5 + y**0.5)**2) + (-0.5*x**(-0.5)*(x + y)**2/(x**0.5 + y**0.5)**3 + (2*x + 2*y)/(2*(x**0.5 + y**0.5)**2))*(-0.5*x**(-0.5)*(x + y)/(x**0.5 + y**0.5)**2 + 1/(x**0.5 + y**0.5))/(1 - (x + y)**2/(x**0.5 + y**0.5)**2)**(3/2)) + 2*x*y*((0.5*x**(-0.5)*y**(-0.5)*(x + y)/(x**0.5 + y**0.5)**3 - 0.5*x**(-0.5)/(x**0.5 + y**0.5)**2 - 0.5*y**(-0.5)/(x**0.5 + y**0.5)**2)/sqrt(1 - (x + y)**2/(x**0.5 + y**0.5)**2) + (-0.5*x**(-0.5)*(x + y)**2/(x**0.5 + y**0.5)**3 + (2*x + 2*y)/(2*(x**0.5 + y**0.5)**2))*(-0.5*y**(-0.5)*(x + y)/(x**0.5 + y**0.5)**2 + 1/(x**0.5 + y**0.5))/(1 - (x + y)**2/(x**0.5 + y**0.5)**2)**(3/2)) + y**2*((0.25*y**(-1.5)*(x + y)/(x**0.5 + y**0.5)**2 + 0.5*y**(-1.0)*(x + y)/(x**0.5 + y**0.5)**3 - 1.0*y**(-0.5)/(x**0.5 + y**0.5)**2)/sqrt(1 - (x + y)**2/(x**0.5 + y**0.5)**2) + (-0.5*y**(-0.5)*(x + y)**2/(x**0.5 + y**0.5)**3 + (2*x + 2*y)/(2*(x**0.5 + y**0.5)**2))*(-0.5*y**(-0.5)*(x + y)/(x**0.5 + y**0.5)**2 + 1/(x**0.5 + y**0.5))/(1 - (x + y)**2/(x**0.5 + y**0.5)**2)**(3/2))\n", + "-(x + y)*cos(2*asin((x + y)/(x**0.5 + y**0.5)))/(4*(1 - (x + y)**2/(x**0.5 + y**0.5)**2)**(3/2)*(x**0.5 + y**0.5))\n" + ] + } + ], + "source": [ + "import sympy\n", + "\n", + "x = sympy.Symbol('x')\n", + "y = sympy.Symbol('y')\n", + "u = sympy.asin((x+y)/(x**0.5+y**0.5))\n", + "a = sympy.diff(u,x)\n", + "b = sympy.diff(u,y)\n", + "c = sympy.diff(a,x)\n", + "d = sympy.diff(b,y)\n", + "e = sympy.diff(b,x)\n", + "print x*a+y*b\n", + "print (1/2)*sympy.tan(u)\n", + "print (x**2)*c+2*x*y*e+(y**2)*d\n", + "print (-sympy.sin(u)*sympy.cos(2*u))/(4*(sympy.cos(u))**3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.25.1, page no. 204" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "r*sin(l)**2 + r*cos(l)**2\n" + ] + } + ], + "source": [ + "import sympy\n", + "\n", + "r = sympy.Symbol('r')\n", + "l = sympy.Symbol('l')\n", + "x = r*sympy.cos(l)\n", + "y = r*sympy.sin(l)\n", + "a = sympy.diff(x,r)\n", + "b = sympy.diff(x,l)\n", + "c = sympy.diff(y,r)\n", + "d = sympy.diff(y,l)\n", + "A = sympy.Matrix([[a,b],[c,d]])\n", + "print A.det()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.25.2, page no. 204" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "r*sin(l)**2 + r*cos(l)**2\n" + ] + } + ], + "source": [ + "import sympy\n", + "\n", + "r = sympy.Symbol('r')\n", + "l = sympy.Symbol('l')\n", + "z = sympy.Symbol('z')\n", + "x = r*sympy.cos(l)\n", + "y = r*sympy.sin(l)\n", + "m = z\n", + "a = sympy.diff(x,r)\n", + "b = sympy.diff(x,l)\n", + "c = sympy.diff(x,z)\n", + "d = sympy.diff(y,r)\n", + "e = sympy.diff(y,l)\n", + "f = sympy.diff(y,z)\n", + "g = sympy.diff(m,r)\n", + "h = sympy.diff(m,l)\n", + "i = sympy.diff(m,z)\n", + "A = sympy.Matrix([[a,b,c],[d,e,f],[g,h,i]])\n", + "print A.det()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.25.3, page no. 205" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "r**2*sin(l)**2*sin(m)**3 + r**2*sin(l)**2*sin(m)*cos(m)**2 + r**2*sin(m)**3*cos(l)**2 + r**2*sin(m)*cos(l)**2*cos(m)**2\n" + ] + } + ], + "source": [ + "import sympy,numpy\n", + "\n", + "r = sympy.Symbol('r')\n", + "l = sympy.Symbol('l')\n", + "m = sympy.Symbol('m')\n", + "x = r*sympy.cos(l)*sympy.sin(m)\n", + "y = r*sympy.sin(l)*sympy.sin(m)\n", + "z = r*sympy.cos(m)\n", + "a = sympy.diff(x,r)\n", + "b = sympy.diff(x,m)\n", + "c = sympy.diff(x,l)\n", + "d = sympy.diff(y,r)\n", + "e = sympy.diff(y,m)\n", + "f = sympy.diff(y,l)\n", + "g = sympy.diff(z,r)\n", + "h = sympy.diff(z,m)\n", + "i = sympy.diff(z,l)\n", + "A = sympy.Matrix([[a,b,c],[d,e,f],[g,h,i]])\n", + "print A.det()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.26, page no. 206" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4\n" + ] + } + ], + "source": [ + "import numpy,sympy\n", + "\n", + "x1 = sympy.Symbol('x1')\n", + "x2 = sympy.Symbol('x2')\n", + "x3 = sympy.Symbol('x3')\n", + "y1 =(x2*x3)/x1\n", + "y2 =(x3*x1)/x2\n", + "y3 =(x1*x2)/x3\n", + "a = sympy.diff(y1,x1)\n", + "b = sympy.diff(y1,x2)\n", + "c = sympy.diff(y1,x3)\n", + "d = sympy.diff(y2,x1)\n", + "e = sympy.diff(y2,x2)\n", + "f = sympy.diff(y2,x3)\n", + "g = sympy.diff(y3,x1)\n", + "h = sympy.diff(y3,x2)\n", + "i = sympy.diff(y3,x3)\n", + "A = sympy.Matrix([[a,b,c],[d,e,f],[g,h,i]])\n", + "print A.det()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.30, page no. 210" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-1.0*x*y*(-x**2 + 1)**(-0.5)/sqrt(-y**2 + 1) + 1.0*x*y*(-y**2 + 1)**(-0.5)/sqrt(-x**2 + 1)\n" + ] + } + ], + "source": [ + "import sympy,numpy\n", + "\n", + "x = sympy.Symbol('x')\n", + "y = sympy.Symbol('y')\n", + "u = x*(1-y**2)**0.5+y*(1-x**2)**0.5\n", + "v = sympy.asin(x)+sympy.asin(y)\n", + "a = sympy.diff(u,x)\n", + "b = sympy.diff(u,y)\n", + "c = sympy.diff(v,x)\n", + "d = sympy.diff(v,y)\n", + "A = sympy.Matrix([[a,b],[c,d]])\n", + "print A.det()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter6_2.ipynb b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter6_2.ipynb new file mode 100644 index 00000000..4eb64354 --- /dev/null +++ b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter6_2.ipynb @@ -0,0 +1,743 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 6 : Integration And Its Applications" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.1.1, page no. 199" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Indefinite integral\n", + "3*x/8 - sin(x)**3*cos(x)/4 - 3*sin(x)*cos(x)/8\n" + ] + } + ], + "source": [ + "import sympy,numpy\n", + "\n", + "print \"Indefinite integral\"\n", + "x = sympy.Symbol('x')\n", + "f = sympy.integrate((sympy.sin(x))**4,(x))\n", + "print f" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.1.2, page no. 200" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Indefinite integral\n", + "-sin(x)**7/7 + 3*sin(x)**5/5 - sin(x)**3 + sin(x)\n" + ] + } + ], + "source": [ + "import sympy,numpy\n", + "\n", + "print \"Indefinite integral\"\n", + "x = sympy.Symbol('x')\n", + "f = sympy.integrate((sympy.cos(x))**7,(x))\n", + "print f" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.2.1, page no. 202" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Definite integral\n", + "0.490873852123\n" + ] + } + ], + "source": [ + "import sympy,numpy,math\n", + "\n", + "print \"Definite integral\"\n", + "x = sympy.Symbol('x')\n", + "f = sympy.integrate((sympy.cos(x))**6,(x,0,math.pi/2))\n", + "print float(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.2.2, page no. 202" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Definite integral\n", + "zoo*a**6 + a**6*log(-2*a**2)/4 - 11*a**6/24\n" + ] + } + ], + "source": [ + "import sympy,numpy,math\n", + "\n", + "print \"Definite integral\"\n", + "x = sympy.Symbol('x')\n", + "a = sympy.Symbol('a')\n", + "g = x**7/(a**2-x**2)**1/2\n", + "f = sympy.integrate(g,(x,0,a))\n", + "print f" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.2.3, page no. 203" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Definite integral\n", + "4*a**4\n" + ] + } + ], + "source": [ + "import sympy,numpy,math\n", + "\n", + "print \"Definite integral\"\n", + "x = sympy.Symbol('x')\n", + "a = sympy.Symbol('a')\n", + "g = x**3*(2*a*x-x**2)**(1/2) \n", + "f = sympy.integrate(g,(x,0,2*a))\n", + "print f" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.2.4, page no. 204" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Definite integral\n", + "0.5*(a**2 + 0.5625)**(-n) + 0.5*(a**2 + 0.0625)**(-n)\n" + ] + } + ], + "source": [ + "from sympy.abc import x,a,n\n", + "from sympy.integrals import Integral\n", + "print \"Definite integral\"\n", + "g = 1./(a**2+x**2)**n \n", + "f = Integral(g,(x,0,1))\n", + "print f.as_sum(2).n()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.4.1, page no. 207" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Definite integral\n", + "0.0532891345937363\n" + ] + } + ], + "source": [ + "from sympy.abc import x,a,n\n", + "from sympy.integrals import Integral\n", + "import sympy, math\n", + "print \"Definite integral\"\n", + "g = (sympy.sin(6*x))**3*(sympy.cos(3*x))**7\n", + "f = Integral(g,(x,0,math.pi/6))\n", + "print f.as_sum(2).n()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.4.2, page no. 208" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Definite integral\n", + "0.0571428571429\n" + ] + } + ], + "source": [ + "import sympy,numpy,math\n", + "\n", + "print \"Definite integral\"\n", + "x = sympy.Symbol('x')\n", + "g = (sympy.sin(6*x))**3*(sympy.cos(3*x))**7\n", + "g = x**4*(1-x**2)**(3/2)\n", + "f = sympy.integrate(g,(x,0,1)) \n", + "print float(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.5, page no. 208" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Definite integral\n", + "Enter n : 0\n", + "Enter m : 1\n", + "1.0\n", + "1.0\n", + "Equal\n" + ] + } + ], + "source": [ + "import sympy,numpy,math\n", + "\n", + "print \"Definite integral\"\n", + "x = sympy.Symbol('x')\n", + "m = sympy.Symbol('m')\n", + "n = sympy.Symbol('n')\n", + "n = int(raw_input(\"Enter n : \"))\n", + "m = int(raw_input(\"Enter m : \"))\n", + "g =(sympy.cos(x))**m*sympy.cos(n*x)\n", + "f = sympy.integrate(g,(x,0,math.pi/2))\n", + "print float(f) \n", + "g2 =(sympy.cos(x))**(m-1)*sympy.cos((n-1)*x)\n", + "f2 = m/(m+n)*sympy.integrate(g2,(x,0,math.pi/2))\n", + "print float(f2)\n", + "print \"Equal\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.6.1, page no. 210" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Definite integral\n", + "Enter n : 1\n", + "Piecewise((x*exp(-I*x)*sin(x)/2 - I*x*exp(-I*x)*cos(x)/2 - exp(-I*x)*cos(x)/2, a == -I), (x*exp(I*x)*sin(x)/2 + I*x*exp(I*x)*cos(x)/2 - exp(I*x)*cos(x)/2, a == I), (a*exp(a*x)*sin(x)/(a**2 + 1) - exp(a*x)*cos(x)/(a**2 + 1), True))\n" + ] + } + ], + "source": [ + "import sympy,numpy,math\n", + "\n", + "print \"Definite integral\"\n", + "x = sympy.Symbol('x')\n", + "a = sympy.Symbol('a')\n", + "n = int(raw_input(\"Enter n : \"))\n", + "g = sympy.exp(a*x)*(sympy.sin(x))**n\n", + "f = sympy.integrate(g,(x))\n", + "print f" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.7.1, page no. 212" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(4*sin(x)**2 - 3)/(4*sin(x)**4 - 8*sin(x)**2 + 4) - log(sin(x)**2 - 1)/2\n" + ] + } + ], + "source": [ + "import sympy,numpy,math\n", + "\n", + "x = sympy.Symbol('x')\n", + "print sympy.integrate(sympy.tan(x)**5,(x))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.8, page no. 215" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter the value of n : 3\n", + "n(p+q)= 0.999999999999999\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "n = int(raw_input(\"Enter the value of n : \"))\n", + "p = sympy.integrate((sympy.tan(x))**(n-1),('x',0,math.pi/4))\n", + "q = sympy.integrate((sympy.tan(x))**(n+1),('x',0,math.pi/4))\n", + "print \"n(p+q)= \",\n", + "print n*(p+q)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.9.1, page no. 217" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.33333333333333\n" + ] + } + ], + "source": [ + "import sympy,numpy,math\n", + "\n", + "x = sympy.Symbol('x')\n", + "g = sympy.sec(x)**4\n", + "print sympy.integrate(g,('x',0,math.pi/4))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.9.2, page no. 217" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.607986405500361\n" + ] + } + ], + "source": [ + "import sympy,numpy,math\n", + "\n", + "x = sympy.Symbol('x')\n", + "print sympy.integrate('1/sin(x)**3',('x',math.pi/3,math.pi/2))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.10, page no. 220" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.000362418686373\n" + ] + } + ], + "source": [ + "import sympy,math\n", + "from sympy.abc import x\n", + "from sympy.integrals import Integral\n", + "import sympy, math\n", + "g = x*sympy.sin(x)**6*sympy.cos(x)**4\n", + "f = Integral(g,(x,0,math.pi/6))\n", + "print float(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.12, page no. 221" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.785398163397\n" + ] + } + ], + "source": [ + "import sympy,math\n", + "from sympy.abc import x\n", + "from sympy.integrals import Integral\n", + "x = sympy.Symbol('x')\n", + "a = math.pi/2\n", + "f = (sympy.sin(x)**0.5)/(sympy.sin(x)**0.5+sympy.cos(x)**0.5)\n", + "f = Integral(f,(x, 0, a))\n", + "print float(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.13, page no. 223" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The summation is equivalent to integration of 1/(1+xˆ2) from 0 to 1\n", + "0.785398163397\n" + ] + } + ], + "source": [ + "import sympy,numpy,math\n", + "\n", + "x = sympy.Symbol('x')\n", + "print \"The summation is equivalent to integration of 1/(1+xˆ2) from 0 to 1\"\n", + "g = 1/(1+x**2)\n", + "f = sympy.integrate(g,(x,0,1))\n", + "print float(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.14, page no. 223" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The summation is equivalent to integration of log(1+x) from 0 to 1\n", + "0.38629436112\n" + ] + } + ], + "source": [ + "import sympy,numpy,math\n", + "\n", + "x = sympy.Symbol('x')\n", + "print \"The summation is equivalent to integration of log(1+x) from 0 to 1\"\n", + "g = sympy.log(1+x)\n", + "f = sympy.integrate(g,(x,0,1))\n", + "print float(f) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.15, page no. 225" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0337339994178\n" + ] + } + ], + "source": [ + "import sympy,math\n", + "from sympy.integrals import Integral\n", + "f = Integral(x*sympy.sin(x)**8*sympy.cos(x)**4,(x,0,math.pi))\n", + "print float(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.16, page no. 226" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-1.08879304515\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "from sympy.integrals import Integral\n", + "x = sympy.Symbol('x')\n", + "#f = sympy.integrate(sympy.log(sympy.sin(x)),('x',0,math.pi/2))\n", + "f = Integral(sympy.log(sympy.sin(x)), (x, 0, 1.5707963267949))\n", + "print float(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.24, page no. 234" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "from the graph, it is clear that the points of intersection are x=−4 and x =8.\n", + "So, our region of integration is from x=−4 to x=8\n", + "36\n" + ] + }, + { + "data": { + "image/png": "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\nlWV1AAAAAElFTkSuQmCC\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7faae1cad790>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "import numpy\n", + "import math\n", + "\n", + "x = numpy.linspace(-5,10,70)\n", + "y1 = (x+8)/2\n", + "y2 = x**2/8\n", + "\n", + "plt.xlabel('X axis')\n", + "plt.ylabel('Y axis')\n", + "plt.title('My Graph')\n", + "plt.plot(x, y1, \"o-\" )\n", + "plt.plot(x, y2, \"+-\" )\n", + "plt.legend([\"(x+8)/2\",\"x**2/8\"])\n", + "print \"from the graph, it is clear that the points of intersection are x=−4 and x =8.\"\n", + "print \"So, our region of integration is from x=−4 to x=8\"\n", + "print sympy.integrate('(x+8)/2-x**2/8',('x',-4,8))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11+" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter9_2.ipynb b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter9_2.ipynb new file mode 100644 index 00000000..735ec6e3 --- /dev/null +++ b/Higher_Engineering_Mathematics_by_B._S._Grewal/chapter9_2.ipynb @@ -0,0 +1,476 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 9 : Infinite Series" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.1, page no. 302" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/3\n" + ] + } + ], + "source": [ + "import numpy,sympy\n", + "\n", + "n = sympy.Symbol('n')\n", + "f = ((1/n)**2-2*(1/n))/(3*(1/n)**2+(1/n))\n", + "print sympy.limit(f,n,0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.1.3, page no. 303" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4\n" + ] + } + ], + "source": [ + "import sympy\n", + "n = sympy.Symbol('n')\n", + "f = 3+(-1)**n\n", + "print sympy.limit(f,n,100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.2.1, page no. 304" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1+2+3+4+5+6+7+....+n + . . . . . = oo\n" + ] + } + ], + "source": [ + "import numpy,sympy\n", + "\n", + "n = sympy.Symbol('n')\n", + "print \"1+2+3+4+5+6+7+....+n + . . . . . = \",\n", + "p = 1/n*(1/n+1)/2\n", + "print sympy.limit(p,n,0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.2.2, page no. 304" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5−4−1+5−4−1+5−4−1+5−4−1+.........=0,5,1 according to the no. of terms.\n", + "clearly, in this case sum doesnt tend to a unique limit. hence, series is oscillatory.\n" + ] + } + ], + "source": [ + "print \"5−4−1+5−4−1+5−4−1+5−4−1+.........=0,5,1 according to the no. of terms.\"\n", + "print \"clearly, in this case sum doesnt tend to a unique limit. hence, series is oscillatory.\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.5.1, page no. 308" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n", + "both u and v converge and diverge together, hence u is convergent\n" + ] + } + ], + "source": [ + "import numpy,sympy\n", + "\n", + "n = sympy.Symbol('n')\n", + "v = 1/((1/n)**2)\n", + "u = (2/n-1)/(1/n*(1/n +1)*(1/n +2))\n", + "print sympy.limit(u/v,n,0)\n", + "print \"both u and v converge and diverge together, hence u is convergent\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.5.2, page no. 308" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "oo\n", + "both u and v converge and diverge together, hence u is divergent\n" + ] + } + ], + "source": [ + "import numpy,sympy\n", + "\n", + "n = sympy.Symbol('n')\n", + "v = 1/((1/n)**2)\n", + "u = ((1/n)**2)/((3/n+1)*(3/n+4)*(3/n+7))\n", + "print sympy.limit(u/v,n,0)\n", + "print \"both u and v converge and diverge together, hence u is divergent\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.7.1, page no. 312" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "u=((n+1)^0.5−1)/((n+2)^3−1)=>\n", + "0\n", + "since, v is convergent, so u is also conzavergent.\n" + ] + } + ], + "source": [ + "import numpy,sympy\n", + "\n", + "n = sympy.Symbol('n')\n", + "print \"u=((n+1)^0.5−1)/((n+2)^3−1)=>\"\n", + "u = ((1+1/(1/n))-(1/n)**(-0.5))/(((1/n)**5/2)*((1+2/(1/n))**3-(1/n)**(-3)))\n", + "v = (1/n)**(-5/2)\n", + "print sympy.limit(u/v,n,0)\n", + "print 'since, v is convergent, so u is also conzavergent.'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.7.3, page no. 313" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-log(log(2)) + +inf\n" + ] + } + ], + "source": [ + "import numpy,sympy\n", + "\n", + "n = sympy.Symbol('n')\n", + "print sympy.integrate(1/(n*sympy.log(n)),(n,2,numpy.inf))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.8.1, page no. 314" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x**(-2)\n" + ] + } + ], + "source": [ + "import numpy,sympy\n", + "\n", + "n = sympy.Symbol('n')\n", + "x = sympy.Symbol('x')\n", + "u = (x**(2*(1/n)-2))/(((1/n)+1)*(1/n)**0.5)\n", + "v = (x**(2*(1/n)))/((1/n+2)*(1/n+1)**0.5)\n", + "print sympy.limit(u/v,n,0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.8.2, page no. 314" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/x\n" + ] + } + ], + "source": [ + "import numpy,sympy\n", + "\n", + "n = sympy.Symbol('n')\n", + "x = sympy.Symbol('x')\n", + "u = ((2**(1/n)-2)*(x**(1/n-1)))/(2**(1/n)+1)\n", + "v = ((2**((1/n)+1)-2)*(x**(1/n)))/(2**(1/n+1)+1)\n", + "print sympy.limit(u/v,n,0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.10.1, page no. 316" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(x + 1)/(2*x)\n" + ] + } + ], + "source": [ + "import numpy,sympy\n", + "\n", + "n = sympy.Symbol('n')\n", + "x = sympy.Symbol('x')\n", + "u = 1/(1+x**(-n))\n", + "v = 1/(1+x**(-n-1))\n", + "print sympy.limit(u/v,n,0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.10.2, page no. 316" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "import numpy,sympy\n", + "\n", + "n = sympy.Symbol('n')\n", + "a = sympy.Symbol('a')\n", + "b = sympy.Symbol('b')\n", + "l = (b+1/n)/(a+1/n)\n", + "print sympy.limit(l,n,0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.11.1, page no. 317" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "u=((4.7....(3n+1))∗xˆn)/(1.2.....n)\n", + "v=((4.7....(3n+4)∗xˆ(n+1))/(1.2.....(n+1))\n", + "l=u/v=> 1/(3*x)\n" + ] + } + ], + "source": [ + "import numpy,sympy\n", + "\n", + "n = sympy.Symbol('n')\n", + "x = sympy.Symbol('x')\n", + "print \"u=((4.7....(3n+1))∗xˆn)/(1.2.....n)\"\n", + "print \"v=((4.7....(3n+4)∗xˆ(n+1))/(1.2.....(n+1))\"\n", + "print \"l=u/v=>\",\n", + "l = (1+n)/((3+4*n)*x)\n", + "print sympy.limit(l,n,0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.11.2, page no. 318" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4/x**2\n" + ] + } + ], + "source": [ + "import numpy,sympy,math\n", + "\n", + "n = sympy.Symbol('n')\n", + "x = sympy.Symbol('x')\n", + "u = (((sympy.factorial(n))**2)*x**(2*n))/sympy.factorial(2*n)\n", + "v = (((sympy.factorial(n+1))**2)*x**(2*(n+1)))/sympy.factorial(2*(n+1))\n", + "print sympy.limit(u/v,n,numpy.inf )" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Higher_Engineering_Mathematics_by_B._S._Grewal/screenshots/screen1_2.png b/Higher_Engineering_Mathematics_by_B._S._Grewal/screenshots/screen1_2.png Binary files differnew file mode 100644 index 00000000..f54af014 --- /dev/null +++ b/Higher_Engineering_Mathematics_by_B._S._Grewal/screenshots/screen1_2.png diff --git a/Higher_Engineering_Mathematics_by_B._S._Grewal/screenshots/screen2_2.png b/Higher_Engineering_Mathematics_by_B._S._Grewal/screenshots/screen2_2.png Binary files differnew file mode 100644 index 00000000..7a62e760 --- /dev/null +++ b/Higher_Engineering_Mathematics_by_B._S._Grewal/screenshots/screen2_2.png diff --git a/Higher_Engineering_Mathematics_by_B._S._Grewal/screenshots/screen3_2.png b/Higher_Engineering_Mathematics_by_B._S._Grewal/screenshots/screen3_2.png Binary files differnew file mode 100644 index 00000000..babda72b --- /dev/null +++ b/Higher_Engineering_Mathematics_by_B._S._Grewal/screenshots/screen3_2.png diff --git a/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter1.ipynb b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter1.ipynb new file mode 100644 index 00000000..b45b10cf --- /dev/null +++ b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter1.ipynb @@ -0,0 +1,754 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 1 - Linear Equations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 8 Example 1.5" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a=\n", + "[[ 2 -1 3 2]\n", + " [ 1 4 0 -1]\n", + " [ 2 6 -1 5]]\n", + "Applying row transformations:\n", + "R1 = R1-2*R2\n", + "a = \n", + "[[ 0 -9 3 4]\n", + " [ 1 4 0 -1]\n", + " [ 2 6 -1 5]]\n", + "R3 = R3-2*R2\n", + "a = \n", + "[[ 0 -9 3 4]\n", + " [ 1 4 0 -1]\n", + " [ 0 -2 -1 7]]\n", + "R3 = R3/-2\n", + "a = \n", + "[[ 0 -9 3 4]\n", + " [ 1 4 0 -1]\n", + " [ 0 1 0 -3]]\n", + "R2 = R2-4*R3\n", + "a = \n", + "[[ 0 -9 3 4]\n", + " [ 1 0 0 11]\n", + " [ 0 1 0 -3]]\n", + "R1 = R1+9*R3\n", + "a = \n", + "[[ 0 0 3 -23]\n", + " [ 1 0 0 11]\n", + " [ 0 1 0 -3]]\n", + "R1 = R1*2/15\n", + "a = \n", + "[[ 0 0 0 -4]\n", + " [ 1 0 0 11]\n", + " [ 0 1 0 -3]]\n", + "R2 = R2+2*R1\n", + "a = \n", + "[[ 0 0 0 -4]\n", + " [ 1 0 0 3]\n", + " [ 0 1 0 -3]]\n", + "R3 = R3-R1/2\n", + "a = \n", + "[[ 0 0 0 -4]\n", + " [ 1 0 0 3]\n", + " [ 0 1 0 -1]]\n", + "We get the system of equations as:\n", + "2*x1 - x2 + 3*x3 + 2*x4 = 0\n", + "x1 + 4*x2 - x4 = 0\n", + "2*x1 + 6* x2 - x3 + 5*x4 = 0\n", + "and\n", + "x2 - 5/3*x4 = 0 x1 + 17/3*x4 = 0 x3 - 11/3*x4 = 0\n", + "now by assigning any rational value c to x4 in system second, the solution is evaluated as:\n", + "(-17/3*c,5/3,11/3*c,c)\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "a = np.array([[2, -1, 3, 2],[1, 4, 0 ,-1],[2, 6, -1, 5]])\n", + "print 'a=\\n',a\n", + "print 'Applying row transformations:'\n", + "print 'R1 = R1-2*R2'\n", + "a[0,:] = a[0,:] - 2*a[1,:]#\n", + "print 'a = \\n',a\n", + "print 'R3 = R3-2*R2'\n", + "a[2,:] = a[2,:] - 2*a[1,:]\n", + "print 'a = \\n',a\n", + "print 'R3 = R3/-2'\n", + "a[2,:] = -1.0/2*a[2,:]#\n", + "print 'a = \\n',a\n", + "print 'R2 = R2-4*R3'\n", + "a[1,:] = a[1,:] - 4*a[2,:]\n", + "print 'a = \\n',a\n", + "print 'R1 = R1+9*R3'\n", + "a[0,:] = a[0,:] + 9*a[2,:]#\n", + "print 'a = \\n',a\n", + "print 'R1 = R1*2/15'\n", + "a[0,:] = a[0,:] * 2/15\n", + "print 'a = \\n',a\n", + "print 'R2 = R2+2*R1'\n", + "a[1,:] = a[1,:] + 2*a[0,:]\n", + "print 'a = \\n',a\n", + "print 'R3 = R3-R1/2'\n", + "a[2,:] = a[2,:] - 1.0/2*a[0,:]\n", + "print 'a = \\n',a\n", + "print 'We get the system of equations as:'\n", + "print '2*x1 - x2 + 3*x3 + 2*x4 = 0'\n", + "print 'x1 + 4*x2 - x4 = 0'\n", + "print '2*x1 + 6* x2 - x3 + 5*x4 = 0'\n", + "print 'and'\n", + "print 'x2 - 5/3*x4 = 0','x1 + 17/3*x4 = 0','x3 - 11/3*x4 = 0'\n", + "print 'now by assigning any rational value c to x4 in system second, the solution is evaluated as:'\n", + "print '(-17/3*c,5/3,11/3*c,c)'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 9 Example 1.6" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a = \n", + "[[-1.+0.j 0.+1.j]\n", + " [ 0.-1.j 3.+0.j]\n", + " [ 1.+0.j 2.+0.j]]\n", + "Applying row transformations:\n", + "R1 = R1+R3 and R2 = R2 + i *R3\n", + "a = \n", + "[[ 0.+0.j 2.+1.j]\n", + " [ 0.+0.j 3.+2.j]\n", + " [ 1.+0.j 2.+0.j]]\n", + "R1 = R1 * (1/2+i)\n", + "a = \n", + "[[ 0.+0.j 1.+0.j]\n", + " [ 0.+0.j 3.+2.j]\n", + " [ 1.+0.j 2.+0.j]]\n", + "R2 = R2-R1*(3+2i) and R3 = R3 - 2 *R1\n", + "a = \n", + "[[ 0.+0.j 1.+0.j]\n", + " [ 0.+0.j 0.+0.j]\n", + " [ 1.+0.j 0.+0.j]]\n", + "Thus the system of equations is:\n", + "x1 + 2*x2 = 0 -i*x1 + 3*x2 = 0 -x1+i*x2 = 0\n", + "It has only trivial solution x1 = x2 = 0\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "a=np.array([[-1, 1J],[-1J, 3],[1 ,2]])\n", + "print 'a = \\n',a\n", + "print 'Applying row transformations:'\n", + "print 'R1 = R1+R3 and R2 = R2 + i *R3'\n", + "a[0,:] = a[0,:] +a[2,:]\n", + "a[1,:] = a[1,:] + 1J * a[2,:]\n", + "print 'a = \\n',a\n", + "print 'R1 = R1 * (1/2+i)'\n", + "a[0,:] = 1.0/(2 + 1J) * a[0,:]\n", + "print 'a = \\n',a\n", + "print 'R2 = R2-R1*(3+2i) and R3 = R3 - 2 *R1'\n", + "a[1,:] = (a[1,:] - (3 + 2 * 1J) * a[0,:])\n", + "a[2,:] = (a[2,:] - 2 * a[0,:])\n", + "print 'a = \\n',a\n", + "print 'Thus the system of equations is:'\n", + "print 'x1 + 2*x2 = 0','-i*x1 + 3*x2 = 0','-x1+i*x2 = 0'\n", + "print 'It has only trivial solution x1 = x2 = 0'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 9 Example 1.7" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[ 1. 0. 0. 0. 0. 0. 0. 0.]\n", + " [ 0. 1. 0. 0. 0. 0. 0. 0.]\n", + " [ 0. 0. 1. 0. 0. 0. 0. 0.]\n", + " [ 0. 0. 0. 1. 0. 0. 0. 0.]\n", + " [ 0. 0. 0. 0. 1. 0. 0. 0.]\n", + " [ 0. 0. 0. 0. 0. 1. 0. 0.]\n", + " [ 0. 0. 0. 0. 0. 0. 1. 0.]\n", + " [ 0. 0. 0. 0. 0. 0. 0. 1.]]\n", + "This is an Identity matrix of order 8 * 8\n", + "And It is a row reduced matrix.\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "n = np.random.randint(9)\n", + "print np.identity(n)\n", + "print 'This is an Identity matrix of order %d * %d'%(n,n)\n", + "print 'And It is a row reduced matrix.'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 12 Example 1.8" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[ 1. 0. 0. 0. 0. 0.]\n", + " [ 0. 1. 0. 0. 0. 0.]\n", + " [ 0. 0. 1. 0. 0. 0.]\n", + " [ 0. 0. 0. 1. 0. 0.]\n", + " [ 0. 0. 0. 0. 1. 0.]\n", + " [ 0. 0. 0. 0. 0. 1.]]\n", + "This is an Identity matrix of order 6 * 6\n", + "And It is a row reduced matrix.\n", + "[[ 0. 0. 0. 0. 0.]]\n", + "This is an Zero matrix of order 1 * 5\n", + "And It is also a row reduced matrix.\n", + "a = \n", + "[[ 0. 1. -3. 0. 0.5]\n", + " [ 0. 0. 0. 1. 2. ]\n", + " [ 0. 0. 0. 0. 0. ]]\n", + "This is a non-trivial row reduced matrix.\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "n = np.random.randint(9)\n", + "print np.identity(n)\n", + "print 'This is an Identity matrix of order %d * %d'%(n,n)\n", + "print 'And It is a row reduced matrix.'\n", + "m = np.random.randint(0,9)\n", + "n = np.random.randint(9)\n", + "print np.zeros([m,n])\n", + "print 'This is an Zero matrix of order %d * %d'%(m,n)\n", + "print 'And It is also a row reduced matrix.'\n", + "a = np.array([[0, 1, -3, 0, 1.0/2],[0, 0, 0, 1, 2],[0, 0 ,0 ,0 ,0]])\n", + "print 'a = \\n',a\n", + "print 'This is a non-trivial row reduced matrix.'\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 14 Example 1.9" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A = \n", + "[[ 1 -2 1]\n", + " [ 2 1 1]\n", + " [ 0 5 -1]]\n", + "Applying row transformations:\n", + "R2 = R2 - 2*R1\n", + "A = \n", + "[[ 1 -2 1]\n", + " [ 0 5 -1]\n", + " [ 0 5 -1]]\n", + "R3 = R3 - R2\n", + "A = \n", + "[[ 1 -2 1]\n", + " [ 0 5 -1]\n", + " [ 0 0 0]]\n", + "R2 = 1/5*R2\n", + "A = \n", + "[[ 1 -2 1]\n", + " [ 0 1 0]\n", + " [ 0 0 0]]\n", + "R1 = R1 - 2*R2\n", + "A = \n", + "[[1 0 1]\n", + " [0 1 0]\n", + " [0 0 0]]\n", + "The condition that the system have a solution is:\n", + "2*y1 - y2 + y3 = 0\n", + "where, y1,y2,y3 are some scalars\n", + "If the condition is satisfied then solutions are obtained by assigning a value c to x3\n", + "Solutions are:\n", + "x2 = 1/5*c + 1/5*(y2 - 2*y1) x1 = -3/5*c + 1/5*(y1 + 2*y2)\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "A = np.array([[1, -2, 1],[2, 1, 1],[0, 5, -1]])\n", + "print 'A = \\n',A\n", + "print 'Applying row transformations:'\n", + "print 'R2 = R2 - 2*R1'\n", + "A[1,:] = A[1,:] - 2*A[0,:]\n", + "print 'A = \\n',A\n", + "print 'R3 = R3 - R2'\n", + "A[2,:] = A[2,:] - A[1,:]\n", + "print 'A = \\n',A\n", + "print 'R2 = 1/5*R2'\n", + "A[1,:] = 1.0/5*A[1,:]\n", + "print 'A = \\n',A\n", + "print 'R1 = R1 - 2*R2'\n", + "A[0,:] = A[0,:] + 2*A[1,:]\n", + "print 'A = \\n',A\n", + "print 'The condition that the system have a solution is:'\n", + "print '2*y1 - y2 + y3 = 0'\n", + "print 'where, y1,y2,y3 are some scalars'\n", + "print 'If the condition is satisfied then solutions are obtained by assigning a value c to x3'\n", + "print 'Solutions are:'\n", + "print 'x2 = 1/5*c + 1/5*(y2 - 2*y1)','x1 = -3/5*c + 1/5*(y1 + 2*y2)'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 17 Example 1.10" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a=\n", + "[[ 1 0]\n", + " [-3 1]]\n", + "b=\n", + "[[ 5 -1 2]\n", + " [15 4 8]]\n", + "ab = \n", + "[[ 5 -1 2]\n", + " [ 0 7 2]]\n", + "-----------------------------------------------------------------\n", + "a=\n", + "[[ 1 0]\n", + " [-2 3]\n", + " [ 5 4]\n", + " [ 0 1]]\n", + "b=\n", + "[[ 0 6 1]\n", + " [ 3 8 -2]]\n", + "ab = \n", + "[[ 0 6 1]\n", + " [ 9 12 -8]\n", + " [12 62 -3]\n", + " [ 3 8 -2]]\n", + "-----------------------------------------------------------------\n", + "a=\n", + "[[2 1]\n", + " [5 4]]\n", + "b=\n", + "[[1]\n", + " [6]]\n", + "ab = \n", + "[[ 8]\n", + " [29]]\n", + "-----------------------------------------------------------------\n", + "a=\n", + "[[-1]\n", + " [ 3]]\n", + "b=\n", + "[[2 4]]\n", + "ab = \n", + "[[-2 -4]\n", + " [ 6 12]]\n", + "-----------------------------------------------------------------\n", + "a=\n", + "[[2 4]]\n", + "b=\n", + "[[-1]\n", + " [ 3]]\n", + "ab = \n", + "[[10]]\n", + "-----------------------------------------------------------------\n", + "a=\n", + "[[0 1 0]\n", + " [0 0 0]\n", + " [0 0 0]]\n", + "b=\n", + "[[ 1 -5 2]\n", + " [ 2 3 4]\n", + " [ 9 -1 3]]\n", + "ab = \n", + "[[2 3 4]\n", + " [0 0 0]\n", + " [0 0 0]]\n", + "-----------------------------------------------------------------\n", + "a=\n", + "[[ 1 -5 2]\n", + " [ 2 3 4]\n", + " [ 9 -1 3]]\n", + "b=\n", + "[[0 1 0]\n", + " [0 0 0]\n", + " [0 0 0]]\n", + "ab = \n", + "[[0 1 0]\n", + " [0 2 0]\n", + " [0 9 0]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "#Part a\n", + "a = np.array([[1, 0],[-3, 1]])\n", + "b = np.array([[5, -1, 2],[15, 4, 8]])\n", + "print 'a=\\n',a\n", + "print 'b=\\n',b\n", + "print 'ab = \\n',a.dot(b)\n", + "\n", + "print '-----------------------------------------------------------------'\n", + "#Part b\n", + "a = np.array([[1, 0],[-2, 3],[5 ,4],[0, 1]])\n", + "b = np.array([[0, 6, 1],[3 ,8 ,-2]])\n", + "print 'a=\\n',a\n", + "print 'b=\\n',b\n", + "print 'ab = \\n',a.dot(b)\n", + "print '-----------------------------------------------------------------'\n", + "#Part c\n", + "a = np.array([[2, 1],[5, 4]])\n", + "b = np.array([[1],[6]])\n", + "print 'a=\\n',a\n", + "print 'b=\\n',b\n", + "print 'ab = \\n',a.dot(b)\n", + "print '-----------------------------------------------------------------'\n", + "#Part d\n", + "a = np.array([[-1],[3]])\n", + "b = np.array([[2, 4]])\n", + "print 'a=\\n',a\n", + "print 'b=\\n',b\n", + "print 'ab = \\n',a.dot(b)\n", + "print '-----------------------------------------------------------------'\n", + "#Part e\n", + "a = np.array([[2, 4]])\n", + "b = np.array([[-1],[3]])\n", + "print 'a=\\n',a\n", + "print 'b=\\n',b\n", + "print 'ab = \\n',a.dot(b)\n", + "print '-----------------------------------------------------------------'\n", + "#Part f\n", + "a = np.array([[0, 1 ,0],[0, 0, 0],[0, 0, 0]])\n", + "b = np.array([[1, -5, 2],[2, 3, 4],[9 ,-1, 3]])\n", + "print 'a=\\n',a\n", + "print 'b=\\n',b\n", + "print 'ab = \\n',a.dot(b)\n", + "print '-----------------------------------------------------------------'\n", + "#Part g\n", + "a = np.array([[1, -5, 2],[2, 3, 4],[9, -1, 3]])\n", + "b = np.array([[0, 1, 0],[0 ,0 ,0],[0, 0, 0]])\n", + "print 'a=\\n',a\n", + "print 'b=\\n',b\n", + "print 'ab = \\n',a.dot(b)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 22 Example 1.14" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a = \n", + "[[0 1]\n", + " [1 0]]\n", + "inverse a = \n", + "[[ 0. 1.]\n", + " [ 1. 0.]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "a = np.array([[0, 1],[1, 0]])\n", + "print 'a = \\n',a\n", + "print 'inverse a = \\n',np.linalg.inv(a)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 25 Example 1.15" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a = \n", + "[[ 2 -1]\n", + " [ 1 3]]\n", + "Applying row tranformations\n", + "Interchange R1 and R2\n", + "a = \n", + "[[ 1 3]\n", + " [ 2 -1]]\n", + "R2 = R2 - 2 * R1\n", + "a =\n", + " [[ 1 3]\n", + " [ 0 -7]]\n", + "R2 = R2 *1/(-7)\n", + "a = \n", + "[[1 3]\n", + " [0 1]]\n", + "R1 = R1 - 3 * R2\n", + "a = \n", + "[[1 0]\n", + " [0 1]]\n", + "Since a has become an identity matrix. So, a is invertible\n", + "inverse of a = \n", + "[[ 0.42857143 0.14285714]\n", + " [-0.14285714 0.28571429]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "a = np.array([[2, -1],[1 ,3]])\n", + "b = np.array([[2, -1],[1 ,3]]) #Temporary variable to store a\n", + "print 'a = \\n',a\n", + "print 'Applying row tranformations'\n", + "print 'Interchange R1 and R2'\n", + "a[0,:] = a[1,:]\n", + "a[1,:] = b[0,:]\n", + "print 'a = \\n',a\n", + "print 'R2 = R2 - 2 * R1'\n", + "a[1,:] = a[1,:] - 2 * a[0,:]\n", + "print 'a =\\n ',a\n", + "print 'R2 = R2 *1/(-7)'\n", + "a[1,:] = (-1.0/7) * a[1,:]\n", + "print 'a = \\n',a\n", + "print 'R1 = R1 - 3 * R2'\n", + "a[0,:] = a[0,:] - 3 * a[1,:]\n", + "print 'a = \\n',a\n", + "print 'Since a has become an identity matrix. So, a is invertible'\n", + "print 'inverse of a = '\n", + "print np.linalg.inv(b)# #a was stored in b" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 25 Example 1.16" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a = \n", + "[[ 1. 0.5 0.33333333]\n", + " [ 0.5 0.33333333 0.25 ]\n", + " [ 0.33333333 0.25 0.2 ]]\n", + "b = \n", + "[[ 1. 0. 0.]\n", + " [ 0. 1. 0.]\n", + " [ 0. 0. 1.]]\n", + "Applying row transformations on a and b simultaneously,\n", + "R2 = R2 - 1/2 * R1 and R3 = R3 - 1/3*R1\n", + "a = \n", + "[[ 1. 0.5 0.33333333]\n", + " [ 0. 0.08333333 0.08333333]\n", + " [ 0. 0.08333333 0.08888889]]\n", + "b = \n", + "[[ 1. 0. 0. ]\n", + " [-0.5 1. 0. ]\n", + " [-0.33333333 0. 1. ]]\n", + "R3 = R3 - R2\n", + "a = \n", + "[[ 1.00000000e+00 5.00000000e-01 3.33333333e-01]\n", + " [ 0.00000000e+00 8.33333333e-02 8.33333333e-02]\n", + " [ 0.00000000e+00 2.77555756e-17 5.55555556e-03]]\n", + "b = \n", + "[[ 1. 0. 0. ]\n", + " [-0.5 1. 0. ]\n", + " [ 0.16666667 -1. 1. ]]\n", + "R2 = R2 * 12 and R3 = R3 * 180\n", + "a = \n", + "[[ 1.00000000e+00 5.00000000e-01 3.33333333e-01]\n", + " [ 0.00000000e+00 1.00000000e+00 1.00000000e+00]\n", + " [ 0.00000000e+00 4.99600361e-15 1.00000000e+00]]\n", + "b = \n", + "[[ 1. 0. 0.]\n", + " [ -6. 12. 0.]\n", + " [ 30. -180. 180.]]\n", + "R2 = R2 - R3 and R1 = R1 - 1/3*R3\n", + "a = \n", + "[[ 1.00000000e+00 5.00000000e-01 -4.44089210e-16]\n", + " [ 0.00000000e+00 1.00000000e+00 -1.33226763e-15]\n", + " [ 0.00000000e+00 4.99600361e-15 1.00000000e+00]]\n", + "b = \n", + "[[ -9. 60. -60.]\n", + " [ -36. 192. -180.]\n", + " [ 30. -180. 180.]]\n", + "R1 = R1 - 1/2 * R2\n", + "a = \n", + "[[ 1. 0. 0.]\n", + " [ 0. 1. -0.]\n", + " [ 0. 0. 1.]]\n", + "b = \n", + "[[ 9. -36. 30.]\n", + " [ -36. 192. -180.]\n", + " [ 30. -180. 180.]]\n", + "Since, a = identity matrix of order 3*3. So, b is inverse of a\n", + "inverse(a) = \n", + "[[ 9. -36. 30.]\n", + " [ -36. 192. -180.]\n", + " [ 30. -180. 180.]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "a = np.array([[1 ,1./2, 1.0/3],[1.0/2 ,1.0/3, 1.0/4],[1.0/3, 1.0/4, 1.0/5]])\n", + "print 'a = \\n',a\n", + "b = np.identity(3)\n", + "print 'b = \\n',b\n", + "print 'Applying row transformations on a and b simultaneously,'\n", + "print 'R2 = R2 - 1/2 * R1 and R3 = R3 - 1/3*R1'\n", + "a[1,:] = a[1,:] - 1.0/2 * a[0,:]\n", + "a[2,:] = a[2,:] - 1.0/3 * a[0,:]\n", + "b[1,:] = b[1,:] - 1.0/2 * b[0,:]\n", + "b[2,:] = b[2,:] - 1.0/3 * b[0,:]\n", + "print 'a = \\n',a\n", + "print 'b = \\n',b\n", + "print 'R3 = R3 - R2'\n", + "a[2,:] = a[2,:] - a[1,:]#\n", + "b[2,:] = b[2,:] - b[1,:]\n", + "print 'a = \\n',a\n", + "print 'b = \\n',b\n", + "print 'R2 = R2 * 12 and R3 = R3 * 180'\n", + "a[1,:] = a[1,:] *12#\n", + "a[2,:] = a[2,:] * 180#\n", + "b[1,:] = b[1,:] * 12#\n", + "b[2,:] = b[2,:] * 180#\n", + "print 'a = \\n',a\n", + "print 'b = \\n',b\n", + "print 'R2 = R2 - R3 and R1 = R1 - 1/3*R3'\n", + "a[1,:] = a[1,:] - a[2,:]#\n", + "a[0,:] = a[0,:] - 1./3 * a[2,:]#\n", + "b[1,:] = b[1,:] - b[2,:]#\n", + "b[0,:] = b[0,:] - 1./3 * b[2,:]#\n", + "print 'a = \\n',a\n", + "print 'b = \\n',b\n", + "print 'R1 = R1 - 1/2 * R2'\n", + "a[0,:] = a[0,:] - 1./2 * a[1,:]#\n", + "b[0,:] = b[0,:] - 1./2 * b[1,:]#\n", + "print 'a = \\n',np.matrix.round(a)\n", + "print 'b = \\n',b\n", + "print 'Since, a = identity matrix of order 3*3. So, b is inverse of a'\n", + "print 'inverse(a) = \\n',b" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter10.ipynb b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter10.ipynb new file mode 100644 index 00000000..1c137a08 --- /dev/null +++ b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter10.ipynb @@ -0,0 +1,128 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 10 - Bilinear forms" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 363 Example 10.4" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a = [x1 x2]\n", + "b = [y1 y2]\n", + "f(a,b) = x1*y1 + x1*y2 + x2*y1 + x2*y2\n", + "so, f(a,b) = \n", + "[x1 x2] * |1 1| * |y1|\n", + " |1 1| |y2|\n", + "So the matrix of f in standard order basis B = {e1,e2} is:\n", + "[f]B = \n", + "[[1 1]\n", + " [1 1]]\n", + "P = \n", + "[[ 1 1]\n", + " [-1 1]]\n", + "Thus, [f]B = P*[f]B*P\n", + "[f]B = \n", + "[[ 1 -1]\n", + " [-1 1]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "print 'a = [x1 x2]'\n", + "print 'b = [y1 y2]'\n", + "print 'f(a,b) = x1*y1 + x1*y2 + x2*y1 + x2*y2'\n", + "print 'so, f(a,b) = '\n", + "print '[x1 x2] * |1 1| * |y1|'\n", + "print ' |1 1| |y2|'\n", + "print 'So the matrix of f in standard order basis B = {e1,e2} is:'\n", + "fb = np.array([[1, 1],[1, 1]])\n", + "print '[f]B = \\n',fb\n", + "P = np.array([[1 ,1],[-1, 1]])\n", + "print 'P = \\n',P\n", + "print 'Thus, [f]B'' = P''*[f]B*P'\n", + "fb1 = np.transpose(P) * fb * P\n", + "print '[f]B'' = \\n',fb1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 365 Example 10.5" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "n = 56.0\n", + "a = 410.0\n", + "b = 70.0\n", + "f(a,b) = 28700.0\n", + "f is non-degenerate billinear form on R**n.\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "n = round(np.random.randint(2,90))\n", + "a = round(np.random.randint(1,n) * 10)#\n", + "b = round(np.random.randint(1,n) * 10)#\n", + "print 'n = ',n\n", + "print 'a = ',a\n", + "print 'b = ',b\n", + "f = a * np.transpose(b)\n", + "print 'f(a,b) = ',f\n", + "print 'f is non-degenerate billinear form on R**n.'\n", + "#end" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter2.ipynb b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter2.ipynb new file mode 100644 index 00000000..cac42c12 --- /dev/null +++ b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter2.ipynb @@ -0,0 +1,822 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 2 - Vector spaces" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 37 Example 2.8" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a1 = [1, 2, 0, 3, 0]\n", + "a2 = [0, 0, 1, 4, 0]\n", + "a3 = [0, 0, 0, 0, 1]\n", + "By theorem 3, vector a is in subspace W of F**5 spanned by a1, a2, a3\n", + "if and only if there exist scalars c1, c2, c3 such that\n", + "a= c1a1 + c2a2 + c3a3\n", + "So, a = (c1,2*c1,c2,3c1+4c2,c3)\n", + "c1 = -3\n", + "c2 = 1\n", + "c3 = 2\n", + "Therefore, a = [0, 0, 1, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]\n", + "This shows, a is in W\n", + "And (2,4,6,7,8) is not in W as there is no value of c1 c2 c3 that satisfies the equation\n" + ] + } + ], + "source": [ + "\n", + "a1 = [1, 2 ,0 ,3, 0]#\n", + "a2 =[0, 0 ,1 ,4 ,0]#\n", + "a3 = [0 ,0 ,0 ,0, 1]#\n", + "print 'a1 = ',a1\n", + "print 'a2 = ',a2\n", + "print 'a3 = ',a3\n", + "print 'By theorem 3, vector a is in subspace W of F**5 spanned by a1, a2, a3'\n", + "print 'if and only if there exist scalars c1, c2, c3 such that'\n", + "print 'a= c1a1 + c2a2 + c3a3'\n", + "print 'So, a = (c1,2*c1,c2,3c1+4c2,c3)'\n", + "c1 = -3#\n", + "c2 = 1#\n", + "c3 = 2#\n", + "a = c1*a1 + c2*a2 + c3*a3#\n", + "print 'c1 = ',c1\n", + "print 'c2 = ',c2\n", + "print 'c3 = ',c3\n", + "print 'Therefore, a = ',a\n", + "print 'This shows, a is in W'\n", + "print 'And (2,4,6,7,8) is not in W as there is no value of c1 c2 c3 that satisfies the equation'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 38 Example 2.10" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A = \n", + "[[1 2 0 3 0]\n", + " [0 0 1 4 0]\n", + " [0 0 0 0 1]]\n", + "The subspace of F**5 spanned by a1 a2 a3(row vectors of A) is called row space of A.\n", + "a1 = [1 2 0 3 0]\n", + "a2 = [0 0 1 4 0]\n", + "a3 = [0 0 0 0 1]\n", + "And, it is also the row space of B.\n", + "B = \n", + "[[ 1 2 0 3 0]\n", + " [ 0 0 1 4 0]\n", + " [ 0 0 0 0 1]\n", + " [-4 -8 1 -8 0]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "\n", + "A = np.array([[1, 2, 0 ,3 ,0],[0, 0, 1, 4, 0],[0, 0, 0, 0, 1]])\n", + "print 'A = \\n',A\n", + "print 'The subspace of F**5 spanned by a1 a2 a3(row vectors of A) is called row space of A.'\n", + "a1 = A[0,:]\n", + "a2 = A[1,:]\n", + "a3 = A[2,:]\n", + "print 'a1 = ',a1\n", + "print 'a2 = ',a2\n", + "print 'a3 = ',a3\n", + "print 'And, it is also the row space of B.'\n", + "B = np.array([[1, 2, 0, 3, 0],[0, 0, 1, 4, 0],[0, 0, 0, 0, 1],[-4, -8, 1 ,-8, 0]])\n", + "print 'B = \\n',B" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 39 Example 2.11" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "V is the space of all polynomial functions over F.\n", + "S contains the functions as:\n", + "n = 17\n", + "f0(x) = 1\n", + "f1(x) = x\n", + "f2(x) = x**2\n", + "f3(x) = x**3\n", + "f4(x) = x**4\n", + "f5(x) = x**5\n", + "f6(x) = x**6\n", + "f7(x) = x**7\n", + "f8(x) = x**8\n", + "f9(x) = x**9\n", + "f10(x) = x**10\n", + "f11(x) = x**11\n", + "f12(x) = x**12\n", + "f13(x) = x**13\n", + "f14(x) = x**14\n", + "f15(x) = x**15\n", + "f16(x) = x**16\n", + "Then, V is the subspace spanned by set S.\n" + ] + } + ], + "source": [ + "import sympy as sp\n", + "import numpy as np\n", + "print 'V is the space of all polynomial functions over F.'\n", + "print 'S contains the functions as:'\n", + "x = sp.Symbol(\"x\")\n", + "#n = round(rand()*10)#\n", + "n=np.random.randint(0,19)\n", + "print 'n = ',n\n", + "for i in range (0,n):\n", + " f = x**i#\n", + " print 'f%d(x) = '%(i,),f\n", + " \n", + "\n", + "print 'Then, V is the subspace spanned by set S.'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 41 Example 2.12" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a1 = [ 3 0 -3]\n", + "a2 = [-1 1 2]\n", + "a3 = [ 4 2 -2]\n", + "a4 = [2 1 1]\n", + " Since, 2 * a1 + 2 * a2 - a3 + 0 * a4 = [0 0 0] = 0\n", + "a1,a2,a3,a4 are linearly independent\n", + "Now, e1 = [1, 0, 0]\n", + "e2 = [0, 1, 0]\n", + "e3 = [0, 0, 1]\n", + "Also, e1,e2,e3 are linearly independent.\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "a1 = np.array([3 ,0, -3])\n", + "a2 = np.array([-1 ,1 ,2])\n", + "a3 = np.array([4 ,2, -2])\n", + "a4 = np.array([2 ,1, 1])\n", + "print 'a1 = ',a1\n", + "print 'a2 = ',a2\n", + "print 'a3 = ',a3\n", + "print 'a4 = ',a4\n", + "t = 2 * a1 + 2 * a2 - a3 + 0 * a4\n", + "print ' Since, 2 * a1 + 2 * a2 - a3 + 0 * a4 = ',t,'= 0'\n", + "print 'a1,a2,a3,a4 are linearly independent'\n", + "e1 = [1, 0, 0]#\n", + "e2 = [0 ,1 ,0]#\n", + "e3 = [0 ,0, 1]#\n", + "print 'Now, e1 = ',e1\n", + "print 'e2 = ',e2\n", + "print 'e3 = ',e3\n", + "print 'Also, e1,e2,e3 are linearly independent.'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 41 Example 2.13" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "S is the subset of F**n consisting of n vectors.\n", + "n = 10\n", + "e1 = \n", + "[ 1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n", + "e2 = \n", + "[ 0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n", + "e3 = \n", + "[ 0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]\n", + "e4 = \n", + "[ 0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n", + "e5 = \n", + "[ 0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n", + "e6 = \n", + "[ 0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n", + "e7 = \n", + "[ 0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n", + "e8 = \n", + "[ 0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n", + "e9 = \n", + "[ 0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n", + "e10 = \n", + "[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", + "x1,x2,x3...xn are the scalars in F\n", + "Putting a = x1*e1 + x2*e2 + x3*e3 + .... + xn*en\n", + "So, a = (x1,x2,x3,...,xn)\n", + "Therefore, e1,e2..,en span F**n\n", + "a = 0 if x1 = x2 = x3 = .. = xn = 0\n", + "So,e1,e2,e3,..,en are linearly independent.\n", + "The set S = {e1,e2,..,en} is called standard basis of F**n\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "print 'S is the subset of F**n consisting of n vectors.'\n", + "#n = round(rand() *10 + 1)#\\\n", + "n=np.random.randint(0,19)\n", + "print 'n = ',n\n", + "I = np.identity(n)\n", + "for i in range(0,n):\n", + " e = I[i,:]\n", + " print 'e%d = '%(i+1)\n", + " print e\n", + "\n", + "print 'x1,x2,x3...xn are the scalars in F'\n", + "print 'Putting a = x1*e1 + x2*e2 + x3*e3 + .... + xn*en'\n", + "print 'So, a = (x1,x2,x3,...,xn)'\n", + "print 'Therefore, e1,e2..,en span F**n'\n", + "print 'a = 0 if x1 = x2 = x3 = .. = xn = 0'\n", + "print 'So,e1,e2,e3,..,en are linearly independent.'\n", + "print 'The set S = {e1,e2,..,en} is called standard basis of F**n'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 54 Example 2.20" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "P = \n", + "[[-1 4 5]\n", + " [ 0 2 -3]\n", + " [ 0 0 8]]\n", + "\n", + "inverse(P) = \n", + "[[-1. 2. 1.375 ]\n", + " [ 0. 0.5 0.1875]\n", + " [ 0. 0. 0.125 ]]\n", + "The vectors forming basis of F**3 are a1, a2, a3\n", + "a1' = \n", + "[-1 0 0]\n", + "\n", + "a2' = \n", + "[4 2 0]\n", + "\n", + "a3' = \n", + "[ 5 -3 8]\n", + "The coordinates x1,x2,x3 of vector a = [x1,x2,x3] is given by inverse(P)*[x1# x2# x3]\n", + "And, -10*a1 - 1/2*a2 - a3 = [ 3. 2. -8.]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "P = np.array([[-1, 4, 5],[ 0, 2, -3],[ 0, 0, 8]])\n", + "print 'P = \\n',P\n", + "print '\\ninverse(P) = \\n',np.linalg.inv(P)\n", + "a1 = P[:,0]\n", + "a2 = P[:,1]\n", + "a3 = P[:,2]\n", + "print 'The vectors forming basis of F**3 are a1'', a2'', a3'''\n", + "print \"a1' = \\n\",np.transpose(a1)\n", + "print \"\\na2' = \\n\",np.transpose(a2)\n", + "print \"\\na3' = \\n\",np.transpose(a3)\n", + "print 'The coordinates x1'',x2'',x3'' of vector a = [x1,x2,x3] is given by inverse(P)*[x1# x2# x3]'\n", + "t = -10*a1 - 1./2*a2 - a3#\n", + "print 'And, -10*a1'' - 1/2*a2'' - a3'' = ',t" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 60 Example 2.21" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Given row vectors are:\n", + "a1 = [1, 2, 2, 1]\n", + "a2 = [0, 2, 0, 1]\n", + "a3 = [-2, 0, -4, 3]\n", + "The matrix A from these vectors will be:\n", + "A = \n", + "[[ 1 2 2 1]\n", + " [ 0 2 0 1]\n", + " [-2 0 -4 3]]\n", + "Finding Row reduced echelon matrix of A that is given by R\n", + "And applying same operations on identity matrix Q such that R = QA\n", + "Q = \n", + "[[ 1. 0. 0.]\n", + " [ 0. 1. 0.]\n", + " [ 0. 0. 1.]]\n", + "Applying row transformations on A and Q,we get\n", + "R1 = R1-R2\n", + "A = \n", + "[[ 1 0 2 0]\n", + " [ 0 2 0 1]\n", + " [-2 0 -4 3]]\n", + "Q = \n", + "[[ 1. -1. 0.]\n", + " [ 0. 1. 0.]\n", + " [ 0. 0. 1.]]\n", + "R3 = R3 + 2*R1\n", + "A = \n", + "[[1 0 2 0]\n", + " [0 2 0 1]\n", + " [0 0 0 3]]\n", + "Q = \n", + "[[ 1. -1. 0.]\n", + " [ 0. 1. 0.]\n", + " [ 2. -2. 1.]]\n", + "R3 = R3/3\n", + "A = \n", + "[[1 0 2 0]\n", + " [0 2 0 1]\n", + " [0 0 0 1]]\n", + "Q = \n", + "[[ 1. -1. 0. ]\n", + " [ 0. 1. 0. ]\n", + " [ 0.66666667 -0.66666667 0.33333333]]\n", + "R2 = R2/2\n", + "A = \n", + "[[1 0 2 0]\n", + " [0 1 0 0]\n", + " [0 0 0 1]]\n", + "Q = \n", + "[[ 1. -1. 0. ]\n", + " [ 0. 5. 0. ]\n", + " [ 0.66666667 -0.66666667 0.33333333]]\n", + "R2 = R2 - 1/2*R3\n", + "A = \n", + "[[1 0 2 0]\n", + " [0 1 0 0]\n", + " [0 0 0 1]]\n", + "Q = \n", + "[[ 1. -1. 0. ]\n", + " [-0.33333333 5.33333333 -0.16666667]\n", + " [ 0.66666667 -0.66666667 0.33333333]]\n", + "Row reduced echelon matrix:\n", + "A = \n", + "[[1 0 2 0]\n", + " [0 1 0 0]\n", + " [0 0 0 1]]\n", + "Q = \n", + "[[ 1. -1. 0. ]\n", + " [-0.33333333 5.33333333 -0.16666667]\n", + " [ 0.66666667 -0.66666667 0.33333333]]\n", + "rank of R = 2\n", + "Since, Rank of R is 3, so a1, a2, a3 are independent\n", + "Now, basis for W can be given by row vectors of R i.e. p1,p2,p3\n", + "b is any vector in W. b = [b1 b2 b3 b4]\n", + "Span of vectors p1,p2,p3 consist of vector b with b3 = 2*b1\n", + "So,b = b1p1 + b2p2 + b4p3\n", + "And,[p1 p2 p3] = R = Q*A\n", + "So, b = [b1 b2 b3]* Q * A\n", + "hence, b = x1a1 + x2a2 + x3a3 where x1 = [b1 b2 b4] * Q(1) and so on\n", + "Now, given 3 vectors a1 a2 a3:\n", + "a1 = [1, 0, 2, 0]\n", + "a2 = [0, 2, 0, 1]\n", + "a3 = [0, 0, 0, 3]\n", + "Since a1 a2 a3 are all of the form (y1 y2 y3 y4) with y3 = 2*y1, hence they are in W.\n", + "So, they are independent.\n", + "Required matrix P such that X = PX is:\n", + "P = \n", + "[[ 0. -0. 2.]\n", + " [-0. 0. -2.]\n", + " [ 0. -0. 1.]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "a1 = [1 ,2 ,2, 1]#\n", + "a2 = [0 ,2 ,0 ,1]#\n", + "a3 = [-2, 0, -4, 3]#\n", + "print 'Given row vectors are:'\n", + "print 'a1 = ',a1\n", + "print 'a2 = ',a2\n", + "print 'a3 = ',a3\n", + "print 'The matrix A from these vectors will be:'\n", + "#A = [a1],[a2], [a3]]\n", + "A=np.array([a1,a2,a3])\n", + "print 'A = \\n',A\n", + "\n", + "print 'Finding Row reduced echelon matrix of A that is given by R'\n", + "print 'And applying same operations on identity matrix Q such that R = QA'\n", + "Q = np.identity(3)\n", + "print 'Q = \\n',Q\n", + "T = A# #Temporary matrix to store A\n", + "print 'Applying row transformations on A and Q,we get'\n", + "print 'R1 = R1-R2'\n", + "A[0,:] = A[0,:] - A[1,:]\n", + "Q[0,:] = Q[0,:] - Q[1,:]\n", + "print 'A = \\n',A\n", + "print 'Q = \\n',Q\n", + "print 'R3 = R3 + 2*R1'\n", + "A[2,:] = A[2,:] + 2*A[0,:]\n", + "Q[2,:] = Q[2,:] + 2*Q[0,:]\n", + "print 'A = \\n',A\n", + "print 'Q = \\n',Q\n", + "print 'R3 = R3/3'\n", + "A[2,:] = 1./3*A[2,:]\n", + "Q[2,:] = 1./3*Q[2,:]\n", + "print 'A = \\n',A\n", + "print 'Q = \\n',Q\n", + "print 'R2 = R2/2'\n", + "A[1,:] = 1./2*A[1,:]\n", + "Q[1,:] = 10/2*Q[1,:]\n", + "print 'A = \\n',A\n", + "print 'Q = \\n',Q\n", + "print 'R2 = R2 - 1/2*R3'\n", + "A[1,:] = A[1,:] - 1./2*A[2,:]\n", + "Q[1,:] = Q[1,:] - 1./2*Q[2,:]\n", + "print 'A = \\n',A\n", + "print 'Q = \\n',Q\n", + "R = A#\n", + "A = T#\n", + "print 'Row reduced echelon matrix:'\n", + "print 'A = \\n',A\n", + "print 'Q = \\n',Q\n", + "#part a\n", + "print 'rank of R = ',np.rank(R)\n", + "\n", + "print 'Since, Rank of R is 3, so a1, a2, a3 are independent'\n", + "#part b\n", + "print 'Now, basis for W can be given by row vectors of R i.e. p1,p2,p3'\n", + "print 'b is any vector in W. b = [b1 b2 b3 b4]'\n", + "print 'Span of vectors p1,p2,p3 consist of vector b with b3 = 2*b1'\n", + "print 'So,b = b1p1 + b2p2 + b4p3'\n", + "print 'And,[p1 p2 p3] = R = Q*A'\n", + "print 'So, b = [b1 b2 b3]* Q * A'\n", + "print 'hence, b = x1a1 + x2a2 + x3a3 where x1 = [b1 b2 b4] * Q(1) and so on' # #Equation 1\n", + "#part c\n", + "print 'Now, given 3 vectors a1'' a2'' a3'':'\n", + "c1 = [1, 0, 2, 0]#\n", + "c2 = [0 ,2 ,0, 1]#\n", + "c3 = [0 ,0 ,0 ,3]#\n", + "print 'a1'' = ',c1\n", + "print 'a2'' = ',c2\n", + "print 'a3'' = ',c3\n", + "print 'Since a1'' a2'' a3'' are all of the form (y1 y2 y3 y4) with y3 = 2*y1, hence they are in W.'\n", + "print 'So, they are independent.'\n", + "#part d\n", + "c = np.array([c1,c2,c3])\n", + "P = np.identity(3)\n", + "for i in range(0,3):\n", + " b1 = c[i,0]\n", + " b2 = c[i,1]\n", + " b4 = c[i,3]\n", + " x1 = np.array([b1, b2, b4]) * Q[:,0]\n", + " x2 = np.array([b1, b2, b4])*Q[:,1]\n", + " x3 = np.array([b1, b2, b4])*Q[:,2]\n", + " \n", + "\n", + "print 'Required matrix P such that X = PX'' is:'\n", + "P=np.vstack([x1,x2,x3])\n", + "print 'P = \\n',P\n", + "#print x1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 63 Example 2.22" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A = \n", + "[[ 1 2 0 3 0]\n", + " [ 1 2 -1 -1 0]\n", + " [ 0 0 1 4 0]\n", + " [ 2 4 1 10 1]\n", + " [ 0 0 0 0 1]]\n", + "Taking an identity matrix P:\n", + "P = \n", + "[[ 1. 0. 0. 0. 0.]\n", + " [ 0. 1. 0. 0. 0.]\n", + " [ 0. 0. 1. 0. 0.]\n", + " [ 0. 0. 0. 1. 0.]\n", + " [ 0. 0. 0. 0. 1.]]\n", + "Applying row transformations on P and A to get a row reduced echelon matrix R:\n", + "R2 = R2 - R1 and R4 = R4 - 2* R1\n", + "A = \n", + "[[ 1 2 0 3 0]\n", + " [ 0 0 -1 -4 0]\n", + " [ 0 0 1 4 0]\n", + " [ 0 0 1 4 1]\n", + " [ 0 0 0 0 1]]\n", + "P = \n", + "[[ 1. 0. 0. 0. 0.]\n", + " [-1. 1. 0. 0. 0.]\n", + " [ 0. 0. 1. 0. 0.]\n", + " [-2. 0. 0. 1. 0.]\n", + " [ 0. 0. 0. 0. 1.]]\n", + "R2 = -R2 , R3 = R3 - R1 + R2 and R4 = R4 - R1 + R2\n", + "A = \n", + "[[1 2 0 3 0]\n", + " [0 0 1 4 0]\n", + " [0 0 0 0 0]\n", + " [0 0 0 0 1]\n", + " [0 0 0 0 1]]\n", + "P = \n", + "[[ 1. 0. 0. 0. 0.]\n", + " [ 1. -1. -0. -0. -0.]\n", + " [-1. 1. 1. 0. 0.]\n", + " [-3. 1. 0. 1. 0.]\n", + " [-3. 1. 0. 1. 0.]]\n", + "Mutually interchanging R3, R4 and R5\n", + "Row reduced echelon matrix R = \n", + "[[1 2 0 3 0]\n", + " [0 0 1 4 0]\n", + " [0 0 0 0 1]\n", + " [0 0 0 0 1]\n", + " [0 0 0 0 0]]\n", + "Invertible Matrix P = \n", + "[[ 1. 0. 0. 0. 0.]\n", + " [ 1. -1. -0. -0. -0.]\n", + " [-3. 1. 0. 1. 0.]\n", + " [-3. 1. 0. 1. 0.]\n", + " [ 0. 0. 0. 0. 0.]]\n", + "Invertible matrix P is not unique. There can be many that depends on operations used to reduce A\n", + "-----------------------------------------\n", + "For the basis of row space W of A, we can take the non-zero rows of R\n", + "It can be given by p1, p2, p3\n", + "p1 = [1 2 0 3 0]\n", + "p2 = [0 0 1 4 0]\n", + "p3 = [0 0 0 0 1]\n", + "-----------------------------------------\n", + "The row space W consists of vectors of the form:\n", + "b = c1p1 + c2p2 + c3p3\n", + "i.e. b = (c1,2*c1,c2,3*c1+4*c2,c3) where, c1 c2 c3 are scalars.\n", + "So, if b2 = 2*b1 and b4 = 3*b1 + 4*b3 => (b1,b2,b3,b4,b5) = b1p1 + b3p2 + b5p3\n", + "then,(b1,b2,b3,b4,b5) is in W\n", + "-----------------------------------------\n", + "The coordinate matrix of the vector (b1,2*b1,b2,3*b1+4*b2,b3) in the basis (p1,p2,p3) is column matrix of b1,b2,b3 such that:\n", + " b1\n", + " b2\n", + " b3\n", + "-----------------------------------------\n", + "Now, to write each vector in W as a linear combination of rows of A:\n", + "Let b = (b1,b2,b3,b4,b5) and if b is in W, then\n", + "we know,b = (b1,2*b1,b3,3*b1 + 4*b3,b5) => [b1,b3,b5,0,0]*R\n", + "=> b = [b1,b3,b5,0,0] * P*A => b = [b1+b3,-b3,0,0,b5] * A\n", + "if b = (-5,-10,1,-11,20)\n", + "b = ( [-4, -1, 0, 0, 20] ) *[ [[1 2 0 3 0]\n", + " [0 0 1 4 0]\n", + " [0 0 0 0 1]\n", + " [0 0 0 0 1]\n", + " [0 0 0 0 0]] ]\n", + "-----------------------------------------\n", + "The equations in system RX = 0 are given by R * [x1 x2 x3 x4 x5]\n", + "i.e., x1 + 2*x2 + 3*x4\n", + "x3 + 4*x4\n", + "x5\n", + "so, V consists of all columns of the form\n", + "[ X=\n", + " -2*x2 - 3*x4\n", + " x2\n", + " -4*x4\n", + " x4\n", + " 0\n", + "where x2 and x4 are arbitrary ]\n", + "-----------------------------------------\n", + "Let x2 = 1,x4 = 0 then the given column forms a basis of V\n", + "[[-2], [1], [0], [0], [0]]\n", + "Similarly,if x2 = 0,x4 = 1 then the given column forms a basis of V\n", + "[[-3], [0], [-4], [1], [0]]\n", + "-----------------------------------------\n", + "The equation AX = Y has solutions X if and only if\n", + "-y1 + y2 + y3 = 0\n", + "-3*y1 + y2 + y4 -y5 = 0\n", + "where, Y = (y1 y2 y3 y4 y5)\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "A = np.array([[1, 2, 0, 3, 0],[1, 2, -1, -1, 0],[0 ,0 ,1 ,4 ,0],[2, 4 ,1 ,10, 1],[0 ,0 ,0 ,0 ,1]])\n", + "print 'A = \\n',A\n", + "#part a\n", + "T = A# #Temporary storing A in T\n", + "print 'Taking an identity matrix P:'\n", + "P = np.identity(5)\n", + "print 'P = \\n',P\n", + "print 'Applying row transformations on P and A to get a row reduced echelon matrix R:'\n", + "print 'R2 = R2 - R1 and R4 = R4 - 2* R1'\n", + "A[1,:] = A[1,:] - A[0,:]\n", + "P[1,:] = P[1,:] - P[0,:]\n", + "A[3,:] = A[3,:] - 2 * A[0,:]\n", + "P[3,:] = P[3,:] - 2 * P[0,:]\n", + "print 'A = \\n',A\n", + "print 'P = \\n',P\n", + "print 'R2 = -R2 , R3 = R3 - R1 + R2 and R4 = R4 - R1 + R2'\n", + "A[1,:] = -A[1,:]\n", + "P[1,:] = -P[1,:]\n", + "A[2,:] = A[2,:] - A[1,:]\n", + "P[2,:] = P[2,:] - P[1,:]\n", + "A[3,:] = A[3,:] - A[1,:]\n", + "P[3:] = P[3,:] - P[1,:]\n", + "print 'A = \\n',A\n", + "print 'P = \\n',P\n", + "print 'Mutually interchanging R3, R4 and R5'\n", + "x = A[2,:]\n", + "A[2,:] = A[4,:]\n", + "y = A[3,:]\n", + "A[3,:] = x#\n", + "A[4,:] = y - A[2,:]\n", + "x = P[2,:]\n", + "P[2,:] = P[4,:]\n", + "y = P[3,:]\n", + "P[3,:] = x#\n", + "P[4,:] = y - P[2,:]\n", + "R = A#\n", + "A = T#\n", + "print 'Row reduced echelon matrix R = \\n',R\n", + "print 'Invertible Matrix P = \\n',P\n", + "print 'Invertible matrix P is not unique. There can be many that depends on operations used to reduce A'\n", + "print '-----------------------------------------'\n", + "#part b\n", + "print 'For the basis of row space W of A, we can take the non-zero rows of R'\n", + "print 'It can be given by p1, p2, p3'\n", + "p1 = R[0,:]\n", + "p2 = R[1,:]\n", + "p3 = R[2,:]\n", + "print 'p1 = ',p1\n", + "print 'p2 = ',p2\n", + "print 'p3 = ',p3\n", + "print '-----------------------------------------'\n", + "#part c\n", + "print 'The row space W consists of vectors of the form:'\n", + "print 'b = c1p1 + c2p2 + c3p3'\n", + "print 'i.e. b = (c1,2*c1,c2,3*c1+4*c2,c3) where, c1 c2 c3 are scalars.'\n", + "print 'So, if b2 = 2*b1 and b4 = 3*b1 + 4*b3 => (b1,b2,b3,b4,b5) = b1p1 + b3p2 + b5p3'\n", + "print 'then,(b1,b2,b3,b4,b5) is in W'\n", + "print '-----------------------------------------'\n", + "#part d\n", + "print 'The coordinate matrix of the vector (b1,2*b1,b2,3*b1+4*b2,b3) in the basis (p1,p2,p3) is column matrix of b1,b2,b3 such that:'\n", + "print ' b1'\n", + "print ' b2'\n", + "print ' b3'\n", + "print '-----------------------------------------'\n", + "#part e\n", + "print 'Now, to write each vector in W as a linear combination of rows of A:'\n", + "print 'Let b = (b1,b2,b3,b4,b5) and if b is in W, then'\n", + "print 'we know,b = (b1,2*b1,b3,3*b1 + 4*b3,b5) => [b1,b3,b5,0,0]*R'\n", + "print '=> b = [b1,b3,b5,0,0] * P*A => b = [b1+b3,-b3,0,0,b5] * A'\n", + "print 'if b = (-5,-10,1,-11,20)'\n", + "b1 = -5#\n", + "b2 = -10#\n", + "b3 = 1#\n", + "b4 = -11#\n", + "b5 = 20#\n", + "x = [b1 + b3,-b3,0,0,b5]#\n", + "print 'b = (',x,')','*[',A,']'\n", + "print '-----------------------------------------'\n", + "#part f\n", + "print 'The equations in system RX = 0 are given by R * [x1 x2 x3 x4 x5]'\n", + "print 'i.e., x1 + 2*x2 + 3*x4'\n", + "print 'x3 + 4*x4'\n", + "print 'x5'\n", + "print 'so, V consists of all columns of the form'\n", + "print '[','X='\n", + "print ' -2*x2 - 3*x4'\n", + "print ' x2'\n", + "print ' -4*x4'\n", + "print ' x4'\n", + "print ' 0'\n", + "print 'where x2 and x4 are arbitrary',']'\n", + "print '-----------------------------------------'\n", + "#part g\n", + "print 'Let x2 = 1,x4 = 0 then the given column forms a basis of V'\n", + "\n", + "x2 = 1#\n", + "x4 = 0#\n", + "print [[-2*x2-3*x4],[ x2],[ -4*x4],[ x4],[ 0]]\n", + "print 'Similarly,if x2 = 0,x4 = 1 then the given column forms a basis of V'\n", + "x2 = 0#\n", + "x4 = 1#\n", + "print [[-2*x2-3*x4],[ x2],[ -4*x4],[ x4],[ 0]]\n", + "print '-----------------------------------------'\n", + "#part h\n", + "print 'The equation AX = Y has solutions X if and only if'\n", + "print '-y1 + y2 + y3 = 0'\n", + "print '-3*y1 + y2 + y4 -y5 = 0'\n", + "print 'where, Y = (y1 y2 y3 y4 y5)'" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter3.ipynb b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter3.ipynb new file mode 100644 index 00000000..2e2e4be2 --- /dev/null +++ b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter3.ipynb @@ -0,0 +1,637 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 3 - Linear transformation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 70 Example 3.6" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a1 = [1, 2]\n", + "a2 = [3, 4]\n", + "a1 and a2 are linearly independent and hence form a basis for R**2\n", + "According to theorem 1, there is a linear transformation from R**2 to R**3 with the transformation functions as:\n", + "Ta1 = [3, 2, 1]\n", + "Ta2 = [6, 5, 4]\n", + "Now, we find scalars c1 and c2 for that we know T(c1a1 + c2a2) = c1(Ta1) + c2(Ta2))\n", + "if(1,0) = c1(1,2) + c2(3,4), then \n", + "c1 = 1\n", + "c2 = 3\n", + "The transformation function T(1,0) will be:\n", + "T(1,0) = [3, 2, 1, 6, 5, 4, 6, 5, 4, 6, 5, 4]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "a1 = [1, 2]#\n", + "a2 = [3 ,4]#\n", + "print 'a1 = ',a1\n", + "print 'a2 = ',a2\n", + "print 'a1 and a2 are linearly independent and hence form a basis for R**2'\n", + "print 'According to theorem 1, there is a linear transformation from R**2 to R**3 with the transformation functions as:'\n", + "Ta1 = [3 ,2 ,1]#\n", + "Ta2 = [6, 5, 4]#\n", + "print 'Ta1 = ',Ta1\n", + "print 'Ta2 = ',Ta2\n", + "print 'Now, we find scalars c1 and c2 for that we know T(c1a1 + c2a2) = c1(Ta1) + c2(Ta2))'\n", + "print 'if(1,0) = c1(1,2) + c2(3,4), then '\n", + "#c = inv([a1#a2]') * [1#0]#\n", + "c=np.array([a1,a2]).dot(np.array([[1],[0]]))\n", + "c1 = c[0,0]\n", + "c2 = c[1,0]\n", + "print 'c1 = ',c1\n", + "print 'c2 = ',c2\n", + "print 'The transformation function T(1,0) will be:'\n", + "T = c1*Ta1 + c2*Ta2#\n", + "print 'T(1,0) = ',T\n", + "#end" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 81 Example 3.12" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x1 = 5\n", + "x2 = 2\n", + "T(5,2) = [7, 5]\n", + "If, T(x1,x2) = 0, then\n", + "x1 = x2 = 0\n", + "So, T is non-singular\n", + "z1,z2 are two scalars in F\n", + "z1 = 0\n", + "z2 = 8\n", + "So, x1 = 8\n", + "x2 = -8\n", + "Hence, T is onto.\n", + "inverse(T) = [8, -8]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "#x = round(rand(1,2) * 10)#\n", + "x1 = np.random.randint(1,9)\n", + "x2 = np.random.randint(1,9)\n", + "T = [x1+x2 ,x1]\n", + "print 'x1 = ',x1\n", + "print 'x2 = ',x2\n", + "print 'T(%d,%d) = '%(x1,x2),\n", + "print T\n", + "print 'If, T(x1,x2) = 0, then'\n", + "print 'x1 = x2 = 0'\n", + "print 'So, T is non-singular'\n", + "print 'z1,z2 are two scalars in F'\n", + "\n", + "z1 = np.random.randint(0,9)\n", + "z2 = np.random.randint(0,9)\n", + "print 'z1 = ',z1\n", + "print 'z2 = ',z2\n", + "x1 = z2#\n", + "x2 = z1 - z2#\n", + "print 'So, x1 = ',x1\n", + "print 'x2 = ',x2\n", + "print 'Hence, T is onto.'\n", + "Tinv = [z2, z1-z2]# \n", + "print 'inverse(T) = ',Tinv" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 89 Example 3.14" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "T is a linear operator on F**2 defined as:\n", + "T(x1,x2) = (x1,0)\n", + "B = {e1,e2} is a standard ordered basis for F**2,then\n", + "So, Te1 = T(1,0) = [1, 0]\n", + "So, Te2 = T(0,1) = [0, 0]\n", + "so,matrix T in ordered basis B is: \n", + "T = \n", + "[[1, 0], [0, 0]]\n" + ] + } + ], + "source": [ + "print 'T is a linear operator on F**2 defined as:'\n", + "print 'T(x1,x2) = (x1,0)'\n", + "print 'B = {e1,e2} is a standard ordered basis for F**2,then'\n", + "x1 = 1#\n", + "x2 = 0#\n", + "Te1 = [x1, 0]#\n", + "x1 = 0#\n", + "x2 = 1#\n", + "Te2 = [x1 ,0]#\n", + "print 'So, Te1 = T(1,0) = ',Te1\n", + "print 'So, Te2 = T(0,1) = ',Te2\n", + "print 'so,matrix T in ordered basis B is: '\n", + "T = [Te1,Te2]\n", + "print 'T = \\n',T" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 89 Example 3.15" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Differentiation operator D is defined as:\n", + "(Df1)(x) = 0\n", + "(Df2)(x) = 1\n", + "(Df3)(x) = 2*x\n", + "(Df4)(x) = 3*x**2\n", + "Matrix of D in ordered basis is:\n", + "[D] = \n", + "[[ 0. 1. 0. 0.]\n", + " [ 0. 0. 2. 0.]\n", + " [ 0. 0. 0. 3.]\n", + " [ 0. 0. 0. 0.]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import sympy as sp\n", + "print 'Differentiation operator D is defined as:'\n", + "D = np.zeros([4,4])\n", + "x=sp.Symbol('x')\n", + "for i in range(1,5):\n", + " t= i-1#\n", + " f = sp.diff(x**t,'x')\n", + " print '(Df%d)(x) = '%(i),\n", + " print f\n", + " if not(i == 1):\n", + " D[i-2,i-1] = i-1#\n", + " \n", + "\n", + "print 'Matrix of D in ordered basis is:'\n", + "print '[D] = \\n',D" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 92 Example 3.16" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "T is a linear operator on R**2 defined as T(x1,x2) = (x1,0)\n", + "So, the matrix T in standard ordered basis B = {e1,e2} is \n", + "[T]B = [[1 0]\n", + " [0 0]]\n", + "Let B is the ordered basis for R**2 consisting of vectors:\n", + "E1 = [1 1]\n", + "E2 = [2 1]\n", + "So, matrix P = \n", + "[[1 2]\n", + " [1 1]]\n", + "P inverse = \n", + "[[-1. 2.]\n", + " [ 1. -1.]]\n", + "So, matrix T in ordered basis B is [T]B = \n", + "[[-1. 0.]\n", + " [ 0. -0.]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "print 'T is a linear operator on R**2 defined as T(x1,x2) = (x1,0)'\n", + "print 'So, the matrix T in standard ordered basis B = {e1,e2} is '\n", + "T = np.array([[1, 0],[0, 0]])\n", + "print '[T]B = ',T\n", + "print 'Let B'' is the ordered basis for R**2 consisting of vectors:'\n", + "E1 = np.array([1, 1])\n", + "E2 = np.array([2 ,1])\n", + "print 'E1 = ',E1\n", + "print 'E2 = ',E2\n", + "P = np.transpose(([E1,E2]))\n", + "print 'So, matrix P = \\n',P\n", + "Pinv=np.linalg.inv(P)\n", + "print 'P inverse = \\n',Pinv\n", + "T1 = Pinv*T*P#\n", + "print 'So, matrix T in ordered basis B'' is [T]B'' = \\n',T1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 93 Example 3.17" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "g1 = f1\n", + "g2 = t*f1 + f2\n", + "g3 = t**2*f1 + 2*t*f2 + f3\n", + "g4 = t**3*f1 + 3*t**2*f2 + 3*t*f3 + f4\n", + "P = \n", + "Matrix([[1, t, t**2, t**3], [0, 1, 2*t, 3*t**2], [0, 0, 1, 3*t], [0, 0, 0, 1]])\n", + "inverse P = \n", + "Matrix([[1, -t, t**2, -t**3], [0, 1, -2*t, 3*t**2], [0, 0, 1, -3*t], [0, 0, 0, 1]])\n", + "Matrix of differentiation operator D in ordered basis B is:\n", + "D = \n", + "Matrix([[0, 1, 0, 0], [0, 0, 2, 0], [0, 0, 0, 3], [0, 0, 0, 0]])\n", + "Matrix of D in ordered basis B is:\n", + "inverse(P) * D * P = Matrix([[0, 1, 0, 0], [0, 0, 2, 0], [0, 0, 0, 3], [0, 0, 0, 0]])\n" + ] + } + ], + "source": [ + "import sympy as sp\n", + "t = sp.Symbol(\"t\")\n", + "print 'g1 = f1'\n", + "print 'g2 = t*f1 + f2'\n", + "print 'g3 = t**2*f1 + 2*t*f2 + f3'\n", + "print 'g4 = t**3*f1 + 3*t**2*f2 + 3*t*f3 + f4'\n", + "P = sp.Matrix(([1, t, t**2, t**3],[0 ,1 ,2*t, 3*t**2],[0, 0, 1, 3*t],[0, 0, 0, 1]))\n", + "print 'P = \\n',P\n", + "\n", + "print 'inverse P = \\n',sp.Matrix.inv(P)\n", + "\n", + "\n", + "\n", + "print 'Matrix of differentiation operator D in ordered basis B is:'# #As found in example 15\n", + "D = sp.Matrix(([0, 1, 0, 0],[0, 0, 2, 0],[0, 0, 0, 3],[0, 0, 0, 0]))\n", + "print 'D = \\n',D\n", + "print 'Matrix of D in ordered basis B'' is:'\n", + "print 'inverse(P) * D * P = ',sp.Matrix.inv(P)*D*P\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 98 Example 3.19" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "n = 8\n", + "A = \n", + "[[ 7. 3. 0. 4. 6. 8. 4. 4.]\n", + " [ 6. 4. 2. 8. 7. 8. 1. 7.]\n", + " [ 7. 0. 9. 3. 10. 9. 3. 8.]\n", + " [ 7. 5. 10. 1. 8. 6. 6. 5.]\n", + " [ 8. 8. 9. 9. 1. 9. 10. 4.]\n", + " [ 6. 3. 5. 2. 2. 4. 8. 4.]\n", + " [ 5. 1. 1. 2. 6. 9. 9. 5.]\n", + " [ 8. 6. 9. 9. 8. 9. 1. 2.]]\n", + "Trace of A:\n", + "tr(A) = 37.0\n", + "--------------------------------\n", + "c = 3\n", + "B = \n", + "[[ 4. 6. 10. 5. 8. 4. 1. 9.]\n", + " [ 9. 9. 3. 6. 3. 8. 2. 6.]\n", + " [ 1. 6. 0. 7. 7. 2. 8. 4.]\n", + " [ 5. 5. 9. 7. 9. 3. 9. 9.]\n", + " [ 7. 7. 10. 6. 1. 1. 7. 4.]\n", + " [ 0. 3. 10. 9. 5. 2. 8. 4.]\n", + " [ 1. 8. 2. 4. 5. 4. 4. 8.]\n", + " [ 7. 0. 1. 8. 2. 7. 4. 7.]]\n", + "Trace of B:\n", + "tr(B) = 34.0\n", + "tr(cA + B) = 145.0\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "def trace_matrix(M,n):\n", + " tr=0\n", + " for i in range(0,n):\n", + " tr = tr + M[i,i]#\n", + " return tr\n", + "#n = round(rand() * 10 + 2)#\n", + "n=np.random.randint(1,9)\n", + "print 'n = ',n\n", + "#A = round(rand(n,n) * 10)#\n", + "A=np.random.rand(n,n)\n", + "for x in range(0,n):\n", + " for y in range(0,n):\n", + " A[x,y]=round(A[x,y]*10)\n", + "print 'A = \\n',A\n", + "\n", + "\n", + "tr = 0#\n", + "print 'Trace of A:'\n", + "tr1 = trace_matrix(A,n)#\n", + "print 'tr(A) = ',tr1\n", + "print '--------------------------------'\n", + "#c = round(rand() * 10 + 2)#\n", + "c=np.random.randint(2,9)\n", + "print 'c = ',c\n", + "\n", + "B=np.random.rand(n,n)\n", + "for x in range(0,n):\n", + " for y in range(0,n):\n", + " B[x,y]=round(B[x,y]*10)\n", + "print 'B = \\n',B\n", + "\n", + "print 'Trace of B:'\n", + "tr2 = trace_matrix(B,n)#\n", + "print 'tr(B) = ',tr2\n", + "print 'tr(cA + B) = ',(c*tr1+tr2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 103 Example 3.23" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Matrix represented by given linear functionals on R**4:\n", + "A = \n", + "[[ 1 2 2 1]\n", + " [ 0 2 0 1]\n", + " [-2 0 -4 3]]\n", + "To find Row reduced echelon matrix of A given by R:\n", + "Applying row transformations on A,we get\n", + "R1 = R1-R2\n", + "A = \n", + "[[ 1 0 2 0]\n", + " [ 0 2 0 1]\n", + " [-2 0 -4 3]]\n", + "R3 = R3 + 2*R1\n", + "A = \n", + "[[1 0 2 0]\n", + " [0 2 0 1]\n", + " [0 0 0 3]]\n", + "R3 = R3/3\n", + "A = \n", + "[[1 0 2 0]\n", + " [0 2 0 1]\n", + " [0 0 0 1]]\n", + "R2 = R2/2\n", + "A = \n", + "[[1 0 2 0]\n", + " [0 1 0 0]\n", + " [0 0 0 1]]\n", + "R2 = R2 - 1/2*R3\n", + "A = \n", + "[[1 0 2 0]\n", + " [0 1 0 0]\n", + " [0 0 0 1]]\n", + "Row reduced echelon matrix of A is:\n", + "R = \n", + "[[1 0 2 0]\n", + " [0 1 0 0]\n", + " [0 0 0 1]]\n", + "Therefore,linear functionals g1,g2,g3 span the same subspace of (R**4)* as f1,f2,f3 are given by:\n", + "g1(x1,x2,x3,x4) = x1 + 2*x3\n", + "g1(x1,x2,x3,x4) = x2\n", + "g1(x1,x2,x3,x4) = x4\n", + "The subspace consists of the vectors with\n", + "x1 = -2*x3\n", + "x2 = x4 = 0\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "print 'Matrix represented by given linear functionals on R**4:'\n", + "A = np.array([[1, 2 ,2 ,1],[0, 2, 0, 1],[-2 ,0 ,-4, 3]])\n", + "print 'A = \\n',A\n", + "T = A #Temporary matrix to store A\n", + "print 'To find Row reduced echelon matrix of A given by R:'\n", + "print 'Applying row transformations on A,we get'\n", + "print 'R1 = R1-R2'\n", + "A[0,:] = A[0,:] - A[1,:]\n", + "print 'A = \\n',A\n", + "print 'R3 = R3 + 2*R1'\n", + "A[2,:] = A[2,:] + 2*A[0,:]\n", + "print 'A = \\n',A\n", + "print 'R3 = R3/3'\n", + "A[2,:] = 1./3*A[2,:]#\n", + "print 'A = \\n',A\n", + "print 'R2 = R2/2'\n", + "A[1,:] = 1./2*A[1,:]\n", + "print 'A = \\n',A\n", + "print 'R2 = R2 - 1/2*R3'\n", + "A[1,:] = A[1,:] - 1./2*A[2,:]\n", + "print 'A = \\n',A\n", + "R = A#\n", + "A = T#\n", + "print 'Row reduced echelon matrix of A is:'\n", + "print 'R = \\n',R\n", + "print 'Therefore,linear functionals g1,g2,g3 span the same subspace of (R**4)* as f1,f2,f3 are given by:'\n", + "print 'g1(x1,x2,x3,x4) = x1 + 2*x3'\n", + "print 'g1(x1,x2,x3,x4) = x2'\n", + "print 'g1(x1,x2,x3,x4) = x4'\n", + "print 'The subspace consists of the vectors with'\n", + "print 'x1 = -2*x3'\n", + "print 'x2 = x4 = 0'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 104 Example 3.24" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "W be the subspace of R**5 spanned by vectors:\n", + "a1 = [2, -2, 3, 4, -1]\n", + "a2 = [-1, 1, 2, 5, 2]\n", + "a3 = [0, 0, -1, -2, 3]\n", + "a4 = [1, -1, 2, 3, 0]\n", + "Matrix A by the row vectors a1,a2,a3,a4 will be:\n", + "A = \n", + "[[ 2 -2 3 4 -1]\n", + " [-1 1 2 5 2]\n", + " [ 0 0 -1 -2 3]\n", + " [ 1 -1 2 3 0]]\n", + "After Applying row transformations, we get the row reduced echelon matrix R of A\n", + "R = \n", + "[[ 1 -1 0 -1 0]\n", + " [ 0 0 1 2 0]\n", + " [ 0 0 0 0 1]\n", + " [ 0 0 0 0 0]]\n", + "Then we obtain all the linear functionals f by assigning arbitrary values to c2 and c4\n", + "Let c2 = a, c4 = b then c1 = a+b, c3 = -2b, c5 = 0.\n", + "So, W0 consists all linear functionals f of the form\n", + "f(x1,x2,x3,x4,x5) = (a+b)x1 + ax2 -2bx3 + bx4\n", + "Dimension of W0 = 2 and basis {f1,f2} can be found by first taking a = 1, b = 0. Then a = 0,b = 1\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "print 'W be the subspace of R**5 spanned by vectors:'\n", + "a1 = [2, -2, 3 ,4 ,-1]#\n", + "a2 = [-1, 1, 2, 5, 2]#\n", + "a3 = [0 ,0 ,-1, -2, 3]#\n", + "a4 = [1 ,-1, 2, 3 ,0]#\n", + "print 'a1 = ',a1\n", + "print 'a2 = ',a2\n", + "print 'a3 = ',a3\n", + "print 'a4 = ',a4\n", + "print 'Matrix A by the row vectors a1,a2,a3,a4 will be:'\n", + "A = np.array([a1,a2,a3,a4])\n", + "print 'A = \\n',A\n", + "print 'After Applying row transformations, we get the row reduced echelon matrix R of A'\n", + "\n", + "T = A# #Temporary matrix to store A\n", + "#R1 = R1 - R4 and R2 = R2 + R4\n", + "A[0,:] = A[0,:] - A[3,:]#\n", + "A[1,:] = A[1,:] + A[3,:]#\n", + "#R2 = R2/2\n", + "A[1,:] = 1./2 * A[1,:]#\n", + "#R3 = R3 + R2 and R4 = R4 - R1\n", + "A[2,:] = A[2,:] + A[1,:]#\n", + "A[3,:] = A[3,:] - A[0,:]#\n", + "#R3 = R3 - R4\n", + "A[2,:] = A[2,:] - A[3,:]#\n", + "#R3 = R3/3\n", + "A[2,:] = 1./3 * A[2,:]#\n", + "#R2 = R2 - R3\n", + "A[1,:] = A[1,:] - A[2,:]#\n", + "#R2 = R2/2 and R4 = R4 - R2 - R3\n", + "A[1,:] = 1./2 * A[1,:]#\n", + "A[3,:] = A[3,:] - A[1,:] - A[2,:]#\n", + "#R1 = R1 - R2 + R3\n", + "A[0,:] = A[0,:] - A[1,:] + A[2,:]#\n", + "R = A#\n", + "A = T#\n", + "print 'R = \\n',R\n", + "print 'Then we obtain all the linear functionals f by assigning arbitrary values to c2 and c4'\n", + "print 'Let c2 = a, c4 = b then c1 = a+b, c3 = -2b, c5 = 0.'\n", + "print 'So, W0 consists all linear functionals f of the form'\n", + "print 'f(x1,x2,x3,x4,x5) = (a+b)x1 + ax2 -2bx3 + bx4'\n", + "print 'Dimension of W0 = 2 and basis {f1,f2} can be found by first taking a = 1, b = 0. Then a = 0,b = 1'" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter4.ipynb b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter4.ipynb new file mode 100644 index 00000000..3fb3b384 --- /dev/null +++ b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter4.ipynb @@ -0,0 +1,328 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 4 - Polynomials" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 121 Example 4.3" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "C is the field of complex numbers\n", + "f = x**2 + 2\n", + "if a = C and z belongs to C, then f(z) = z**2 + 2\n", + "f(2) = 6\n", + "f(1+1J/1-1J) = (1+0j)\n", + "----------------------------------------\n", + "If a is the algebra of all 2*2 matrices over C and\n", + "B = \n", + "[[ 1 0]\n", + " [-1 2]]\n", + "[[ 3. 0.]\n", + " [ 1. 6.]] then, f(B) = \n", + "----------------------------------------\n", + "If a is algebra of all linear operators on C**3\n", + "And T is element of a as:\n", + "T(c1,c2,c3) = (i*2**1/2*c1,c2,i*2**1/2*c3)\n", + "Then, f(T)(c1,c2,c3) = (0,3*c2,0)\n", + "----------------------------------------\n", + "If a is the algebra of all polynomials over C\n", + "And, g = x**4 + 3.0*I\n", + "Then f(g) = (16+3j)\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import sympy as sp\n", + "from sympy.polys.polyfuncs import horner\n", + "print 'C is the field of complex numbers'\n", + "x = sp.Symbol(\"x\")\n", + "def f(x):\n", + " ff= x**2 + 2\n", + " return ff\n", + "print 'f = ',f(x)\n", + "#part a\n", + "print 'if a = C and z belongs to C, then f(z) = z**2 + 2'\n", + "print 'f(2) = ',f(2)\n", + "\n", + "\n", + "print 'f(1+1J/1-1J) = ',f((1+1J)/(1-1J))\n", + "print '----------------------------------------'\n", + "\n", + "\n", + "#part b\n", + "print 'If a is the algebra of all 2*2 matrices over C and'\n", + "B = np.array([[1 ,0],[-1, 2]])\n", + "print 'B = \\n',B\n", + "print 2*np.identity(2) + B**2,'then, f(B) = '\n", + "print '----------------------------------------'\n", + "\n", + "#part c\n", + "print 'If a is algebra of all linear operators on C**3'\n", + "print 'And T is element of a as:'\n", + "print 'T(c1,c2,c3) = (i*2**1/2*c1,c2,i*2**1/2*c3)'\n", + "print 'Then, f(T)(c1,c2,c3) = (0,3*c2,0)'\n", + "print '----------------------------------------'\n", + "#part d\n", + "print 'If a is the algebra of all polynomials over C'\n", + "def g(x):\n", + " gg= x**4 + 3*1J\n", + " return gg\n", + "print 'And, g = ',g(x)\n", + "print 'Then f(g) = ',g(2)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 131 Example 4.7" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "M = (x+2)F[x] + (x**2 + 8x + 16)F[x]\n", + "We assert, M = F[x]\n", + "M contains: x**2 - x*(x + 2) + 8*x + 16\n", + "And hence M contains: x**2 - x*(x + 2) + 2*x + 4\n", + "Thus the scalar polynomial 1 belongs to M as well all its multiples.\n" + ] + } + ], + "source": [ + "import sympy as sp\n", + "x = sp.Symbol('x')\n", + "p1 = x + 2#\n", + "p2 = x**2 + 8*x + 16#\n", + "print 'M = (x+2)F[x] + (x**2 + 8x + 16)F[x]'\n", + "print 'We assert, M = F[x]'\n", + "print 'M contains:',\n", + "t = p2 - x*p1#\n", + "print t\n", + "print 'And hence M contains:',\n", + "print t - 6*p1\n", + "print 'Thus the scalar polynomial 1 belongs to M as well all its multiples.'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 133 Example 4.8" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "p1 = x + 2\n", + "p2 = x**2 + 8*x + 16\n", + "M = (x+2)F[x] + (x**2 + 8x + 16)F[x]\n", + "We assert, M = F[x]\n", + "M contains: x**2 - x*(x + 2) + 8*x + 16\n", + "And hence M contains: x**2 - x*(x + 2) + 2*x + 4\n", + "Thus the scalar polynomial 1 belongs to M as well all its multiples\n", + "So, gcd(p1,p2) = 1\n", + "----------------------------------------------\n", + "p1 = (x - 2)**2*(x + 1.0*I)\n", + "p2 = (x - 2)*(x**2 + 1)\n", + "M = (x - 2)**2*(x+1J)F[x] + (x-2)*(x**2 + 1\n", + "The ideal M contains p1 - p2 i.e., (x - 2)**2*(x + 1.0*I) - (x - 2)*(x**2 + 1)\n", + "Hence it contains (x-2)(x+i), which is monic and divides both,\n", + "So, gcd(p1,p2) = (x-2)(x+i)\n", + "----------------------------------------------\n" + ] + } + ], + "source": [ + "import sympy as sp\n", + "x = sp.Symbol('x')\n", + "\n", + "#part a\n", + "p1 = x + 2#\n", + "p2 = x**2 + 8*x + 16#\n", + "print 'p1 = ',p1\n", + "print 'p2 = ',p2\n", + "print 'M = (x+2)F[x] + (x**2 + 8x + 16)F[x]'\n", + "print 'We assert, M = F[x]'\n", + "print 'M contains:',\n", + "t = p2 - x*p1#\n", + "print t\n", + "print 'And hence M contains:',\n", + "print t - 6*p1\n", + "print 'Thus the scalar polynomial 1 belongs to M as well all its multiples'\n", + "print 'So, gcd(p1,p2) = 1'\n", + "print '----------------------------------------------'\n", + "#part b\n", + "p1 = (x - 2)**2*(x+1J)#\n", + "p2 = (x-2)*(x**2 + 1)#\n", + "print 'p1 = ',p1\n", + "print 'p2 = ',p2\n", + "print 'M = (x - 2)**2*(x+1J)F[x] + (x-2)*(x**2 + 1'\n", + "print 'The ideal M contains p1 - p2 i.e.,',\n", + "print p1 - p2\n", + "print 'Hence it contains (x-2)(x+i), which is monic and divides both,'\n", + "print 'So, gcd(p1,p2) = (x-2)(x+i)'\n", + "print '----------------------------------------------'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 133 Example 4.9" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "M is the ideal in F[x] generated by:\n", + "(x-1)*(x+2)**2\n", + "(x+2)**2*(x+3)\n", + "(x-3) and\n", + "M = (x-1)*(x+2)**2 F[x] + (x+2)**2*(x-3) + (x-3)\n", + "Then M contains: 0\n", + "i.e., M contains (x+2)**2\n", + "and since, (x+2)**2 = (x-3)(x-7) - 17\n", + "So M contains the scalar polynomial 1.\n", + "So, M = F[x] and given polynomials are relatively prime.\n" + ] + } + ], + "source": [ + "import sympy as sp\n", + "x = sp.Symbol('x')\n", + "\n", + "print 'M is the ideal in F[x] generated by:'\n", + "print '(x-1)*(x+2)**2'\n", + "print '(x+2)**2*(x+3)'\n", + "print '(x-3)','and'\n", + "p1 = (x-1)*(x+2)**2#\n", + "p2 = (x+2)**2*(x-3)#\n", + "p3 = (x-3)#\n", + "print 'M = (x-1)*(x+2)**2 F[x] + (x+2)**2*(x-3) + (x-3)'\n", + "print 'Then M contains:',\n", + "t = 1/2*(x+2)**2*((x-1) - (x-3))#\n", + "print t\n", + "print 'i.e., M contains (x+2)**2'\n", + "print 'and since, (x+2)**2 = (x-3)(x-7) - 17'\n", + "print 'So M contains the scalar polynomial 1.'\n", + "print 'So, M = F[x] and given polynomials are relatively prime.'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 135 Example 4.10" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x**2 + 1 P = \n", + "P is reducible over complex numbers as: = x**2 + 1\n", + "(x-i)(x+i)\n", + "Whereas, P is irreducible over real numbers as: = x**2 + 1\n", + "(ax + b)(ax + b)\n", + "For, a,a,b,b to be in R,\n", + "aa = 1\n", + "ab + ba = 0\n", + "bb = 1\n", + "=> a**2 + b**2 = 0\n", + "=> a = b = 0\n" + ] + } + ], + "source": [ + "import sympy as sp\n", + "x = sp.Symbol('x')\n", + "P = x**2 + 1#\n", + "print P,'P = '\n", + "print 'P is reducible over complex numbers as: ',\n", + "print '=',P\n", + "print '(x-i)(x+i)'\n", + "print 'Whereas, P is irreducible over real numbers as:',\n", + "print '=',P\n", + "print '(ax + b)(a''x + b'')'\n", + "print 'For, a,a'',b,b'' to be in R,'\n", + "print 'aa'' = 1'\n", + "print 'ab'' + ba'' = 0'\n", + "print 'bb'' = 1'\n", + "print '=> a**2 + b**2 = 0'\n", + "print '=> a = b = 0'" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter5.ipynb b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter5.ipynb new file mode 100644 index 00000000..9d29340c --- /dev/null +++ b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter5.ipynb @@ -0,0 +1,358 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 5 - Determinants" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 143 Example 5.3" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A = \n", + "[[ 3. 9.]\n", + " [ 3. 1.]]\n", + "D1(A) = 3.0\n", + "D2(A) = -27.0\n", + "D(A) = D1(A) + D2(A) = -24.0\n", + "That is, D is a 2-linear function.\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "A = np.random.rand(2,2)\n", + "for x in range(0,2):\n", + " for y in range(0,2):\n", + " A[x,y]=round(A[x,y]*10)\n", + "print 'A = \\n',A\n", + "\n", + "D1 = A[0,0]*A[1,1]\n", + "D2 = - A[0,1]*A[1,0]\n", + "print 'D1(A) = ',D1\n", + "print 'D2(A) = ',D2\n", + "print 'D(A) = D1(A) + D2(A) = ',D1 + D2\n", + "print 'That is, D is a 2-linear function.'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 145 Example 5.4" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A = \n", + "Matrix([[x, 0, -x**2], [0, 1, 0], [1, 0, x**3]])\n", + "e1,e2,e3 are the rows of 3*3 identity matrix, then\n", + "e1 = [ 1. 0. 0.]\n", + "e2 = [ 0. 1. 0.]\n", + "e3 = [ 0. 0. 1.]\n", + "D(A) = D(x*e1 - x**2*e3, e2, e1 + x**3*e3)\n", + "Since, D is linear as a function of each row,\n", + "D(A) = x*D(e1,e2,e1 + x**3*e3) - x**2*D(e3,e2,e1 + x**3*e3)\n", + "D(A) = x*D(e1,e2,e1) + x**4*D(e1,e2,e3) - x**2*D(e3,e2,e1) - x**5*D(e3,e2,e3)\n", + "As D is alternating, So\n", + "D(A) = (x**4 + x**2)*D(e1,e2,e3)\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import sympy as sp\n", + "\n", + "x = sp.Symbol(\"x\")\n", + "A = sp.Matrix(([x, 0, -x**2],[0, 1, 0],[1, 0, x**3]))\n", + "print 'A = \\n',A\n", + "print 'e1,e2,e3 are the rows of 3*3 identity matrix, then'\n", + "T = np.identity(3)\n", + "e1 = T[0,:]\n", + "e2 = T[1,:]\n", + "e3 = T[2,:]\n", + "print 'e1 = ',e1\n", + "print 'e2 = ',e2\n", + "print 'e3 = ',e3\n", + "print 'D(A) = D(x*e1 - x**2*e3, e2, e1 + x**3*e3)'\n", + "print 'Since, D is linear as a function of each row,'\n", + "print 'D(A) = x*D(e1,e2,e1 + x**3*e3) - x**2*D(e3,e2,e1 + x**3*e3)'\n", + "print 'D(A) = x*D(e1,e2,e1) + x**4*D(e1,e2,e3) - x**2*D(e3,e2,e1) - x**5*D(e3,e2,e3)'\n", + "print 'As D is alternating, So'\n", + "print 'D(A) = (x**4 + x**2)*D(e1,e2,e3)'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 147 Example 5.5" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A = \n", + "Matrix([[x - 1, x**2, x**3], [0, x - 2, 1], [0, 0, x - 3]])\n", + "\n", + "E(A) = x**3 - 6*x**2 + 11*x - 6\n", + "--------------------------------------\n", + "A = \n", + "Matrix([[0, 1, 0], [0, 0, 1], [1, 0, 0]])\n", + "\n", + "E(A) = 1\n" + ] + } + ], + "source": [ + "import sympy as sp\n", + "\n", + "#part a\n", + "x = sp.Symbol('x')\n", + "A = sp.Matrix(([x-1, x**2, x**3],[0, x-2, 1],[0, 0, x-3]))\n", + "print 'A = \\n',A\n", + "print '\\nE(A) = ',A.det()\n", + "print '--------------------------------------'\n", + "#part b\n", + "A = sp.Matrix(([0 ,1, 0],[0, 0, 1],[1 ,0, 0]))\n", + "print 'A = \\n',A\n", + "print '\\nE(A) = ',A.det()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 158 Example 5.6" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Given Matrix:\n", + "A = \n", + "[[ 1 -1 2 3]\n", + " [ 2 2 0 2]\n", + " [ 4 1 -1 -1]\n", + " [ 1 2 3 0]]\n", + "After, Subtracting muliples of row 1 from rows 2 3 4\n", + "R2 = R2 - 2*R1\n", + "R3 = R3 - 4*R1\n", + "R4 = R4 - R1\n", + "A = \n", + "[[ 1 -1 2 3]\n", + " [ 0 4 -4 -4]\n", + " [ 0 5 -9 -13]\n", + " [ 0 3 1 -3]]\n", + "We obtain the same determinant as before.\n", + "Now, applying some more row transformations as:\n", + "R3 = R3 - 5/4 * R2\n", + "R4 = R4 - 3/4 * R2\n", + "We get B as:\n", + "B = \n", + "[[ 1 -1 2 3]\n", + " [ 0 4 -4 -4]\n", + " [ 0 0 -4 -8]\n", + " [ 0 0 4 0]]\n", + "Now,determinant of A and B will be same\n", + "det A = det B = 128.0\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "\n", + "print 'Given Matrix:'\n", + "A = np.array([[1, -1, 2, 3],[ 2, 2, 0, 2],[ 4, 1 ,-1, -1],[1, 2, 3, 0]])\n", + "print 'A = \\n',A\n", + "print 'After, Subtracting muliples of row 1 from rows 2 3 4'\n", + "print 'R2 = R2 - 2*R1'\n", + "A[1,:] = A[1,:] - 2 * A[0,:]\n", + "print 'R3 = R3 - 4*R1'\n", + "A[2,:] = A[2,:] - 4 * A[0,:]\n", + "print 'R4 = R4 - R1'\n", + "A[3,:] = A[3,:] - A[0,:]\n", + "print 'A = \\n',A\n", + "T = A# #Temporary matrix to store A\n", + "print 'We obtain the same determinant as before.'\n", + "print 'Now, applying some more row transformations as:'\n", + "print 'R3 = R3 - 5/4 * R2'\n", + "T[2,:] = T[2,:] - 5./4 * T[1,:]\n", + "print 'R4 = R4 - 3/4 * R2'\n", + "T[3,:] = T[3,:] - 3./4 * T[1,:]\n", + "B = T#\n", + "print 'We get B as:'\n", + "print 'B = \\n',B\n", + "print 'Now,determinant of A and B will be same'\n", + "print 'det A = det B = ',np.linalg.det(B)\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 160 Example 5.7" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A = \n", + "Matrix([[x**2 + x, x + 1], [x - 1, 1]])\n", + "B = \n", + "Matrix([[x**2 - 1, x + 2], [x**2 - 2*x + 3, x]])\n", + "det A = x + 1\n", + "det B = -6\n", + "Thus, A is not invertible over K whereas B is invertible\n", + "adj A = Matrix([[(x + 1)*((x - 1)/(x*(x + 1)) + 1/(x*(x + 1))), -x - 1], [-x + 1, x*(x + 1)]])\n", + "adj B = Matrix([[-6*(x + 2)*(-x**2/6 + 1/6)*(x**2 - 2*x + 3)/(x**2 - 1)**2 - 6/(x**2 - 1), 6*(x + 2)*(-x**2/6 + 1/6)/(x**2 - 1)], [6*(-x**2/6 + 1/6)*(x**2 - 2*x + 3)/(x**2 - 1), x**2 - 1]])\n", + "(adj A)A = (x+1)I\n", + "(adj B)B = -6I\n", + "B inverse = Matrix([[(x + 2)*(-x**2/6 + 1/6)*(x**2 - 2*x + 3)/(x**2 - 1)**2 + 1/(x**2 - 1), -(x + 2)*(-x**2/6 + 1/6)/(x**2 - 1)], [-(-x**2/6 + 1/6)*(x**2 - 2*x + 3)/(x**2 - 1), -x**2/6 + 1/6]])\n" + ] + } + ], + "source": [ + "import sympy as sp\n", + "import numpy as np\n", + "\n", + "x = sp.Symbol(\"x\")\n", + "A = sp.Matrix(([x**2+x, x+1],[x-1, 1]))\n", + "B = sp.Matrix(([x**2-1, x+2],[x**2-2*x+3, x]))\n", + "print 'A = \\n',A\n", + "print 'B = \\n',B\n", + "print 'det A = ',A.det()\n", + "print 'det B = ',B.det()\n", + "print 'Thus, A is not invertible over K whereas B is invertible'\n", + "\n", + "print 'adj A = ',(A**-1)*A.det()\n", + "print 'adj B = ',(B**-1)*B.det()\n", + "print '(adj A)A = (x+1)I'\n", + "print '(adj B)B = -6I'\n", + "print 'B inverse = ',B**-1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 161 Example 5.8" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A = \n", + "[[1 2]\n", + " [3 4]]\n", + "det A = Determinant of A is: -2.0\n", + "Adjoint of A is: [[-2. -0. ]\n", + " [-0. -0.5]]\n", + "Thus, A is not invertible as a matrix over the ring of integers.\n", + "But, A can be regarded as a matrix over field of rational numbers.\n", + "Then, A is invertible and Inverse of A is: [[-2. 1. ]\n", + " [ 1.5 -0.5]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "\n", + "A = np.array([[1, 2],[3, 4]])\n", + "print 'A = \\n',A\n", + "d = np.linalg.det(A)#\n", + "print 'det A = ','Determinant of A is:',d\n", + "\n", + "\n", + "ad = (d* np.identity(2)) / A\n", + "print 'Adjoint of A is:',ad\n", + "\n", + "\n", + "print 'Thus, A is not invertible as a matrix over the ring of integers.'\n", + "print 'But, A can be regarded as a matrix over field of rational numbers.'\n", + "In = np.linalg.inv(A)#\n", + "#The A inverse matrix given in book has a wrong entry of 1/2. It should be -1/2.\n", + "print 'Then, A is invertible and Inverse of A is:',In\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter6.ipynb b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter6.ipynb new file mode 100644 index 00000000..9ad1cbe2 --- /dev/null +++ b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter6.ipynb @@ -0,0 +1,503 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 6 - Elementary canonical forms" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 184 Example 6.1" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Standard ordered matrix for Linear operator T on R**2 is:\n", + "A = \n", + "Matrix([[0, -1], [1, 0]])\n", + "The characteristic polynomial for T or A is: Matrix([[x, 1], [-1, x]])\n", + "Since this polynomial has no real roots,T has no characteristic values.\n" + ] + } + ], + "source": [ + "import sympy as sp\n", + "print 'Standard ordered matrix for Linear operator T on R**2 is:'\n", + "A = sp.Matrix(([0, -1],[1 ,0]))\n", + "print 'A = \\n',A\n", + "print 'The characteristic polynomial for T or A is:',\n", + "x = sp.Symbol(\"x\")\n", + "p = (x*sp.eye(2)-A)\n", + "print p\n", + "print 'Since this polynomial has no real roots,T has no characteristic values.'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 184 Example 6.2" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A = \n", + "Matrix([[3, 1, -1], [2, 2, -1], [2, 2, 0]])\n", + "Characteristic polynomial for A is: x**3 - 5*x**2 + 8*x - 4\n", + "or\n", + "(x-1)(x-2)**2\n", + "The characteristic values of A are:\n", + "[1, 2]\n", + "Now, A-I = \n", + "Matrix([[2, 1, -1], [2, 1, -1], [2, 2, -1]])\n", + "rank of A - I= 2\n", + "So, nullity of T-I = 1\n", + "The vector that spans the null space of T-I = [1, 0, 2]\n", + "Now,A-2I = \n", + "Matrix([[1, 1, -1], [2, 0, -1], [2, 2, -2]])\n", + "rank of A - 2I= 2\n", + "T*alpha = 2*alpha if alpha is a scalar multiple of a2\n", + "a2 = [1, 1, 2]\n" + ] + } + ], + "source": [ + "import sympy as sp\n", + "A = sp.Matrix(([3, 1, -1],[ 2, 2, -1],[2, 2, 0]))\n", + "print 'A = \\n',A\n", + "print 'Characteristic polynomial for A is:',\n", + "x=sp.Symbol('x')\n", + "p = A.charpoly(x)#\n", + "print p.as_expr()\n", + "print 'or'\n", + "print '(x-1)(x-2)**2'\n", + "\n", + "r = sp.solve(p.as_expr())#\n", + "[m,n] = A.shape\n", + "print 'The characteristic values of A are:'\n", + "print r #print round(r)\n", + "B = A-sp.eye(m)\n", + "print 'Now, A-I = \\n',B\n", + "\n", + "print 'rank of A - I= ',B.rank()\n", + "print 'So, nullity of T-I = 1'\n", + "a1 = [1 ,0 ,2]#\n", + "print 'The vector that spans the null space of T-I = ',a1\n", + "B = A-2*sp.eye(m)\n", + "print 'Now,A-2I = \\n',B\n", + "print 'rank of A - 2I= ',B.rank()\n", + "print 'T*alpha = 2*alpha if alpha is a scalar multiple of a2'\n", + "a2 = [1 ,1 ,2]\n", + "print 'a2 = ',a2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 187 Example 6.3" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Standard ordered matrix for Linear operator T on R**3 is:\n", + "A = \n", + "Matrix([[5, -6, -6], [-1, 4, 2], [3, -6, -4]])\n", + "xI - A = \n", + "Matrix([[x - 5, 6, 6], [1, x - 4, -2], [-3, 6, x + 4]])\n", + "Applying row and column transformations:\n", + "C2 = C2 - C3\n", + "=>\n", + "Matrix([[x - 5, 0, 6], [1, x - 2, -2], [-3, -x + 2, x + 4]])\n", + "Taking (x-2) common from C2\n", + "=>\n", + " * x - 2\n", + "Matrix([[x - 5, 0, 6], [1, 1, -2], [-3, (-x + 2)/(x - 2), x + 4]])\n", + "R3 = R3 + R2\n", + "=>\n", + " * x - 2\n", + "Matrix([[x - 5, 0, 6], [1, 1, -2], [-2, (-x + 2)/(x - 2) + 1, x + 2]])\n", + "=>\n", + " * x - 2\n", + "Matrix([[x - 5, 6], [-2, x + 2]])\n", + "=>\n", + " * x - 2\n", + "x**2 - 3*x + 2\n", + "This is the characteristic polynomial\n", + "Now, A - I = Matrix([[4, -6, -6], [-1, 3, 2], [3, -6, -5]])\n", + "And, A- 2I = Matrix([[3, -6, -6], [-1, 2, 2], [3, -6, -6]])\n", + "rank(A-I) = 2\n", + "rank(A-2I) = 2\n", + "W1,W2 be the spaces of characteristic vectors associated with values 1,2\n", + "So by theorem 2, T is diagonalizable\n", + "Null space of (T- I) i.e basis of W1 is spanned by a1 = [[ 3 -1 3]]\n", + "Null space of (T- 2I) i.e. basis of W2 is spanned by vectors x1,x2,x3 such that x1 = 2x1 + 2x3\n", + "One example :\n", + "a2 = [[2 1 0]]\n", + "a3 = [[2 0 1]]\n", + "The diagonal matrix is:\n", + "D = [[1 0 0]\n", + " [0 2 0]\n", + " [0 0 2]]\n", + "The standard basis matrix is denoted as:\n", + "P = [[ 3 2 2]\n", + " [-1 1 0]\n", + " [ 3 0 1]]\n", + "AP = Matrix([[3, 4, 4], [-1, 2, 0], [3, 0, 2]])\n", + "PD = [[3 0 0]\n", + " [0 2 0]\n", + " [0 0 2]]\n", + "That is, AP = PD\n", + "=> inverse(P)*A*P = D\n" + ] + } + ], + "source": [ + "import sympy as sp\n", + "import numpy as np\n", + "print 'Standard ordered matrix for Linear operator T on R**3 is:'\n", + "A = sp.Matrix(([5, -6, -6],[ -1, 4, 2],[ 3, -6, -4]))\n", + "print 'A = \\n',A\n", + "print 'xI - A = '\n", + "B = sp.eye(3)\n", + "x = sp.Symbol('x')\n", + "P = x*B - A#\n", + "print P\n", + "\n", + "print 'Applying row and column transformations:'\n", + "print 'C2 = C2 - C3'\n", + "P[:,1] = P[:,1] - P[:,2]\n", + "print '=>'\n", + "print P\n", + "print 'Taking (x-2) common from C2'\n", + "c = x-2#\n", + "P[:,1] = P[:,1] / (x-2)\n", + "print '=>'\n", + "print ' * ', c\n", + "print P\n", + "print 'R3 = R3 + R2'\n", + "P[2,:] = P[2,:] + P[1,:]\n", + "print '=>'\n", + "print ' * ', c\n", + "print P\n", + "P = sp.Matrix(([P[0,0], P[0,2]],[P[2,0], P[2,2]]))\n", + "print '=>'\n", + "print ' * ', c\n", + "print P\n", + "print '=>'\n", + "print ' * ',c\n", + "print P.det()\n", + "print 'This is the characteristic polynomial'\n", + "\n", + "print 'Now, A - I = ',A-B\n", + "print 'And, A- 2I = ',A-2*B\n", + "print 'rank(A-I) = ',np.rank(A-B)\n", + "\n", + "print 'rank(A-2I) = ',np.rank(A-2*B)\n", + "print 'W1,W2 be the spaces of characteristic vectors associated with values 1,2'\n", + "print 'So by theorem 2, T is diagonalizable'\n", + "a1 = np.array([[3, -1 ,3]])\n", + "a2 = np.array([[2, 1, 0]])\n", + "a3 = np.array([[2, 0, 1]])\n", + "print 'Null space of (T- I) i.e basis of W1 is spanned by a1 = ',a1\n", + "print 'Null space of (T- 2I) i.e. basis of W2 is spanned by vectors x1,x2,x3 such that x1 = 2x1 + 2x3'\n", + "print 'One example :'\n", + "print 'a2 = ',a2\n", + "print 'a3 = ',a3\n", + "print 'The diagonal matrix is:'\n", + "D = np.array([[1 ,0 ,0 ],[0, 2, 0],[0, 0, 2]])\n", + "print 'D = ',D\n", + "print 'The standard basis matrix is denoted as:'\n", + "P = np.transpose(np.vstack([a1,a2,a3]))\n", + "print 'P = ',P\n", + "print 'AP = ',A*P\n", + "print 'PD = ',P*D\n", + "print 'That is, AP = PD'\n", + "print '=> inverse(P)*A*P = D'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 193 Example 6.4" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A = \n", + "[[ 5 -6 -6]\n", + " [-1 4 2]\n", + " [ 3 -6 -4]]\n", + "Characteristic polynomial of A is:\n", + "f = (x-1)(x-2)**2\n", + "i.e., f = (x - 2)**2*(x - 1)\n", + "(A-I)(A-2I) = Matrix([[0, 0, 0], [0, 0, 0], [0, 0, 0]])\n", + "Since, (A-I)(A-2I) = 0. So, Minimal polynomial for above is:\n", + "p = (x - 2)*(x - 1)\n", + "---------------------------------------\n", + "A = \n", + "[[ 3 1 -1]\n", + " [ 2 2 -1]\n", + " [ 2 2 0]]\n", + "Characteristic polynomial of A is:\n", + "f = (x-1)(x-2)**2\n", + "i.e., f = (x - 2)**2*(x - 1)\n", + "(A-I)(A-2I) = Matrix([[2, 0, -1], [2, 0, -1], [4, 0, -2]])\n", + "Since, (A-I)(A-2I) is not equal to 0. T is not diagonalizable. So, Minimal polynomial cannot be p.\n", + "---------------------------------------\n", + "A = \n", + "[[ 0 -1]\n", + " [ 1 0]]\n", + "Characteristic polynomial of A is:\n", + "f = x**2 + 1\n", + "A**2 + I = Matrix([[1, 1], [1, 1]])\n", + "Since, A**2 + I = 0, so minimal polynomial is\n", + "p = x**2 + 1\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import sympy as sp\n", + "\n", + "x = sp.Symbol(\"x\")\n", + "A = np.array([[5, -6, -6],[ -1, 4 ,2],[ 3, -6, -4]]) #Matrix given in Example 3\n", + "print 'A = \\n',A\n", + "f = (x-1)*(x-2)**2# \n", + "print 'Characteristic polynomial of A is:'\n", + "print 'f = (x-1)(x-2)**2'\n", + "print 'i.e., f = ',f\n", + "p = (x-1)*(x-2)#\n", + "print '(A-I)(A-2I) = ',(A-sp.eye(3))*(A-2 * sp.eye(3))\n", + "print 'Since, (A-I)(A-2I) = 0. So, Minimal polynomial for above is:'\n", + "print 'p = ',p\n", + "print '---------------------------------------'\n", + "\n", + "A = np.array([[3, 1 ,-1],[ 2, 2 ,-1],[2, 2, 0]]) #Matrix given in Example 2\n", + "print 'A = \\n',A\n", + "f = (x-1)*(x-2)**2# \n", + "print 'Characteristic polynomial of A is:'\n", + "print 'f = (x-1)(x-2)**2'\n", + "print 'i.e., f = ',f\n", + "print '(A-I)(A-2I) = ',(A-sp.eye(3))*(A-2 * sp.eye(3))\n", + "print 'Since, (A-I)(A-2I) is not equal to 0. T is not diagonalizable. So, Minimal polynomial cannot be p.'\n", + "print '---------------------------------------'\n", + "A = np.array([[0, -1],[1, 0]])\n", + "print 'A = \\n',A\n", + "f = x**2 + 1#\n", + "print 'Characteristic polynomial of A is:'\n", + "print 'f = ',f\n", + "print 'A**2 + I = ',A**2 + sp.eye(2)\n", + "print 'Since, A**2 + I = 0, so minimal polynomial is'\n", + "p = x**2 + 1\n", + "print 'p = ',p" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 197 Example 6.5" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A = \n", + "[[0 1 0 1]\n", + " [1 0 1 0]\n", + " [0 1 0 1]\n", + " [1 0 1 0]]\n", + "Computing powers on A:\n", + "A**2 = \n", + "[[0 1 0 1]\n", + " [1 0 1 0]\n", + " [0 1 0 1]\n", + " [1 0 1 0]]\n", + "A**3 = \n", + "[[0 1 0 1]\n", + " [1 0 1 0]\n", + " [0 1 0 1]\n", + " [1 0 1 0]]\n", + "if p = x**3 - 4x, then\n", + "p(A) = [[ 0 -3 0 -3]\n", + " [-3 0 -3 0]\n", + " [ 0 -3 0 -3]\n", + " [-3 0 -3 0]]\n", + "Minimal polynomial for A is: x**3 - 4*x\n", + "Characteristic values for A are: [-2, 0, 2]\n", + "Rank(A) = 2\n", + "So, from theorem 2, characteristic polynomial for A is: x**4 - 4*x**2\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import sympy as sp\n", + "A = np.array([[0, 1, 0, 1],[1, 0 ,1 ,0],[0, 1, 0, 1],[1, 0, 1, 0]])\n", + "print 'A = \\n',A\n", + "print 'Computing powers on A:'\n", + "print 'A**2 = \\n',A*A\n", + "print 'A**3 = \\n',A*A*A\n", + "def p(x):\n", + " pp = x**3 - 4*x\n", + " return pp\n", + "print 'if p = x**3 - 4x, then'\n", + "print 'p(A) = ',p(A)\n", + "x = sp.Symbol(\"x\")\n", + "f = x**3 - 4*x\n", + "print 'Minimal polynomial for A is: ',f\n", + "print 'Characteristic values for A are:',sp.solve(f,x)\n", + "print 'Rank(A) = ',np.rank(A)\n", + "print 'So, from theorem 2, characteristic polynomial for A is:',sp.Matrix(A).charpoly(x).as_expr()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 210 Example 6.12" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A = \n", + "[[ 9. 1. 3.]\n", + " [ 10. 1. 3.]\n", + " [ 10. 5. 1.]]\n", + "A transpose is:\n", + "A' = \n", + "[[ 9. 10. 10.]\n", + " [ 1. 1. 5.]\n", + " [ 3. 3. 1.]]\n", + "Since, A' is not equal to A, A is not a symmetric matrix.\n", + "Since, A' is not equal to -A, A is not a skew-symmetric matrix.\n", + "A can be expressed as sum of A1 and A2\n", + "i.e., A = A1 + A2\n", + "A1 = \n", + "[[ 9. 5.5 6.5]\n", + " [ 5.5 1. 4. ]\n", + " [ 6.5 4. 1. ]]\n", + "A2 = \n", + "[[ 0. -4.5 -3.5]\n", + " [ 4.5 0. -1. ]\n", + " [ 3.5 1. 0. ]]\n", + "A1 + A2 = \n", + "[[ 9. 1. 3.]\n", + " [ 10. 1. 3.]\n", + " [ 10. 5. 1.]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "\n", + "A = np.random.rand(3,3)\n", + "for i in range(0,3):\n", + " for j in range(0,3):\n", + " A[i,j]=round(A[i,j]*10)\n", + " \n", + "print 'A = \\n',A\n", + "print 'A transpose is:\\n',\n", + "Adash=np.transpose(A)\n", + "print \"A' = \\n\",Adash\n", + "if np.equal(Adash,A).all():\n", + " print \"Since, A' = A, A is a symmetric matrix.\"\n", + "else:\n", + " print \"Since, A' is not equal to A, A is not a symmetric matrix.\"\n", + "\n", + "if np.equal(Adash,-A).all():\n", + " print \"Since, A' = -A, A is a skew-symmetric matrix.\"\n", + "else:\n", + " print \"Since, A' is not equal to -A, A is not a skew-symmetric matrix.\"\n", + "\n", + "A1 = 1./2*(A + Adash)\n", + "A2 = 1./2*(A - Adash)\n", + "print 'A can be expressed as sum of A1 and A2'\n", + "print 'i.e., A = A1 + A2'\n", + "print 'A1 = \\n',A1\n", + "print 'A2 = \\n',A2\n", + "print 'A1 + A2 = \\n',A1 + A2" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter7.ipynb b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter7.ipynb new file mode 100644 index 00000000..8aae5981 --- /dev/null +++ b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter7.ipynb @@ -0,0 +1,235 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 7 - The rational and jordan forms" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 239 Example 7.3" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A = \n", + "Matrix([[5, -6, -6], [-1, 4, 2], [3, -6, -4]])\n", + "Characteristic polynomial for linear operator T on R**3 will be:\n", + "f = x**3 - 5*x**2 + 8*x - 4\n", + "or\n", + "(x-1)(x-2)**2\n", + "The minimal polynomial for T is:\n", + "p = (x - 2)*(x - 1)\n", + "or\n", + "p = (x-1)(x-2)\n", + "So in cyclic decomposition of T, a1 will have p as its T-annihilator.\n", + "Another vector a2 that generate cyclic subspace of dimension 1 will have its T-annihilator as p2.\n", + "p2 = x - 2\n", + "pp2 = (x - 2)**2*(x - 1)\n", + "i.e., pp2 = f\n", + "Therefore, A is similar to B\n", + "B = \n", + "[[ 0 -2 0]\n", + " [ 1 3 0]\n", + " [ 0 0 2]]\n", + "Thus, we can see thet Matrix of T in ordered basis is B\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import sympy as sp\n", + "A = sp.Matrix(([5, -6, -6],[-1, 4 ,2],[3, -6, -4]))\n", + "print 'A = \\n',A\n", + "x=sp.Symbol('x')\n", + "f = A.charpoly(x).as_expr()\n", + "print 'Characteristic polynomial for linear operator T on R**3 will be:'\n", + "print 'f = ',f\n", + "print 'or'\n", + "print '(x-1)(x-2)**2'\n", + "print 'The minimal polynomial for T is:'\n", + "p = (x-1)*(x-2)#\n", + "print 'p = ',p\n", + "print 'or'\n", + "print 'p = (x-1)(x-2)'\n", + "print 'So in cyclic decomposition of T, a1 will have p as its T-annihilator.'\n", + "print 'Another vector a2 that generate cyclic subspace of dimension 1 will have its T-annihilator as p2.'\n", + "p2 = x-2#\n", + "print 'p2 = ',p2\n", + "print 'pp2 = ',p*p2\n", + "print 'i.e., pp2 = f'\n", + "print 'Therefore, A is similar to B'\n", + "B = np.array([[0, -2, 0],[1, 3, 0],[0, 0 ,2]])\n", + "print 'B = \\n',B\n", + "print 'Thus, we can see thet Matrix of T in ordered basis is B'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 247 Example 7.6" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A = \n", + "2 0 0\n", + "a 2 0\n", + "b c -1\n", + "A = \n", + "Matrix([[2, 0, 0], [1, 2, 0], [0, 0, -1]])\n", + "Characteristic polynomial for A is:\n", + "p = x**3 - 3*x**2 + 4\n", + "In this case, minimal polynomial is same as characteristic polynomial.\n", + "-----------------------------------------\n", + "A = \n", + "Matrix([[2, 0, 0], [0, 2, 0], [0, 0, -1]])\n", + "Characteristic polynomial for A is:\n", + "p = x**3 - 3*x**2 + 4\n", + "In this case, minimal polynomial is: (x-2)(x+1)\n", + "or\n", + "(x - 2)*(x + 1)\n", + "(A-2I)(A+I) = \n", + "0 0 0\n", + "3a 0 0\n", + "ac 0 0\n", + "if a = 0, A is similar to diagonal matrix.\n" + ] + } + ], + "source": [ + "print 'A = '\n", + "print '2 0 0'\n", + "print 'a 2 0'\n", + "print 'b c -1'\n", + "a = 1#\n", + "b = 0#\n", + "c = 0#\n", + "A = sp.Matrix(([2, 0, 0],[a, 2, 0],[b, c, -1]))\n", + "print 'A = \\n',A\n", + "print 'Characteristic polynomial for A is:'\n", + "x=sp.Symbol('x')\n", + "print 'p = ',A.charpoly(x).as_expr()\n", + "print 'In this case, minimal polynomial is same as characteristic polynomial.'\n", + "print '-----------------------------------------'\n", + "a = 0#\n", + "b = 0#\n", + "c = 0#\n", + "A = sp.Matrix(([2, 0, 0],[a, 2, 0],[b, c, -1]))\n", + "print 'A = \\n',A\n", + "print 'Characteristic polynomial for A is:'\n", + "x=sp.Symbol('x')\n", + "print 'p = ',A.charpoly(x).as_expr()\n", + "print 'In this case, minimal polynomial is:',\n", + "print '(x-2)(x+1)'\n", + "print 'or'\n", + "s = (x-2)*(x+1)#\n", + "print s\n", + "print '(A-2I)(A+I) = '\n", + "print '0 0 0'\n", + "print '3a 0 0'\n", + "print 'ac 0 0'\n", + "print 'if a = 0, A is similar to diagonal matrix.'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 247 Example 7.7" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A = \n", + "2 0 0 0\n", + "1 2 0 0\n", + "0 0 2 0\n", + "0 0 a 2\n", + "Considering a = 1\n", + "Characteristic polynomial for A is:\n", + "p = x**4 - 8*x**3 + 24*x**2 - 32*x + 16\n", + "or\n", + "(x-2)**4\n", + "Minimal polynomial for A =\n", + "(x-2)**2\n", + "For a = 0 and a = 1, characteristic and minimal polynomial are same.\n", + "But for a=0, the solution space of (A - 2I) has 3 dimension whereas for a = 1, it has 2 dimension. \n" + ] + } + ], + "source": [ + "print 'A = '\n", + "print '2 0 0 0'\n", + "print '1 2 0 0'\n", + "print '0 0 2 0'\n", + "print '0 0 a 2'\n", + "print 'Considering a = 1'\n", + "A = sp.Matrix(([2, 0 ,0 ,0],[1, 2, 0, 0],[0, 0 ,2 ,0],[0, 0, 1, 2]))\n", + "x=sp.Symbol('x')\n", + "p = A.charpoly(x).as_expr()\n", + "print 'Characteristic polynomial for A is:'\n", + "print 'p = ',p\n", + "print 'or'\n", + "print '(x-2)**4'\n", + "print 'Minimal polynomial for A ='\n", + "print '(x-2)**2'\n", + "print 'For a = 0 and a = 1, characteristic and minimal polynomial are same.'\n", + "print 'But for a=0, the solution space of (A - 2I) has 3 dimension whereas for a = 1, it has 2 dimension. '" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter8.ipynb b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter8.ipynb new file mode 100644 index 00000000..6f1bfe72 --- /dev/null +++ b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/Chapter8.ipynb @@ -0,0 +1,561 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 8 - Inner product spaces" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 271 Example 8.1" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "n = 5\n", + "a = [[ 1. 4. 2. 8. 8.]]\n", + "b = [[ 10. 8. 3. 1. 8.]]\n", + "Then, (a|b) = \n", + "\n", + "[[ 10. 40. 20. 80. 80.]\n", + " [ 8. 32. 16. 64. 64.]\n", + " [ 3. 12. 6. 24. 24.]\n", + " [ 1. 4. 2. 8. 8.]\n", + " [ 8. 32. 16. 64. 64.]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "n=np.random.randint(2,9)\n", + "a=np.random.rand(1,n)\n", + "b=np.random.rand(1,n)\n", + "for i in range(0,n):\n", + " a[0,i]=round(a[0,i]*10)\n", + " b[0,i]=round(b[0,i]*10)\n", + "print 'n = ',n\n", + "print 'a = ',a\n", + "print 'b = ',b\n", + "print 'Then, (a|b) = \\n\\n',a*np.transpose(b)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 271 Example 8.2" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a = [[ 4. 3.]]\n", + "b = [[ 7. 5.]]\n", + "Then, a|b = 47.0\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "a=np.random.rand(1,2)\n", + "b=np.random.rand(1,2)\n", + "for i in range(0,2):\n", + " a[0,i]=round(a[0,i]*10)\n", + " b[0,i]=round(b[0,i]*10)\n", + "print 'a = ',a\n", + "print 'b = ',b\n", + "x1 = a[0,0]#\n", + "x2 = a[0,1]#\n", + "y1 = b[0,0]#\n", + "y2 = b[0,1]#\n", + "t = x1*y1 - x2*y1 - x1*y2 + 4*x2*y2#\n", + "print 'Then, a|b = ',t" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 307 Example 8.28" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x1 and x2 are two real nos. i.e., x1**2 + x2**2 = 1\n", + "x1 = 0.383547227589\n", + "x2 = 0.923521263539\n", + "B = \n", + "[[ 0.38354723 0.92352126 0. ]\n", + " [ 0. 1. 0. ]\n", + " [ 0. 0. 1. ]]\n", + "Applying Gram-Schmidt process to B:\n", + "a1 = [ 0.38354723 0.92352126 0. ]\n", + "a2 = [-0.35421402 0.14710848 0. ]\n", + "a3 = [0 0 1]\n", + "U = \n", + "[[[ 0.38354723 0.92352126 0. ]]\n", + "\n", + " [[-0.92352126 0.38354723 0. ]]\n", + "\n", + " [[ 0. 0. 1. ]]]\n", + "M = \n", + "[[ 1. 0. 0. ]\n", + " [-2.40784236 2.60724085 0. ]\n", + " [ 0. 0. 1. ]]\n", + "inverse(M) * U = [[[ 3.83547228e-01 -4.25822963e-17 0.00000000e+00]\n", + " [ 3.54214020e-01 3.54214020e-01 0.00000000e+00]\n", + " [ 0.00000000e+00 0.00000000e+00 0.00000000e+00]]\n", + "\n", + " [[ -9.23521264e-01 -1.76848356e-17 0.00000000e+00]\n", + " [ -8.52891524e-01 1.47108476e-01 0.00000000e+00]\n", + " [ -0.00000000e+00 0.00000000e+00 0.00000000e+00]]\n", + "\n", + " [[ 0.00000000e+00 -0.00000000e+00 0.00000000e+00]\n", + " [ 0.00000000e+00 0.00000000e+00 0.00000000e+00]\n", + " [ 0.00000000e+00 0.00000000e+00 1.00000000e+00]]]\n", + "So, B = inverse(M) * U\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "print 'x1 and x2 are two real nos. i.e., x1**2 + x2**2 = 1'\n", + "x1 = np.random.rand()\n", + "x2 = np.sqrt(1 - x1**2)\n", + "print 'x1 = ',x1\n", + "print 'x2 = ',x2\n", + "B = np.array([[x1, x2, 0],[0, 1, 0],[0, 0, 1]])\n", + "print 'B = \\n',B\n", + "print 'Applying Gram-Schmidt process to B:'\n", + "a1 = np.array([x1, x2, 0])\n", + "a2 = np.array([0 ,1 ,0]) - x2 * np.array([x1 ,x2 ,0])\n", + "a3 = np.array([0, 0, 1])\n", + "print 'a1 = ',a1\n", + "print 'a2 = ',a2\n", + "print 'a3 = ',a3\n", + "U = np.array([[a1],[a2/x1],[a3]])\n", + "print 'U = \\n',U\n", + "M = np.array([[1, 0, 0],[-x2/x1, 1/x1, 0],[0, 0, 1]])\n", + "print 'M = \\n',M\n", + "print 'inverse(M) * U = ',np.linalg.inv(M) * U\n", + "print 'So, B = inverse(M) * U'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 278 Example 8.9" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(x,y) = [[ 5. 3.]]\n", + "(-y,x) = [-3.0, 5.0]\n", + "Inner product of these vectors is:\n", + "(x,y)|(-y,x) = 0.0\n", + "So, these are orthogonal.\n", + "------------------------------------------\n", + "If inner product is defined as:\n", + "(x1,x2)|(y1,y2) = x1y1- x2y1 - x1y2 + 4x2y2\n", + "Then, (x,y)|(-y,x) = -x*y+y**2-x**2+4*x*y = 0 if,\n", + "y = 1/2(-3 + sqrt(13))*x\n", + "or\n", + "y = 1/2(-3 - sqrt(13))*x\n", + "Hence,\n", + "[[ 5. 3.]]\n", + "is orthogonal to\n", + "[-3.0, 5.0]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "#a = round(rand(1,2) * 10)#\n", + "a=np.random.rand(1,2)\n", + "for j in [0,1]:\n", + " a[0,j]=round(a[0,j]*10)\n", + "\n", + "x = a[0,0]\n", + "y = a[0,1]\n", + "b = [-y, x]#\n", + "print '(x,y) = ',a\n", + "print '(-y,x) = ',b\n", + "print 'Inner product of these vectors is:'\n", + "t = -x*y + y*x#\n", + "print '(x,y)|(-y,x) = ',t\n", + "\n", + "print 'So, these are orthogonal.'\n", + "print '------------------------------------------'\n", + "print 'If inner product is defined as:'\n", + "print '(x1,x2)|(y1,y2) = x1y1- x2y1 - x1y2 + 4x2y2'\n", + "print 'Then, (x,y)|(-y,x) = -x*y+y**2-x**2+4*x*y = 0 if,'\n", + "print 'y = 1/2(-3 + sqrt(13))*x'\n", + "print 'or'\n", + "print 'y = 1/2(-3 - sqrt(13))*x'\n", + "print 'Hence,'\n", + "if y == (1./2*(-3 + np.sqrt(13))*x) or (1./2*(-3 - np.sqrt(13))*x):\n", + " print a\n", + " print 'is orthogonal to'\n", + " print b\n", + "else:\n", + " print a\n", + " print 'is not orthogonal to'\n", + " print b\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 282 Example 8.12" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "b1 = [3 0 4]\n", + "b2 = [-1 0 7]\n", + "b3 = [ 2 9 11]\n", + "Applying the Gram-Schmidt process to b1,b2,b3:\n", + "a1 = [3 0 4]\n", + "a2 = [2 0 3]\n", + "a3 = [2 9 4]\n", + "{a1,a2,a3} are mutually orthogonal and hence forms orthogonal basis for R**3\n", + "Any arbitrary vector {x1,x2,x3} in R**3 can be expressed as:\n", + "y = {x1,x2,x3} = (3*x1 + 4*x3)/25*a1 + (-4*x1 + 3*x3)/25*a2 + x2/9*a3\n", + "x1 = 1\n", + "x2 = 2\n", + "x3 = 3\n", + "y = [0 0 0]\n", + "i.e. y = [x1 x2 x3], according to above equation.\n", + "Hence, we get the orthonormal basis as:\n", + ", [ 0.6 0. 0.8]\n", + ", [ 0.4 0. 0.6]\n", + "[ 0.22222222 1. 0.44444444]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "b1 = np.array([3, 0, 4])\n", + "b2 = np.array([-1 ,0 ,7])\n", + "b3 = np.array([2 ,9 ,11])\n", + "print 'b1 = ',b1\n", + "print 'b2 = ',b2\n", + "print 'b3 = ',b3\n", + "print 'Applying the Gram-Schmidt process to b1,b2,b3:'\n", + "a1 = b1\n", + "print 'a1 = ',a1\n", + "a2 = b2-(np.transpose((b2*np.transpose(b1)))/25*b1)\n", + "print 'a2 = ',a2\n", + "a3 = b3-(np.transpose(b3*np.transpose(b1))/25*b1) - (np.transpose(b3*np.transpose(a2))/25*a2)\n", + "print 'a3 = ',a3\n", + "print '{a1,a2,a3} are mutually orthogonal and hence forms orthogonal basis for R**3'\n", + "print 'Any arbitrary vector {x1,x2,x3} in R**3 can be expressed as:'\n", + "print 'y = {x1,x2,x3} = (3*x1 + 4*x3)/25*a1 + (-4*x1 + 3*x3)/25*a2 + x2/9*a3'\n", + "x1 = 1#\n", + "x2 = 2#\n", + "x3 = 3#\n", + "y = (3*x1 + 4*x3)/25*a1 + (-4*x1 + 3*x3)/25*a2 + x2/9*a3#\n", + "print 'x1 = ',x1\n", + "print 'x2 = ',x2\n", + "print 'x3 = ',x3\n", + "print 'y = ',y\n", + "print 'i.e. y = [x1 x2 x3], according to above equation.'\n", + "print 'Hence, we get the orthonormal basis as:'\n", + "\n", + "print ',',1./5*a1\n", + "print ',',1./5*a2\n", + "print 1/9.*a3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 283 Example 8.13" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A = [[ 1.25598176 1.81258697]\n", + " [ 0.6193707 0.80341686]]\n", + "b1 = [ 1.25598176 1.81258697]\n", + "b2 = [ 0.6193707 0.80341686]\n", + "Applying the orthogonalization process to b1,b2:\n", + "[1.255981755902444, 1.8125869670307564] a1 = \n", + "[] a2 = \n", + "a2 is not equal to zero if and only if b1 and b2 are linearly independent.\n", + "That is, if determinant of A is non-zero.\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "A = np.random.rand(2,2)\n", + "A[0,:] = A[0,:] + 1# #so b1 is not equal to zero\n", + "a = A[0,0]\n", + "b = A[0,1]\n", + "c = A[1,0]\n", + "d = A[1,1]\n", + "b1 = A[0,:]\n", + "b2 = A[1,:]\n", + "print 'A = ',A\n", + "print 'b1 = ',b1\n", + "print 'b2 = ',b2\n", + "print 'Applying the orthogonalization process to b1,b2:'\n", + "\n", + "a1 = [a, b]\n", + "a2 = (np.linalg.det(A)/(a**2 + b**2))*[-np.transpose(b), np.transpose(a)]\n", + "print a1,'a1 = '\n", + "print a2,'a2 = '\n", + "print 'a2 is not equal to zero if and only if b1 and b2 are linearly independent.'\n", + "print 'That is, if determinant of A is non-zero.'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 286 Example 8.14" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "v = [-10 2 8]\n", + "u = [ 3 12 -1]\n", + "Orthogonal projection of v1 on subspace W spanned by v2 is given by:\n", + "[-3 0 1]\n", + "Orthogonal projection of R**3 on W is the linear transformation E given by:\n", + "(x1,x2,x3) -> (3*x1 + 12*x2 - x3)/%d * (3 12 -1) 154\n", + "Rank(E) = 1\n", + "Nullity(E) = 2\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "v = np.array([-10 ,2 ,8])\n", + "u = np.array([3, 12, -1])\n", + "print 'v = ',v\n", + "print 'u = ',u\n", + "print 'Orthogonal projection of v1 on subspace W spanned by v2 is given by:'\n", + "a = (np.transpose(u*np.transpose(v)))/(u[0]**2 + u[1]**2 + u[2]**2) * u\n", + "print a\n", + "print 'Orthogonal projection of R**3 on W is the linear transformation E given by:'\n", + "print '(x1,x2,x3) -> (3*x1 + 12*x2 - x3)/%d * (3 12 -1)',(u[0]**2 + u[1]**2 + u[2]**2)\n", + "print 'Rank(E) = 1'\n", + "print 'Nullity(E) = 2'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 288 Example 8.15" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "f = (sqrt(2)*cos(2*pi*t) + sqrt(2)*sin(4*pi*t))**2\n", + "Integration (f dt) in limits 0 to 1 = 2.0\n" + ] + } + ], + "source": [ + "from sympy.mpmath import quad,cos,sin,pi,sqrt\n", + "\n", + "#part c\n", + "print 'f = (sqrt(2)*cos(2*pi*t) + sqrt(2)*sin(4*pi*t))**2'\n", + "print 'Integration (f dt) in limits 0 to 1 = ',\n", + "x0 = 0#\n", + "x1 = 1#\n", + "X = quad(lambda t:(sqrt(2)*cos(2*pi*t) + sqrt(2)*sin(4*pi*t))**2,[x0,x1])\n", + "print X" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Page 294 Example 8.17" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Matrix of projection E in orthonormal basis is:\n", + "A = 1/154 * [[ 9 36 -3]\n", + " [ 36 144 -12]\n", + " [ -3 -12 1]]\n", + "A* = [[ 9 36 -3]\n", + " [ 36 144 -12]\n", + " [ -3 -12 1]]\n", + "Since, E = E* and A = A*, then A is also the matrix of E*\n", + "a1 = [154, 0, 0]\n", + "a2 = [145, -36, 3]\n", + "a3 = [-36, 10, 12]\n", + "{a1,a2,a3} is the basis.\n", + "Ea1 = [9, 36, -3]\n", + "Ea2 = [0, 0, 0]\n", + "Ea3 = [0, 0, 0]\n", + "Matrix B of E in the basis is:\n", + "B = \n", + "[[-1 0 0]\n", + " [-1 0 0]\n", + " [ 0 0 0]]\n", + "B* = \n", + "[[-1 -1 0]\n", + " [ 0 0 0]\n", + " [ 0 0 0]]\n", + "Since, B is not equal to B*, B is not the matrix of E*\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "#Equation given in example 14 is used.\n", + "def transform(x,y,z):\n", + " x1 = 3*x#\n", + " x2 = 12*y#\n", + " x3 = -z#\n", + " m = [x1 ,x2, x3]\n", + " return m\n", + "\n", + "print 'Matrix of projection E in orthonormal basis is:'\n", + "t1 = transform(3,3,3)#\n", + "t2 = transform(12,12,12)#\n", + "t3 = transform(-1,-1,-1)#\n", + "A = np.vstack([t1,t2,t3])#[t1# t2# t3]#\n", + "print 'A = 1/154 * ',A\n", + "\n", + "A1 = np.transpose(np.conj(A))\n", + "print 'A* = ',A1\n", + "print 'Since, E = E* and A = A*, then A is also the matrix of E*'\n", + "a1 = [154, 0, 0]#\n", + "a2 = [145 ,-36, 3]#\n", + "a3 = [-36 ,10 ,12]#\n", + "print 'a1 = ',a1\n", + "print 'a2 = ',a2\n", + "print 'a3 = ',a3\n", + "print '{a1,a2,a3} is the basis.'\n", + "Ea1 = [9 ,36 ,-3]#\n", + "Ea2 = [0 ,0, 0]#\n", + "Ea3 = [0 ,0 ,0]#\n", + "print 'Ea1 = ',Ea1\n", + "print 'Ea2 = ',Ea2\n", + "print 'Ea3 = ',Ea3\n", + "B = np.array([[-1, 0, 0],[-1, 0 ,0],[0, 0, 0]])\n", + "print 'Matrix B of E in the basis is:'\n", + "print 'B = \\n',B\n", + "B1 = np.transpose(np.conj(B))\n", + "print 'B* = \\n',B1\n", + "print 'Since, B is not equal to B*, B is not the matrix of E*'" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Linear_Algebra_by_K._Hoffman_and_R._Kunze/screenshots/InverseMatrix.png b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/screenshots/InverseMatrix.png Binary files differnew file mode 100644 index 00000000..90f061e8 --- /dev/null +++ b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/screenshots/InverseMatrix.png diff --git a/Linear_Algebra_by_K._Hoffman_and_R._Kunze/screenshots/determinant.png b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/screenshots/determinant.png Binary files differnew file mode 100644 index 00000000..6ace8492 --- /dev/null +++ b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/screenshots/determinant.png diff --git a/Linear_Algebra_by_K._Hoffman_and_R._Kunze/screenshots/scalorpolynomial.png b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/screenshots/scalorpolynomial.png Binary files differnew file mode 100644 index 00000000..f75da6e2 --- /dev/null +++ b/Linear_Algebra_by_K._Hoffman_and_R._Kunze/screenshots/scalorpolynomial.png |