summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/Chapter9_1.ipynb405
-rw-r--r--Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter1_1.ipynb633
-rw-r--r--Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter2_1.ipynb2194
-rw-r--r--Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter3_1.ipynb1113
-rw-r--r--Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter4_1.ipynb887
-rw-r--r--Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter6_1.ipynb1068
-rw-r--r--Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter7_1.ipynb761
-rw-r--r--Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter8_1.ipynb1098
-rw-r--r--Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter_5_1.ipynb366
-rw-r--r--Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/screenshots/ex1.2_1.pngbin0 -> 19571 bytes
-rw-r--r--Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/screenshots/ex3.13_1.pngbin0 -> 16157 bytes
-rw-r--r--Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/screenshots/ex6.7_1.pngbin0 -> 25877 bytes
-rwxr-xr-xPrinciples_of_Data_structures_using_C_and_C++/README.txt10
-rwxr-xr-xPrinciples_of_Data_structures_using_C_and_C++/chapter2.ipynb136
-rwxr-xr-xPrinciples_of_Data_structures_using_C_and_C++/chapter3.ipynb950
-rwxr-xr-xPrinciples_of_Data_structures_using_C_and_C++/chapter4.ipynb818
-rwxr-xr-xPrinciples_of_Data_structures_using_C_and_C++/chapter5.ipynb2664
-rwxr-xr-xPrinciples_of_Data_structures_using_C_and_C++/chapter6.ipynb1682
-rwxr-xr-xPrinciples_of_Data_structures_using_C_and_C++/chapter7.ipynb688
-rwxr-xr-xPrinciples_of_Data_structures_using_C_and_C++/chapter8.ipynb1181
-rwxr-xr-xPrinciples_of_Data_structures_using_C_and_C++/chapter9.ipynb1894
-rwxr-xr-xPrinciples_of_Data_structures_using_C_and_C++/screenshots/graph.pngbin44958 -> 0 bytes
-rwxr-xr-xPrinciples_of_Data_structures_using_C_and_C++/screenshots/queue.pngbin29210 -> 0 bytes
-rwxr-xr-xPrinciples_of_Data_structures_using_C_and_C++/screenshots/stack.pngbin48065 -> 0 bytes
24 files changed, 8525 insertions, 10023 deletions
diff --git a/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/Chapter9_1.ipynb b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/Chapter9_1.ipynb
new file mode 100644
index 00000000..bd7fa404
--- /dev/null
+++ b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/Chapter9_1.ipynb
@@ -0,0 +1,405 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:24089a08696462aebf3ad5050b8d7fb7d29d09a5ede870af53ccf8d4be2b3a34"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter09:Numerical Solution of Partial Differential Equations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.1:pg-350"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#standard five point formula\n",
+ "#example 9.1\n",
+ "#page 350\n",
+ "\n",
+ "u2=5.0;u3=1.0;\n",
+ "for i in range(0,3):\n",
+ " u1=(u2+u3+6.0)/4.0\n",
+ " u2=(u1/2.0)+(5.0/2.0)\n",
+ " u3=(u1/2.0)+(1.0/2.0)\n",
+ " print\" the values are u1=%d\\t u2=%d\\t u3=%d\\t\\n\\n\" %(u1,u2,u3)\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " the values are u1=3\t u2=4\t u3=2\t\n",
+ "\n",
+ "\n",
+ " the values are u1=3\t u2=4\t u3=2\t\n",
+ "\n",
+ "\n",
+ " the values are u1=3\t u2=4\t u3=2\t\n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.2:pg-351"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#solution of laplace equation by jacobi method,gauss-seidel method and SOR method\n",
+ "#example 9.2\n",
+ "#page 351\n",
+ "u1=0.25;u2=0.25;u3=0.5;u4=0.5;#initial values\n",
+ "print \"jacobis iteration process\\n\\n\"\n",
+ "print\"u1\\t u2\\t u3\\t u4\\t \\n\\n\"\n",
+ "print \"%f\\t %f\\t %f\\t %f\\t \\n\" %(u1,u2,u3,u4)\n",
+ "for i in range(0,7):\n",
+ " u11=(0+u2+0+u4)/4\n",
+ " u22=(u1+0+0+u3)/4\n",
+ " u33=(1+u2+0+u4)/4\n",
+ " u44=(1+0+u3+u1)/4\n",
+ " u1=u11;u2=u22;u3=u33;u4=u44;\n",
+ " print \"%f\\t %f\\t %f\\t %f\\t \\n\" %(u11,u22,u33,u44) \n",
+ "print \" gauss seidel process\\n\\n\"\n",
+ "u1=0.25;u2=0.3125;u3=0.5625;u4=0.46875;#initial values\n",
+ "print \"u1\\t u2\\t u3\\t u4\\t \\n\\n\"\n",
+ "print \"%f\\t %f\\t %f\\t %f\\t \\n\" %(u1,u2,u3,u4)\n",
+ "for i in range(0,4):\n",
+ "\n",
+ " u1=(0.0+u2+0.0+u4)/4.0\n",
+ " u2=(u1+0.0+0.0+u3)/4.0\n",
+ " u3=(1.0+u2+0.0+u4)/4.0\n",
+ " u4=(1.0+0.0+u3+u1)/4.0\n",
+ " print \"%f\\t %f\\t %f\\t %f\\t \\n\" %(u1,u2,u3,u4) \n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "jacobis iteration process\n",
+ "\n",
+ "\n",
+ "u1\t u2\t u3\t u4\t \n",
+ "\n",
+ "\n",
+ "0.250000\t 0.250000\t 0.500000\t 0.500000\t \n",
+ "\n",
+ "0.187500\t 0.187500\t 0.437500\t 0.437500\t \n",
+ "\n",
+ "0.156250\t 0.156250\t 0.406250\t 0.406250\t \n",
+ "\n",
+ "0.140625\t 0.140625\t 0.390625\t 0.390625\t \n",
+ "\n",
+ "0.132812\t 0.132812\t 0.382812\t 0.382812\t \n",
+ "\n",
+ "0.128906\t 0.128906\t 0.378906\t 0.378906\t \n",
+ "\n",
+ "0.126953\t 0.126953\t 0.376953\t 0.376953\t \n",
+ "\n",
+ "0.125977\t 0.125977\t 0.375977\t 0.375977\t \n",
+ "\n",
+ " gauss seidel process\n",
+ "\n",
+ "\n",
+ "u1\t u2\t u3\t u4\t \n",
+ "\n",
+ "\n",
+ "0.250000\t 0.312500\t 0.562500\t 0.468750\t \n",
+ "\n",
+ "0.195312\t 0.189453\t 0.414551\t 0.402466\t \n",
+ "\n",
+ "0.147980\t 0.140633\t 0.385775\t 0.383439\t \n",
+ "\n",
+ "0.131018\t 0.129198\t 0.378159\t 0.377294\t \n",
+ "\n",
+ "0.126623\t 0.126196\t 0.375872\t 0.375624\t \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.4:pg-354"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#poisson equation\n",
+ "#exaample 9.4\n",
+ "#page 354\n",
+ "u2=0.0;u4=0.0;\n",
+ "print \" u1\\t u2\\t u3\\t u4\\t\\n\\n\"\n",
+ "for i in range(0,6):\n",
+ " u1=(u2/2.0)+30.0\n",
+ " u2=(u1+u4+150.0)/4.0\n",
+ " u4=(u2/2.0)+45.0\n",
+ " print \"%0.2f\\t %0.2f\\t %0.2f\\t %0.2f\\n\" %(u1,u2,u2,u4)\n",
+ "print \" from last two iterates we conclude u1=67 u2=75 u3=75 u4=83\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " u1\t u2\t u3\t u4\t\n",
+ "\n",
+ "\n",
+ "30.00\t 45.00\t 45.00\t 67.50\n",
+ "\n",
+ "52.50\t 67.50\t 67.50\t 78.75\n",
+ "\n",
+ "63.75\t 73.12\t 73.12\t 81.56\n",
+ "\n",
+ "66.56\t 74.53\t 74.53\t 82.27\n",
+ "\n",
+ "67.27\t 74.88\t 74.88\t 82.44\n",
+ "\n",
+ "67.44\t 74.97\t 74.97\t 82.49\n",
+ "\n",
+ " from last two iterates we conclude u1=67 u2=75 u3=75 u4=83\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 59
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.6:pg-362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#bender-schmidt formula\n",
+ "#example 9.6\n",
+ "#page 362\n",
+ "def f(x):\n",
+ " return (4*x)-(x*x)\n",
+ "#u=[f(0),f(1),f(2),f(3),f(4)]\n",
+ "u1=f(0);u2=f(1);u3=f(2);u4=f(3);u5=f(4);\n",
+ "u11=(u1+u3)/2\n",
+ "u12=(u2+u4)/2\n",
+ "u13=(u3+u5)/2\n",
+ "print \"u11=%0.2f\\t u12=%0.2f\\t u13=%0.2f\\t \\n\" %(u11,u12,u13)\n",
+ "u21=(u1+u12)/2.0\n",
+ "u22=(u11+u13)/2.0\n",
+ "u23=(u12+0)/2.0\n",
+ "print \"u21=%0.2f\\t u22=%0.2f\\t u23=%0.2f\\t \\n\" %(u21,u22,u23)\n",
+ "u31=(u1+u22)/2.0\n",
+ "u32=(u21+u23)/2.0\n",
+ "u33=(u22+u1)/2.0\n",
+ "print \"u31=%0.2f\\t u32=%0.2f\\t u33=%0.2f\\t \\n\" % (u31,u32,u33)\n",
+ "u41=(u1+u32)/2.0\n",
+ "u42=(u31+u33)/2.0\n",
+ "u43=(u32+u1)/2.0\n",
+ "print \"u41=%0.2f\\t u42=%0.2f\\t u43=%0.2f\\t \\n\" % (u41,u42,u43)\n",
+ "u51=(u1+u42)/2.0\n",
+ "u52=(u41+u43)/2.0\n",
+ "u53=(u42+u1)/2.0\n",
+ "print \"u51=%0.2f\\t u52=%0.2f\\t u53=%0.2f\\t \\n\" % (u51,u52,u53)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "u11=2.00\t u12=3.00\t u13=2.00\t \n",
+ "\n",
+ "u21=1.50\t u22=2.00\t u23=1.50\t \n",
+ "\n",
+ "u31=1.00\t u32=1.50\t u33=1.00\t \n",
+ "\n",
+ "u41=0.75\t u42=1.00\t u43=0.75\t \n",
+ "\n",
+ "u51=0.50\t u52=0.75\t u53=0.50\t \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 77
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.7:pg-363"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#bender-schimdt's formula and crank-nicolson formula\n",
+ "#example 9.7\n",
+ "#page 363\n",
+ "#bender -schimdt's formula\n",
+ "import math\n",
+ "from numpy import matrix\n",
+ "z=math.pi\n",
+ "def f(x,t):\n",
+ " return math.exp(z*z*t*-1)*sin(z*x)\n",
+ "#u=[f(0,0),f(0.2,0),f(0.4,0),f(0.6,0),f(0.8,0),f(1,0)];\n",
+ "u1=f(0,0)\n",
+ "u2=f(0.2,0)\n",
+ "u3=f(0.4,0)\n",
+ "u4=f(0.6,0)\n",
+ "u5=f(0.8,0)\n",
+ "u6=f(1.0,0)\n",
+ "u11=u3/2;u12=(u2+u4)/2;u13=u12;u14=u11;\n",
+ "print \"u11=%f\\t u12=%f\\t u13=%f\\t u14=%f\\n\\n\" % (u11,u12,u13,u14)\n",
+ "u21=u12/2;u22=(u12+u14)/2;u23=u22;u24=u21;\n",
+ "print \"u21=%f\\t u22=%f\\t u23=%f\\t u24=%f\\n\\n\" % (u21,u22,u23,u24)\n",
+ "print \"the error in the solution is: %f\\n\\n\" % (math.fabs(u22-f(0.6,0.04)))\n",
+ "#crank-nicolson formula\n",
+ "#by putting i=1,2,3,4 we obtain four equation\n",
+ "A=matrix([[4, -1, 0, 0] ,[-1, 4, -1, 0],[0, -1, 4, -1],[0, 0, -1, 4]])\n",
+ "C=matrix([[0.9510],[1.5388],[1.5388],[0.9510]])\n",
+ "X=A.I*C\n",
+ "print \"u00=%f\\t u10=%f\\t u20=%f\\t u30=%f\\t\\n\\n\" %(X[0][0],X[1][0],X[2][0],X[3][0])\n",
+ "print \"the error in the solution is: %f\\n\\n\" %(abs(X[1][0]-f(0.6,0.04)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "u11=0.475528\t u12=0.769421\t u13=0.769421\t u14=0.475528\n",
+ "\n",
+ "\n",
+ "u21=0.384710\t u22=0.622475\t u23=0.622475\t u24=0.384710\n",
+ "\n",
+ "\n",
+ "the error in the solution is: 0.018372\n",
+ "\n",
+ "\n",
+ "u00=0.399255\t u10=0.646018\t u20=0.646018\t u30=0.399255\t\n",
+ "\n",
+ "\n",
+ "the error in the solution is: 0.005172\n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.8:pg-364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#heat equation using crank-nicolson method\n",
+ "#example 9.8\n",
+ "#page 364\n",
+ "from numpy import matrix\n",
+ "import math\n",
+ "z=0.01878;\n",
+ "#h=1/2;l=1/8,i=1\n",
+ "u01=0.0;u21=1.0/8.0;\n",
+ "u11=(u21+u01)/6.0;\n",
+ "print \" u11=%f\\n\\n\" % (u11)\n",
+ "print \"error is %f\\n\\n\" % (math.fabs(u11-z))\n",
+ "#h=1/4,l=1/8,i=1,2,3\n",
+ "A=matrix([[-3.0 ,-1.0 ,0.0],[1.0,-3.0,1.0],[0.0,1.0,-3.0]])\n",
+ "C=matrix([[0.0],[0.0],[-0.125]])\n",
+ "#here we found inverese of A then we multipy it with C\n",
+ "X=A.I*C\n",
+ "print \"u12=%f\\n\\n\" % (X[1][0])\n",
+ "print \"error is %f\\n\\n\" %(math.fabs(X[1][0]-z))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " u11=0.020833\n",
+ "\n",
+ "\n",
+ "error is 0.002053\n",
+ "\n",
+ "\n",
+ "u12=0.013889\n",
+ "\n",
+ "\n",
+ "error is 0.004891\n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter1_1.ipynb b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter1_1.ipynb
new file mode 100644
index 00000000..4bf3cff1
--- /dev/null
+++ b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter1_1.ipynb
@@ -0,0 +1,633 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:659bf40fd24dcbea56efd9142b8ac03b3b827f2e9c5f83005d90a9bfbf26cc13"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter01:Errors in Numerical Calculations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.1:pg-7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1.1\n",
+ "#rounding off\n",
+ "#page 7\n",
+ "a1=1.6583\n",
+ "a2=30.0567\n",
+ "a3=0.859378\n",
+ "a4=3.14159\n",
+ "print \"\\nthe numbers after rounding to 4 significant figures are given below\\n\"\n",
+ "print \" %f %.4g\\n'\" %(a1,a1)\n",
+ "print \" %f %.4g\\n\" %(a2,a2)\n",
+ "print \" %f %.4g\\n\" %(a3,a3)\n",
+ "print \" %f %.4g\\n\" %(a4,a4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "the numbers after rounding to 4 significant figures are given below\n",
+ "\n",
+ " 1.658300 1.658\n",
+ "'\n",
+ " 30.056700 30.06\n",
+ "\n",
+ " 0.859378 0.8594\n",
+ "\n",
+ " 3.141590 3.142\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.2:pg-9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1.2\n",
+ "#percentage accuracy\n",
+ "#page 9\n",
+ "import math\n",
+ "x=0.51 # the number given\n",
+ "n=2 #correcting upto 2 decimal places\n",
+ "d=math.pow(10,-n)\n",
+ "d=d/2.0\n",
+ "p=(d/x)*100 #percentage accuracy\n",
+ "print \"the percentage accuracy of %f after correcting to two decimal places is %f\" %(x,p)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the percentage accuracy of 0.510000 after correcting to two decimal places is 0.980392\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.3:pg-9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1.3\n",
+ "#absolute and relative errors\n",
+ "#page 9\n",
+ "X=3.1428571 #approximate value of pi\n",
+ "T_X=3.1415926 # true value of pi\n",
+ "A_E=T_X-X #absolute error\n",
+ "R_E=A_E/T_X #relative error\n",
+ "print \"Absolute Error = %0.7f \\n Relative Error = %0.7f\" %(A_E,R_E)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Absolute Error = -0.0012645 \n",
+ " Relative Error = -0.0004025\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.4:pg-10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1.4\n",
+ "#best approximation\n",
+ "#page 10\n",
+ "X=1/3 #the actual number\n",
+ "X1=0.30\n",
+ "X2=0.33\n",
+ "X3=0.34\n",
+ "E1=abs(X-X1)\n",
+ "E2=abs(X-X2)\n",
+ "E3=abs(X-X3)\n",
+ "if E1<E2:\n",
+ " if E1<E3:\n",
+ " B_A=X1\n",
+ "elif E2<E1:\n",
+ " if E2<E3:\n",
+ " B_A=X2\n",
+ "elif E3<E2:\n",
+ " if E3<E1:\n",
+ " B_A=X3\n",
+ "print \"the best approximation of 1/3 is %f\" %(B_A)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the best approximation of 1/3 is 0.300000\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.5:pg-10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#relative error\n",
+ "#example 1.5\n",
+ "#page 10\n",
+ "import math\n",
+ "n=8.6 # the corrected number\n",
+ "N=1 #the no is rounded to one decimal places\n",
+ "E_A=math.pow(10,-N)/2\n",
+ "E_R=E_A/n\n",
+ "print \"the relative error of the number is:%0.4f\" %(E_R)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the relative error of the number is:0.0058\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.6:pg-10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1.6\n",
+ "#absolute error and relative error\n",
+ "#page 10\n",
+ "import math\n",
+ "s=math.sqrt(3)+math.sqrt(5)+math.sqrt(7) #the sum square root of 3,5,7\n",
+ "n=4\n",
+ "Ea=3*(math.pow(10,-n)/2) #absolute error\n",
+ "R_E=Ea/s\n",
+ "print \"the sum of square roots is %0.4g \\n\" %(s)\n",
+ "print \"the absolute error is %f \\n\" %(Ea)\n",
+ "print \"the relative error is %f\" %(R_E)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the sum of square roots is 6.614 \n",
+ "\n",
+ "the absolute error is 0.000150 \n",
+ "\n",
+ "the relative error is 0.000023\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.7:pg-10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#absolute error\n",
+ "#example 1.7\n",
+ "#page 10\n",
+ "n=[0.1532, 15.45, 0.0000354, 305.1, 8.12, 143.3, 0.0212, 0.643, 0.1734] #original numbbers\n",
+ "#rounding all numbers to 2 decimal places\n",
+ "n=[305.1, 143.3, 0.15,15.45, 0.00, 8.12, 0.02, 0.64, 0.17] \n",
+ "sum=0;\n",
+ "#l=length(n);\n",
+ "for i in range(len(n)):\n",
+ " sum=sum+n[i];\n",
+ "\n",
+ "E_A=2*math.pow(10,-1)/2+7*math.pow(10,-2)/2\n",
+ "print \"the absolute error is:%0.2f\" %(E_A)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the absolute error is:0.14\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.8:pg-11"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#difference in 3 significant figures\n",
+ "#example 1.8\n",
+ "#page 11\n",
+ "X1=math.sqrt(6.37)\n",
+ "X2=math.sqrt(6.36)\n",
+ "d=X1-X2 #difference between two numbers\n",
+ "print \"the differencecorrected to 3 significant figures is %0.3g\" %(d)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the differencecorrected to 3 significant figures is 0.00198\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.9:pg-12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#relative error\n",
+ "#example 1.10\n",
+ "#page 12\n",
+ "a=6.54\n",
+ "b=48.64\n",
+ "c=13.5\n",
+ "da=0.01\n",
+ "db=0.02\n",
+ "dc=0.03\n",
+ "s=math.pow(a,2)*math.sqrt(b)/math.pow(c,3)\n",
+ "#disp(s,'s=')\n",
+ "print \"s=%f\" %(s)\n",
+ "r_err=2*(da/a)+(db/b)/2+3*(dc/c);\n",
+ "print \"the relative error is :%f\" %(r_err)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "s=0.121241\n",
+ "the relative error is :0.009930\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.11:pg-13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#relative error\n",
+ "#example 1.11\n",
+ "#page 13\n",
+ "import math\n",
+ "x=1\n",
+ "y=1\n",
+ "z=1\n",
+ "u=(5*x*math.pow(y,3))/math.pow(z,3)\n",
+ "dx=0.001\n",
+ "dy=0.001\n",
+ "dz=0.001\n",
+ "max=((5*math.pow(y,2))/math.pow(z,3))*dx+((10*x*y)/math.pow(z,3))*dy+((15*x*math.pow(y,2))/math.pow(z,4))*dz\n",
+ "e=max/u\n",
+ "print \" the relative error is :%f\" %(e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " the relative error is :0.006000\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.12:pg-12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#taylor series\n",
+ "#example 1.12\n",
+ "#page 12\n",
+ "import math\n",
+ "def f(x):\n",
+ " return math.pow(x,3)+5*x-10\n",
+ "def f1(x):\n",
+ " return 3*math.pow(x,2)-6*x+5\n",
+ "def f2(x):\n",
+ " return 6*x-6\n",
+ "def f3(x):\n",
+ " return 6\n",
+ "D=[0,f(0), f1(0), f2(0), f3(0)]\n",
+ "S1=0;\n",
+ "h=1;\n",
+ "for i in range(1,5):\n",
+ " S1=S1+math.pow(h,i-1)*D[i]/math.factorial(i-1)\n",
+ " \n",
+ "print \"the third order taylors series approximation of f(1) is :%d\" %(S1)\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the third order taylors series approximation of f(1) is :-7\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.13:pg-16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#taylor series\n",
+ "#example 1.13\n",
+ "#page 16\n",
+ "import math\n",
+ "def f(x):\n",
+ " return math.sin(x)\n",
+ "def f1(x):\n",
+ " return math.cos(x)\n",
+ "def f2(x):\n",
+ " return -1*math.sin(x)\n",
+ "def f3(x):\n",
+ " return -1*math.cos(x)\n",
+ "def f4(x):\n",
+ " return math.sin(x)\n",
+ "def f5(x):\n",
+ " return math.cos(x)\n",
+ "def f6(x):\n",
+ " return -1*math.sin(x)\n",
+ "def f7(x):\n",
+ " return -1*math.cos(x)\n",
+ "D=[0,f(math.pi/6), f1(math.pi/6), f2(math.pi/6), f3(math.pi/6), f4(math.pi/6), f5(math.pi/6), f6(math.pi/6), f7(math.pi/6)]\n",
+ "S1=0\n",
+ "h=math.pi/6\n",
+ "print \"order of approximation computed value of sin(pi/3) absolute eror\\n\\n\"\n",
+ "for j in range(1,10):\n",
+ " for i in range(1,j):\n",
+ " S1=S1+math.pow(h,i-1)*D[i]/math.factorial(i-1) \n",
+ " print \"%d %0.9f %0.9f\\n\" %(j,S1,abs(math.sin(math.pi/3)-S1))\n",
+ " S1=0\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "order of approximation computed value of sin(pi/3) absolute eror\n",
+ "\n",
+ "\n",
+ "1 0.000000000 0.866025404\n",
+ "\n",
+ "2 0.500000000 0.366025404\n",
+ "\n",
+ "3 0.953449841 0.087424437\n",
+ "\n",
+ "4 0.884910922 0.018885518\n",
+ "\n",
+ "5 0.864191614 0.001833790\n",
+ "\n",
+ "6 0.865757475 0.000267929\n",
+ "\n",
+ "7 0.866041490 0.000016087\n",
+ "\n",
+ "8 0.866027181 0.000001777\n",
+ "\n",
+ "9 0.866025327 0.000000077\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14:pg-18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#maclaurins expansion\n",
+ "#example 1.14\n",
+ "#page 18\n",
+ "n=8 #correct to 8 decimal places\n",
+ "x=1\n",
+ "for i in range(1,50):\n",
+ " if x/math.factorial(i)<math.pow(10,-8)/2:\n",
+ " c=i\n",
+ " break \n",
+ "print \"no of terms needed to correct to 8 decimal places is : %d \" %(c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "no of terms needed to correct to 8 decimal places is : 2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 78
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.15:pg-18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#series apprixamation\n",
+ "#example 1.15\n",
+ "#page 18\n",
+ "import math\n",
+ "x=.09090909 # 1/11 =.09090909\n",
+ "S1=0\n",
+ "for i in range(1,5,2):\n",
+ " S1=S1+math.pow(x,i)/i\n",
+ "print \"value of log(1.2) is : %0.8f\\n\\n\" %(2*S1)\n",
+ "c=0\n",
+ "for i in range(1,50):\n",
+ " if math.pow(.09090909,i)/i<2*math.pow(10,-7):\n",
+ " c=i\n",
+ " break\n",
+ "print \"min no of terms needed to get value wuth same accuracy is :%d\" %(c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of log(1.2) is : 0.18231906\n",
+ "\n",
+ "\n",
+ "min no of terms needed to get value wuth same accuracy is :6\n"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter2_1.ipynb b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter2_1.ipynb
new file mode 100644
index 00000000..e0f06dc5
--- /dev/null
+++ b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter2_1.ipynb
@@ -0,0 +1,2194 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4ea5f1862f23f05e185dbf413e39ce53a665076203199df3d54c2ad4a7911989"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter02:Solution of Algebric and Transcendental Equations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.1:pg-24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.1\n",
+ "#bisection method\n",
+ "#page 24\n",
+ "import math\n",
+ "def f(x):\n",
+ " return math.pow(x,3)-x-1\n",
+ "x1=1\n",
+ "x2=2 #f(1) is negative and f(2) is positive\n",
+ "d=0.0001 #for accuracy of root\n",
+ "c=1\n",
+ "print \"Succesive approximations \\t x1\\t \\tx2\\t \\tm\\t \\tf(m)\\n\"\n",
+ "while abs(x1-x2)>d:\n",
+ " \n",
+ " m=(x1+x2)/2.0\n",
+ " print \" \\t%f\\t%f\\t%f\\t%f\\n\" %(x1,x2,m,f(m))\n",
+ " if f(m)*f(x1)>0.0:\n",
+ " x1=m\n",
+ " else:\n",
+ " x2=m \n",
+ " c=c+1 # to count number of iterations \n",
+ "print \"the solution of equation after %i iteration is %g\" %(c,m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Succesive approximations \t x1\t \tx2\t \tm\t \tf(m)\n",
+ "\n",
+ " \t1.000000\t2.000000\t1.500000\t0.875000\n",
+ "\n",
+ " \t1.000000\t1.500000\t1.250000\t-0.296875\n",
+ "\n",
+ " \t1.250000\t1.500000\t1.375000\t0.224609\n",
+ "\n",
+ " \t1.250000\t1.375000\t1.312500\t-0.051514\n",
+ "\n",
+ " \t1.312500\t1.375000\t1.343750\t0.082611\n",
+ "\n",
+ " \t1.312500\t1.343750\t1.328125\t0.014576\n",
+ "\n",
+ " \t1.312500\t1.328125\t1.320312\t-0.018711\n",
+ "\n",
+ " \t1.320312\t1.328125\t1.324219\t-0.002128\n",
+ "\n",
+ " \t1.324219\t1.328125\t1.326172\t0.006209\n",
+ "\n",
+ " \t1.324219\t1.326172\t1.325195\t0.002037\n",
+ "\n",
+ " \t1.324219\t1.325195\t1.324707\t-0.000047\n",
+ "\n",
+ " \t1.324707\t1.325195\t1.324951\t0.000995\n",
+ "\n",
+ " \t1.324707\t1.324951\t1.324829\t0.000474\n",
+ "\n",
+ " \t1.324707\t1.324829\t1.324768\t0.000214\n",
+ "\n",
+ "the solution of equation after 15 iteration is 1.32477'\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2:pg-25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.2\n",
+ "#bisection method\n",
+ "#page 25\n",
+ "import math\n",
+ "def f(x):\n",
+ " return math.pow(x,3)-2*x-5\n",
+ "x1=2 \n",
+ "x2=3 #f(2) is negative and f(3) is positive\n",
+ "d=0.0001 #for accuracy of root\n",
+ "c=1\n",
+ "print \"Succesive approximations \\t x1\\t \\tx2\\t \\tm\\t \\tf(m)\\n\"\n",
+ "while abs(x1-x2)>d:\n",
+ " m=(x1+x2)/2.0\n",
+ " print \" \\t%f\\t%f\\t%f\\t%f\\n\" %(x1,x2,m,f(m))\n",
+ " if f(m)*f(x1)>0:\n",
+ " x1=m\n",
+ " else:\n",
+ " x2=m \n",
+ " c=c+1;# to count number of iterations \n",
+ "print \"the solution of equation after %i iteration is %0.4g\" %(c,m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Succesive approximations \t x1\t \tx2\t \tm\t \tf(m)\n",
+ "\n",
+ " \t2.000000\t3.000000\t2.500000\t5.625000\n",
+ "\n",
+ " \t2.000000\t2.500000\t2.250000\t1.890625\n",
+ "\n",
+ " \t2.000000\t2.250000\t2.125000\t0.345703\n",
+ "\n",
+ " \t2.000000\t2.125000\t2.062500\t-0.351318\n",
+ "\n",
+ " \t2.062500\t2.125000\t2.093750\t-0.008942\n",
+ "\n",
+ " \t2.093750\t2.125000\t2.109375\t0.166836\n",
+ "\n",
+ " \t2.093750\t2.109375\t2.101562\t0.078562\n",
+ "\n",
+ " \t2.093750\t2.101562\t2.097656\t0.034714\n",
+ "\n",
+ " \t2.093750\t2.097656\t2.095703\t0.012862\n",
+ "\n",
+ " \t2.093750\t2.095703\t2.094727\t0.001954\n",
+ "\n",
+ " \t2.093750\t2.094727\t2.094238\t-0.003495\n",
+ "\n",
+ " \t2.094238\t2.094727\t2.094482\t-0.000771\n",
+ "\n",
+ " \t2.094482\t2.094727\t2.094604\t0.000592\n",
+ "\n",
+ " \t2.094482\t2.094604\t2.094543\t-0.000090\n",
+ "\n",
+ "the solution of equation after 15 iteration is 2.095\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.3:pg-26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.3\n",
+ "#bisection method\n",
+ "#page 26\n",
+ "import math\n",
+ "def f(x):\n",
+ " return math.pow(x,3)+math.pow(x,2)+x+7\n",
+ "x1=-3\n",
+ "x2=-2 #f(-3) is negative and f(-2) is positive\n",
+ "d=0.0001 #for accuracy of root\n",
+ "c=1\n",
+ "print \"Succesive approximations \\t x1\\t \\tx2\\t \\tm\\t \\tf(m)\\n\"\n",
+ "while abs(x1-x2)>d:\n",
+ " m=(x1+x2)/2.0\n",
+ " print \" \\t%f\\t%f\\t%f\\t%f\\n\" %(x1,x2,m,f(m))\n",
+ " if f(m)*f(x1)>0:\n",
+ " x1=m\n",
+ " else:\n",
+ " x2=m \n",
+ " c=c+1 # to count number of iterations \n",
+ "print \"the solution of equation after %i iteration is %0.4g\" %(c,m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Succesive approximations \t x1\t \tx2\t \tm\t \tf(m)\n",
+ "\n",
+ " \t-3.000000\t-2.000000\t-2.500000\t-4.875000\n",
+ "\n",
+ " \t-2.500000\t-2.000000\t-2.250000\t-1.578125\n",
+ "\n",
+ " \t-2.250000\t-2.000000\t-2.125000\t-0.205078\n",
+ "\n",
+ " \t-2.125000\t-2.000000\t-2.062500\t0.417725\n",
+ "\n",
+ " \t-2.125000\t-2.062500\t-2.093750\t0.111481\n",
+ "\n",
+ " \t-2.125000\t-2.093750\t-2.109375\t-0.045498\n",
+ "\n",
+ " \t-2.109375\t-2.093750\t-2.101562\t0.033315\n",
+ "\n",
+ " \t-2.109375\t-2.101562\t-2.105469\t-0.006010\n",
+ "\n",
+ " \t-2.105469\t-2.101562\t-2.103516\t0.013673\n",
+ "\n",
+ " \t-2.105469\t-2.103516\t-2.104492\t0.003836\n",
+ "\n",
+ " \t-2.105469\t-2.104492\t-2.104980\t-0.001086\n",
+ "\n",
+ " \t-2.104980\t-2.104492\t-2.104736\t0.001376\n",
+ "\n",
+ " \t-2.104980\t-2.104736\t-2.104858\t0.000145\n",
+ "\n",
+ " \t-2.104980\t-2.104858\t-2.104919\t-0.000470\n",
+ "\n",
+ "the solution of equation after 15 iteration is -2.105\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.4:pg-26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.4\n",
+ "#bisection method\n",
+ "#page 26\n",
+ "import math\n",
+ "def f(x):\n",
+ " return x*math.exp(x)-1\n",
+ "x1=0 \n",
+ "x2=1 #f(0) is negative and f(1) is positive\n",
+ "d=0.0005 #maximun tolerance value\n",
+ "c=1\n",
+ "print \"Succesive approximations \\t x1\\t \\tx2\\t \\tm\\t \\ttol\\t \\tf(m)\\n\"\n",
+ "while abs((x2-x1)/x2)>d:\n",
+ " m=(x1+x2)/2.0 #tolerance value for each iteration\n",
+ " tol=((x2-x1)/x2)*100\n",
+ " print \" \\t%f\\t%f\\t%f\\t%f\\t%f\\n\" %(x1,x2,m,tol,f(m))\n",
+ " if f(m)*f(x1)>0:\n",
+ " x1=m\n",
+ " else:\n",
+ " x2=m \n",
+ " c=c+1 # to count number of iterations \n",
+ "print \"the solution of equation after %i iteration is %0.4g\" %(c,m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Succesive approximations \t x1\t \tx2\t \tm\t \ttol\t \tf(m)\n",
+ "\n",
+ " \t0.000000\t1.000000\t0.500000\t100.000000\t-0.175639\n",
+ "\n",
+ " \t0.500000\t1.000000\t0.750000\t50.000000\t0.587750\n",
+ "\n",
+ " \t0.500000\t0.750000\t0.625000\t33.333333\t0.167654\n",
+ "\n",
+ " \t0.500000\t0.625000\t0.562500\t20.000000\t-0.012782\n",
+ "\n",
+ " \t0.562500\t0.625000\t0.593750\t10.000000\t0.075142\n",
+ "\n",
+ " \t0.562500\t0.593750\t0.578125\t5.263158\t0.030619\n",
+ "\n",
+ " \t0.562500\t0.578125\t0.570312\t2.702703\t0.008780\n",
+ "\n",
+ " \t0.562500\t0.570312\t0.566406\t1.369863\t-0.002035\n",
+ "\n",
+ " \t0.566406\t0.570312\t0.568359\t0.684932\t0.003364\n",
+ "\n",
+ " \t0.566406\t0.568359\t0.567383\t0.343643\t0.000662\n",
+ "\n",
+ " \t0.566406\t0.567383\t0.566895\t0.172117\t-0.000687\n",
+ "\n",
+ " \t0.566895\t0.567383\t0.567139\t0.086059\t-0.000013\n",
+ "\n",
+ "the solution of equation after 13 iteration is 0.5671\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.5:pg-27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.5\n",
+ "#bisection method\n",
+ "#page 27\n",
+ "import math\n",
+ "def f(x):\n",
+ " return 4*math.exp(-x)*math.sin(x)-1\n",
+ "x1=0 \n",
+ "x2=0.5 #f(0) is negative and f(1) is positive\n",
+ "d=0.0001 #for accuracy of root\n",
+ "c=1 \n",
+ "print \"Succesive approximations \\t x1\\t \\tx2\\t \\tm\\t \\t \\tf(m)\\n\"\n",
+ "while abs(x2-x1)>d:\n",
+ " m=(x1+x2)/2.0\n",
+ " print \" \\t%f\\t%f\\t%f\\t%f\\n\" %(x1,x2,m,f(m))\n",
+ " if f(m)*f(x1)>0:\n",
+ " x1=m\n",
+ " else:\n",
+ " x2=m \n",
+ " c=c+1 # to count number of iterations \n",
+ "print \"the solution of equation after %i iteration is %0.3g\" %(c,m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Succesive approximations \t x1\t \tx2\t \tm\t \t \tf(m)\n",
+ "\n",
+ " \t0.000000\t0.500000\t0.250000\t-0.229286\n",
+ "\n",
+ " \t0.250000\t0.500000\t0.375000\t0.006941\n",
+ "\n",
+ " \t0.250000\t0.375000\t0.312500\t-0.100293\n",
+ "\n",
+ " \t0.312500\t0.375000\t0.343750\t-0.044068\n",
+ "\n",
+ " \t0.343750\t0.375000\t0.359375\t-0.017925\n",
+ "\n",
+ " \t0.359375\t0.375000\t0.367188\t-0.005334\n",
+ "\n",
+ " \t0.367188\t0.375000\t0.371094\t0.000842\n",
+ "\n",
+ " \t0.367188\t0.371094\t0.369141\t-0.002236\n",
+ "\n",
+ " \t0.369141\t0.371094\t0.370117\t-0.000694\n",
+ "\n",
+ " \t0.370117\t0.371094\t0.370605\t0.000075\n",
+ "\n",
+ " \t0.370117\t0.370605\t0.370361\t-0.000310\n",
+ "\n",
+ " \t0.370361\t0.370605\t0.370483\t-0.000118\n",
+ "\n",
+ " \t0.370483\t0.370605\t0.370544\t-0.000022\n",
+ "\n",
+ "the solution of equation after 14 iteration is 0.371\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6:pg-28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.6\n",
+ "#false position method\n",
+ "#page 28\n",
+ "import math\n",
+ "def f(x):\n",
+ " return x**3-2*x-5\n",
+ "a=2.0\n",
+ "b=3.0 #f(2) is negative and f(3)is positive\n",
+ "d=0.00001\n",
+ "print \"succesive iterations \\ta\\t b\\t f(a)\\t f(b)\\t\\ x1\\n\"\n",
+ "for i in range(1,25):\n",
+ " x1=b*f(a)/(f(a)-f(b))+a*f(b)/(f(b)-f(a))\n",
+ " if(f(a)*f(x1))>0:\n",
+ " b=x1\n",
+ " else:\n",
+ " a=x1\n",
+ " if abs(f(x1))<d:\n",
+ " break\n",
+ " print \" \\t%f %f %f %f %f\\n\" %(a,b,f(a),f(b),x1)\n",
+ "print \"the root of the equation is %f\" %(x1)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "succesive iterations \ta\t b\t f(a)\t f(b)\t\\ x1\n",
+ "\n",
+ " \t2.000000 2.058824 -1.000000 -0.390800 2.058824\n",
+ "\n",
+ " \t2.096559 2.058824 0.022428 -0.390800 2.096559\n",
+ "\n",
+ " \t2.094511 2.058824 -0.000457 -0.390800 2.094511\n",
+ "\n",
+ "the root of the equation is 2.094552\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.7:pg-29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.7\n",
+ "#false position method\n",
+ "#page 29\n",
+ "def f(x):\n",
+ " return x**2.2-69\n",
+ "a=5.0\n",
+ "b=6.0 #f(5) is negative and f(6)is positive\n",
+ "d=0.00001\n",
+ "print \"succesive iterations \\ta\\t b\\t f(a)\\t f(b)\\t\\ x1\\n\"\n",
+ "for i in range(1,25):\n",
+ " x1=b*f(a)/(f(a)-f(b))+a*f(b)/(f(b)-f(a));\n",
+ " if(f(a)*f(x1))>0:\n",
+ " b=x1\n",
+ " else:\n",
+ " a=x1\n",
+ " if abs(f(x1))<d:\n",
+ " break\n",
+ " print \" \\t%f %f %f %f %f\\n\" %(a,b,f(a),f(b),x1)\n",
+ "print \"the root of the equation is %f\" %(x1)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "succesive iterations \ta\t b\t f(a)\t f(b)\t\\ x1\n",
+ "\n",
+ " \t7.027228 6.000000 3.933141 -17.485113 7.027228\n",
+ "\n",
+ " \t6.838593 6.000000 -0.304723 -17.485113 6.838593\n",
+ "\n",
+ " \t6.853467 6.000000 0.024411 -17.485113 6.853467\n",
+ "\n",
+ " \t6.852277 6.000000 -0.001950 -17.485113 6.852277\n",
+ "\n",
+ " \t6.852372 6.000000 0.000156 -17.485113 6.852372\n",
+ "\n",
+ " \t6.852365 6.000000 -0.000012 -17.485113 6.852365\n",
+ "\n",
+ "the root of the equation is 6.852365\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.8:pg-29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.8\n",
+ "#false position method\n",
+ "#page 29\n",
+ "import math\n",
+ "def f(x):\n",
+ " return 2*x-log10(x)-7\n",
+ "a=3.0\n",
+ "b=4.0 #f(3) is negative and f(4)is positive\n",
+ "d=0.00001\n",
+ "print \"succesive iterations \\ta\\t b\\t f(a)\\t f(b)\\t\\ x1\\n\"\n",
+ "for i in range(1,25):\n",
+ " x1=b*f(a)/(f(a)-f(b))+a*f(b)/(f(b)-f(a))\n",
+ " if(f(a)*f(x1))>0:\n",
+ " b=x1\n",
+ " else:\n",
+ " a=x1\n",
+ " if abs(f(x1))<d:\n",
+ " break\n",
+ " print \" \\t%f %f %f %f %f\\n\" %(a,b,f(a),f(b),x1)\n",
+ "print \"the root of the equation is %0.4g\" %(x1)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "succesive iterations \ta\t b\t f(a)\t f(b)\t\\ x1\n",
+ "\n",
+ " \t3.000000 3.787772 -1.477121 -0.002839 3.787772\n",
+ "\n",
+ " \t3.789289 3.787772 0.000021 -0.002839 3.789289\n",
+ "\n",
+ "the root of the equation is 3.789\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.9:pg-30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.9\n",
+ "#false position method\n",
+ "#page 30\n",
+ "import math\n",
+ "def f(x):\n",
+ " return 4*math.exp(-x)*math.sin(x)-1\n",
+ "a=0.0\n",
+ "b=0.5 #f(0) is negative and f(0.5)is positive\n",
+ "d=0.00001\n",
+ "print \"succesive iterations \\ta\\t b\\t f(a)\\t f(b)\\t\\ x1\\n\"\n",
+ "for i in range(1,25):\n",
+ " x1=b*f(a)/(f(a)-f(b))+a*f(b)/(f(b)-f(a))\n",
+ " if(f(a)*f(x1))>0:\n",
+ " b=x1\n",
+ " else:\n",
+ " a=x1\n",
+ " if abs(f(x1))<d:\n",
+ " break\n",
+ " print \" \\t%f %f %f %f %f\\n\" %(a,b,f(a),f(b),x1)\n",
+ "print \"the root of the equation is %f\" %(x1)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "succesive iterations \ta\t b\t f(a)\t f(b)\t\\ x1\n",
+ "\n",
+ " \t0.429869 0.500000 0.084545 0.163145 0.429869\n",
+ "\n",
+ " \t0.354433 0.500000 -0.026054 0.163145 0.354433\n",
+ "\n",
+ " \t0.374479 0.500000 0.006132 0.163145 0.374479\n",
+ "\n",
+ " \t0.369577 0.500000 -0.001547 0.163145 0.369577\n",
+ "\n",
+ " \t0.370802 0.500000 0.000384 0.163145 0.370802\n",
+ "\n",
+ " \t0.370497 0.500000 -0.000096 0.163145 0.370497\n",
+ "\n",
+ " \t0.370573 0.500000 0.000024 0.163145 0.370573\n",
+ "\n",
+ "the root of the equation is 0.370554\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.10:pg-33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.10\n",
+ "#iteration method\n",
+ "#page 33\n",
+ "import math\n",
+ "def f(x):\n",
+ " return 1/(math.sqrt(x+1))\n",
+ "x1=0.75\n",
+ "x2=0.0\n",
+ "n=1\n",
+ "d=0.0001 #accuracy opto 10^-4\n",
+ "c=0 #to count no of iterations \n",
+ "print \"successive iterations \\t\\x01\\tf(x1)\\n\"\n",
+ "while abs(x1-x2)>d:\n",
+ " print \" \\t%f %f\\n\" %(x1,f(x1))\n",
+ " x2=x1\n",
+ " x1=f(x1)\n",
+ " c=c+1\n",
+ "print \" the root of the eqaution after %i iteration is %0.4g\" %(c,x1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "successive iterations \t\u0001\tf(x1)\n",
+ "\n",
+ " \t0.750000 0.755929\n",
+ "\n",
+ " \t0.755929 0.754652\n",
+ "\n",
+ " \t0.754652 0.754926\n",
+ "\n",
+ " \t0.754926 0.754867\n",
+ "\n",
+ " the root of the eqaution after 4 iteration is 0.7549\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.11:pg-34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.11\n",
+ "#iteration method\n",
+ "#page34\n",
+ "import math\n",
+ "def f(x):\n",
+ " return cos(x)/2.0+3.0/2.0\n",
+ "x1=1.5 # as roots lies between 3/2 and pi/2\n",
+ "x2=0\n",
+ "d=0.0001 # accuracy opto 10^-4\n",
+ "c=0 # to count no of iterations \n",
+ "print \"successive iterations \\t\\x01\\tf(x1)\\n\"\n",
+ "while abs(x2-x1)>d:\n",
+ " \n",
+ " print \" \\t%f %f\\n\" %(x1,f(x1))\n",
+ " x2=x1\n",
+ " x1=f(x1)\n",
+ " c=c+1\n",
+ "print \" the root of the eqaution after %i iteration is %0.4g\" %(c,x1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "successive iterations \t\u0001\tf(x1)\n",
+ "\n",
+ " \t1.500000 1.535369\n",
+ "\n",
+ " \t1.535369 1.517710\n",
+ "\n",
+ " \t1.517710 1.526531\n",
+ "\n",
+ " \t1.526531 1.522126\n",
+ "\n",
+ " \t1.522126 1.524326\n",
+ "\n",
+ " \t1.524326 1.523227\n",
+ "\n",
+ " \t1.523227 1.523776\n",
+ "\n",
+ " \t1.523776 1.523502\n",
+ "\n",
+ " \t1.523502 1.523639\n",
+ "\n",
+ " \t1.523639 1.523570\n",
+ "\n",
+ " the root of the eqaution after 10 iteration is 1.524\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.12:pg-35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.12\n",
+ "#iteration method\n",
+ "#page 35\n",
+ "import math\n",
+ "def f(x):\n",
+ " return math.exp(-x)\n",
+ "x1=1.5 # as roots lies between 0 and 1\n",
+ "x2=0\n",
+ "d=0.0001 # accuracy opto 10^-4\n",
+ "c=0 # to count no of iterations \n",
+ "print \"successive iterations \\t x1 \\t f(x1)\\n\"\n",
+ "while abs(x2-x1)>d:\n",
+ " \n",
+ " print \" \\t%f %f\\n\" %(x1,f(x1))\n",
+ " x2=x1\n",
+ " x1=f(x1)\n",
+ " c=c+1\n",
+ "print \" the root of the eqaution after %i iteration is %0.4g\" %(c,x1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "successive iterations \t x1 \t f(x1)\n",
+ "\n",
+ " \t1.500000 0.223130\n",
+ "\n",
+ " \t0.223130 0.800011\n",
+ "\n",
+ " \t0.800011 0.449324\n",
+ "\n",
+ " \t0.449324 0.638059\n",
+ "\n",
+ " \t0.638059 0.528317\n",
+ "\n",
+ " \t0.528317 0.589597\n",
+ "\n",
+ " \t0.589597 0.554551\n",
+ "\n",
+ " \t0.554551 0.574330\n",
+ "\n",
+ " \t0.574330 0.563082\n",
+ "\n",
+ " \t0.563082 0.569451\n",
+ "\n",
+ " \t0.569451 0.565836\n",
+ "\n",
+ " \t0.565836 0.567885\n",
+ "\n",
+ " \t0.567885 0.566723\n",
+ "\n",
+ " \t0.566723 0.567382\n",
+ "\n",
+ " \t0.567382 0.567008\n",
+ "\n",
+ " \t0.567008 0.567220\n",
+ "\n",
+ " \t0.567220 0.567100\n",
+ "\n",
+ " \t0.567100 0.567168\n",
+ "\n",
+ " the root of the eqaution after 18 iteration is 0.5672\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.13:pg-35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.13\n",
+ "#iteration method\n",
+ "#page 35\n",
+ "import math\n",
+ "def f(x):\n",
+ " return 1+math.sin(x)/10\n",
+ "x1=1.0 # as roots lies between 1 and pi evident from graph\n",
+ "x2=0\n",
+ "d=0.0001 # accuracy opto 10^-4\n",
+ "c=0 # to count no of iterations \n",
+ "print \"successive iterations \\t x1 \\t f(x1)\\n\"\n",
+ "while abs(x2-x1)>d:\n",
+ " print \" \\t%f %f\\n\" %(x1,f(x1))\n",
+ " x2=x1\n",
+ " x1=f(x1)\n",
+ " c=c+1\n",
+ "print \" the root of the eqaution after %i iteration is %0.4g\" %(c,x1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "successive iterations \t x1 \t f(x1)\n",
+ "\n",
+ " \t1.000000 1.084147\n",
+ "\n",
+ " \t1.084147 1.088390\n",
+ "\n",
+ " \t1.088390 1.088588\n",
+ "\n",
+ " \t1.088588 1.088597\n",
+ "\n",
+ " the root of the eqaution after 4 iteration is 1.089\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.14:pg-36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.14\n",
+ "#aitken's process\n",
+ "#page 36\n",
+ "import math\n",
+ "def f(x):\n",
+ " return 1.5+math.cos(x)/2.0\n",
+ "x0=1.5\n",
+ "y=0\n",
+ "e=0.0001\n",
+ "c=0\n",
+ "print \"successive iterations \\t x0 \\t x1 \\t x2 \\t x3 \\t y\\n\"\n",
+ "for i in range(1,10):\n",
+ " x1=f(x0)\n",
+ " x2=f(x1)\n",
+ " x3=f(x2)\n",
+ " y=x3-((x3-x2)**2)/(x3-2*x2+x1)\n",
+ " d=y-x0\n",
+ " x0=y\n",
+ " if abs(f(x0))<e:\n",
+ " break\n",
+ " c=c+1\n",
+ " print \" \\t%f %f %f %f %f\\n\" %(x0,x1,x2,x3,y)\n",
+ "print \"the root of the equation after %i iteration is %f\" %(c,y)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "successive iterations \t x0 \t x1 \t x2 \t x3 \t y\n",
+ "\n",
+ " \t1.523592 1.535369 1.517710 1.526531 1.523592\n",
+ "\n",
+ " \t1.523593 1.523593 1.523593 1.523593 1.523593\n",
+ "\n",
+ " \t1.523593 1.523593 1.523593 1.523593 1.523593\n",
+ "\n",
+ " \t1.523593 1.523593 1.523593 1.523593 1.523593\n",
+ "\n",
+ " \t1.523593 1.523593 1.523593 1.523593 1.523593\n",
+ "\n",
+ " \t1.523593 1.523593 1.523593 1.523593 1.523593\n",
+ "\n",
+ " \t1.523593 1.523593 1.523593 1.523593 1.523593\n",
+ "\n",
+ " \t1.523593 1.523593 1.523593 1.523593 1.523593\n",
+ "\n",
+ " \t1.523593 1.523593 1.523593 1.523593 1.523593\n",
+ "\n",
+ "the root of the equation after 9 iteration is 1.523593\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.15:pg-39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.15\n",
+ "#newton-raphson method\n",
+ "#page 39\n",
+ "def f(x):\n",
+ " return x**3-2*x-5\n",
+ "def f1(x):\n",
+ " return 3*x**2-2 # first derivative of the function\n",
+ "x0=2.0 # initial value\n",
+ "d=0.0001\n",
+ "c=0\n",
+ "n=1\n",
+ "print \"successive iterations \\t x0 \\t f(x0) \\t f1(x0)\\n\"\n",
+ "while n==1:\n",
+ " x2=x0\n",
+ " x1=x0-(f(x0)/f1(x0))\n",
+ " x0=x1\n",
+ " print \" \\t%f \\t%f \\t%f \\n\" %(x2,f(x1),f1(x1))\n",
+ " c=c+1\n",
+ " if abs(f(x0))<d:\n",
+ " break\n",
+ "print \"the root of %i iteration is:%f\" %(c,x0)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "successive iterations \t x0 \t f(x0) \t f1(x0)\n",
+ "\n",
+ " \t2.000000 \t0.061000 \t11.230000 \n",
+ "\n",
+ " \t2.100000 \t0.000186 \t11.161647 \n",
+ "\n",
+ " \t2.094568 \t0.000000 \t11.161438 \n",
+ "\n",
+ "the root of 3 iteration is:2.094551\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.16:pg-40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.16\n",
+ "#newton-raphson method\n",
+ "#page 40\n",
+ "import math\n",
+ "def f(x):\n",
+ " return x*math.sin(x)+math.cos(x)\n",
+ "def f1(x):\n",
+ " return x*math.cos(x) #first derivation of the function\n",
+ "x0=math.pi # initial value\n",
+ "d=0.0001\n",
+ "c=0 \n",
+ "n=1\n",
+ "print \"successive iterations \\tx0\\t f(x0)\\t f1(x0)\\n\"\n",
+ "while n==1:\n",
+ " x2=x0\n",
+ " x1=x0-(f(x0)/f1(x0))\n",
+ " x0=x1\n",
+ " print \" \\t%f \\t%f \\t%f\\n\" %(x2,f(x1),f1(x1))\n",
+ " c=c+1\n",
+ " if abs(f(x0))<d:\n",
+ " break\n",
+ "print \"the root of %i iteration is:%f\" %(c,x0)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "successive iterations \tx0\t f(x0)\t f1(x0)\n",
+ "\n",
+ " \t3.141593 \t-0.066186 \t-2.681457\n",
+ "\n",
+ " \t2.823283 \t-0.000564 \t-2.635588\n",
+ "\n",
+ " \t2.798600 \t-0.000000 \t-2.635185\n",
+ "\n",
+ "the root of 3 iteration is:2.798386\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.17:pg-40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.17\n",
+ "#newton-raphson method\n",
+ "#page 40\n",
+ "import math\n",
+ "def f(x):\n",
+ " return x*math.exp(x)-1\n",
+ "def f1(x):\n",
+ " return math.exp(x)+x*math.exp(x) #first derivative of the function\n",
+ "x0=0 # initial value\n",
+ "d=0.0001 \n",
+ "c=0\n",
+ "n=1\n",
+ "print \"successive iterations \\tx0\\t f(x0)\\t f1(x0)\\n\"\n",
+ "while n==1:\n",
+ " x2=x0\n",
+ " x1=x0-(f(x0)/f1(x0))\n",
+ " x0=x1\n",
+ " print \" \\t%f \\t%f \\t%f\\n\" %(x2,f(x1),f1(x1))\n",
+ " c=c+1\n",
+ " if abs(f(x0))<d:\n",
+ " break\n",
+ "print \"the root of %i iteration is:%f\" %(c,x0)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "successive iterations \tx0\t f(x0)\t f1(x0)\n",
+ "\n",
+ " \t0.000000 \t1.718282 \t5.436564\n",
+ "\n",
+ " \t1.000000 \t0.355343 \t3.337012\n",
+ "\n",
+ " \t0.683940 \t0.028734 \t2.810232\n",
+ "\n",
+ " \t0.577454 \t0.000239 \t2.763614\n",
+ "\n",
+ " \t0.567230 \t0.000000 \t2.763223\n",
+ "\n",
+ "the root of 5 iteration is:0.567143\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.18:pg-41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.18\n",
+ "#newton-raphson method\n",
+ "#page 41\n",
+ "import math\n",
+ "def f(x):\n",
+ " return math.sin(x)-x/2.0\n",
+ "def f1(x):\n",
+ " return math.cos(x)-0.5\n",
+ "x0=math.pi/2.0 # initial value\n",
+ "d=0.0001\n",
+ "c=0\n",
+ "n=1\n",
+ "print \"successive iterations \\t x0 \\t f(x0)\\t f1(x0)\\n\"\n",
+ "while n==1:\n",
+ " x2=x0\n",
+ " x1=x0-(f(x0)/f1(x0))\n",
+ " x0=x1\n",
+ " print \" \\t%f\\t%f\\t%f\\n\" %(x2,f(x1),f1(x1))\n",
+ " c=c+1\n",
+ " if abs(f(x0))<d:\n",
+ " break\n",
+ "print \"the root of %i iteration is: %0.4g\" %(c,x0)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "successive iterations \t x0 \t f(x0)\t f1(x0)\n",
+ "\n",
+ " \t1.570796\t-0.090703\t-0.916147\n",
+ "\n",
+ " \t2.000000\t-0.004520\t-0.824232\n",
+ "\n",
+ " \t1.900996\t-0.000014\t-0.819039\n",
+ "\n",
+ "the root of 3 iteration is: 1.896\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.19:pg-41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.19\n",
+ "#newton-raphson method\n",
+ "#page 41\n",
+ "import math\n",
+ "def f(x):\n",
+ " return 4*math.exp(-x)*math.sin(x)-1\n",
+ "def f1(x):\n",
+ " return math.cos(x)*4*math.exp(-x)-4*math.exp(-x)*math.sin(x)\n",
+ "x0=0.2 # initial value\n",
+ "d=0.0001\n",
+ "c=0 \n",
+ "n=1\n",
+ "print \"successive iterations \\t x0 \\t f(x0)\\t f1(x0)\\n\"\n",
+ "while n==1:\n",
+ " x2=x0\n",
+ " x1=x0-(f(x0)/f1(x0))\n",
+ " x0=x1\n",
+ " print \" \\t%f \\t%f \\t%f\\n\" %(x2,f(x1),f1(x1))\n",
+ " c=c+1\n",
+ " if abs(f(x0))<d:\n",
+ " break \n",
+ "print \"the root of %i iteration is: %0.3g\" %(c,x0)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "successive iterations \t x0 \t f(x0)\t f1(x0)\n",
+ "\n",
+ " \t0.200000 \t-0.056593 \t1.753325\n",
+ "\n",
+ " \t0.336526 \t-0.002769 \t1.583008\n",
+ "\n",
+ " \t0.368804 \t-0.000008 \t1.573993\n",
+ "\n",
+ "the root of 3 iteration is: 0.371\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.20:pg-42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.20\n",
+ "#generalized newton-raphson method\n",
+ "#page 42\n",
+ "def f(x):\n",
+ " return x**3-x**2-x+1\n",
+ "def f1(x):\n",
+ " return 3*x**2-2*x-1\n",
+ "def f2(x):\n",
+ " return 6*x-2\n",
+ "x0=0.8 # initial value to finf double root\n",
+ "n=1 \n",
+ "print \"successive iterations \\t x0 \\t x1\\t x2\\n\"\n",
+ "while n==1:\n",
+ " x1=x0-(f(x0)/f1(x0));\n",
+ " x2=x0-(f1(x0)/f2(x0));\n",
+ " if abs(x1-x2)<0.000000001:\n",
+ " x0=(x1+x2)/2.0\n",
+ " break\n",
+ " else:\n",
+ " x0=(x1+x2)/2;\n",
+ " print \" %f\\t %f\\t %f\\n\" %(x0,x1,x2)\n",
+ "print \"\\n \\nthe double root is at: %f\" %(x0)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "successive iterations \t x0 \t x1\t x2\n",
+ "\n",
+ " 0.974370\t 0.905882\t 1.042857\n",
+ "\n",
+ " 0.993890\t 0.987269\t 1.000512\n",
+ "\n",
+ " 0.998489\t 0.996950\t 1.000028\n",
+ "\n",
+ " 0.999623\t 0.999245\t 1.000002\n",
+ "\n",
+ " 0.999906\t 0.999812\t 1.000000\n",
+ "\n",
+ " 0.999976\t 0.999953\t 1.000000\n",
+ "\n",
+ " 0.999994\t 0.999988\t 1.000000\n",
+ "\n",
+ " 0.999999\t 0.999997\t 1.000000\n",
+ "\n",
+ " 1.000000\t 0.999999\t 1.000000\n",
+ "\n",
+ " 1.000000\t 1.000000\t 1.000000\n",
+ "\n",
+ " 1.000000\t 1.000000\t 1.000000\n",
+ "\n",
+ " 1.000000\t 1.000000\t 1.000000\n",
+ "\n",
+ " 1.000000\t 1.000000\t 1.000000\n",
+ "\n",
+ "\n",
+ " \n",
+ "the double root is at: 1.000000\n"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.21:pg-45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ramanujan's method\n",
+ "#example 2.21\n",
+ "#page 45\n",
+ "def f(x):\n",
+ " return 1-(13.0/12.0)*x-(3.0/8.0)*x**2+(1.0/24.0)*x**3\n",
+ "a1=13.0/12.0\n",
+ "a2=-3.0/8.0\n",
+ "a3=1.0/24.0\n",
+ "b1=1\n",
+ "b2=a1\n",
+ "b3=a1*b2+a2*b1\n",
+ "b4=a1*b3+a2*b2+a3*b1\n",
+ "b5=a1*b4+a2*b3+a3*b2\n",
+ "b6=a1*b5+a2*b4+a3*b3\n",
+ "b7=a1*b6+a2*b5+a3*b4\n",
+ "b8=a1*b7+a2*b6+a3*b5\n",
+ "b9=a1*b8+a2*b7+a3*b6\n",
+ "print \"\\n\\n%f\" %(b1/b2)\n",
+ "print \"\\n%f\" %(b2/b3)\n",
+ "print \"\\n%f\" %(b3/b4)\n",
+ "print \"\\n%f\" %(b4/b5)\n",
+ "print \"\\n%f\" %(b5/b6)\n",
+ "print \"\\n%f\" %(b6/b7)\n",
+ "print \"\\n%f\" %(b7/b8)\n",
+ "print \"\\n%f\" %(b8/b9)\n",
+ "print \"\\n it appears as if the roots are converging at 2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "0.923077\n",
+ "\n",
+ "1.356522\n",
+ "\n",
+ "1.595376\n",
+ "\n",
+ "1.738402\n",
+ "\n",
+ "1.828184\n",
+ "\n",
+ "1.886130\n",
+ "\n",
+ "1.924153\n",
+ "\n",
+ "1.949345\n",
+ "\n",
+ " it appears as if the roots are converging at 2\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.22:pg-46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ramanujan's method\n",
+ "#example 2.22\n",
+ "#page 46\n",
+ "def f(x):\n",
+ " return x+x**2+(x**3)/2.0+(x**4)/6.0+(x**5)/24.0\n",
+ "a1=1.0\n",
+ "a2=1.0\n",
+ "a3=1.0/2.0\n",
+ "a4=1.0/6.0\n",
+ "a5=1.0/24.0\n",
+ "b1=1\n",
+ "b2=a2\n",
+ "b3=a1*b2+a2*b1\n",
+ "b4=a1*b3+a2*b2+a3*b1\n",
+ "b5=a1*b4+a2*b3+a3*b2\n",
+ "b6=a1*b5+a2*b4+a3*b3\n",
+ "print \"\\n%f\" %(b1/b2)\n",
+ "print \"\\n%f\" %(b2/b3)\n",
+ "print \"\\n%f\" %(b3/b4)\n",
+ "print \"\\n%f\" %(b4/b5)\n",
+ "print \"\\n%f\" %(b5/b6)\n",
+ "print \"\\n it appears as if the roots are converging at around %f\" %(b5/b6)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "1.000000\n",
+ "\n",
+ "0.500000\n",
+ "\n",
+ "0.571429\n",
+ "\n",
+ "0.583333\n",
+ "\n",
+ "0.571429\n",
+ "\n",
+ " it appears as if the roots are converging at around 0.571429\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.23:pg-47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ramanujan's method\n",
+ "#example 2.23\n",
+ "#page 47\n",
+ "from __future__ import division\n",
+ "def f(x):\n",
+ " return 1-2*((3*x/2.0+(x**2)/4.0-(x**4)/48.0+(x**6)/1440.0)-(x**8)*2/80640.0)\n",
+ "a1=3/2\n",
+ "a2=1/4\n",
+ "a3=0\n",
+ "a4=1/48\n",
+ "a5=0\n",
+ "a6=1/1440\n",
+ "a7=0\n",
+ "a8=-1/80640\n",
+ "b1=1\n",
+ "b2=a1\n",
+ "b3=a1*b2+a2*b1\n",
+ "b4=a1*b3+a2*b2+a3*b1\n",
+ "b5=a1*b4+a2*b3+a3*b2\n",
+ "b6=a1*b5+a2*b4+a3*b3\n",
+ "b7=a1*b6+a2*b5+a3*b4\n",
+ "b8=a1*b7+a2*b6+a3*b5\n",
+ "b9=a1*b8+a2*b7+a3*b6\n",
+ "print \"\\n%f\" %(b1/b2)\n",
+ "print \"\\n%f\" %(b2/b3)\n",
+ "print \"\\n%f\" %(b3/b4)\n",
+ "print \"\\n%f\" %(b4/b5)\n",
+ "print \"\\n%f\" %(b5/b6)\n",
+ "print \"\\n%f\" %(b6/b7)\n",
+ "print \"\\n%f\" %(b7/b8)\n",
+ "print \"\\n it appears as if the roots are converging at around %f\" %(b7/b8)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "0.666667\n",
+ "\n",
+ "0.600000\n",
+ "\n",
+ "0.606061\n",
+ "\n",
+ "0.605505\n",
+ "\n",
+ "0.605556\n",
+ "\n",
+ "0.605551\n",
+ "\n",
+ "0.605551\n",
+ "\n",
+ " it appears as if the roots are converging at around 0.605551\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.24:pg-47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ramanujan's method\n",
+ "#example 2.24\n",
+ "#page 47\n",
+ "import math\n",
+ "def f(x):\n",
+ " return 1-(x-x**2.0/math.factorial(2.0)**2.0+x**3.0/math.factorial(3.0)**2.0-x**4.0/math.factorial(4.0)**2.0)\n",
+ "a1=1\n",
+ "a2=-1/math.factorial(2.0)**2.0\n",
+ "a3=1/math.factorial(3.0)**2.0\n",
+ "a4=-1/math.factorial(4.0)**2.0\n",
+ "a5=-1/math.factorial(5.0)**2.0\n",
+ "a6=1/math.factorial(6.0)**2.0\n",
+ "b1=1\n",
+ "b2=a1\n",
+ "b3=a1*b2+a2*b1\n",
+ "b4=a1*b3+a2*b2+a3*b1\n",
+ "b5=a1*b4+a2*b3+a3*b2\n",
+ "print \"\\n\\n%f\" %(b1/b2)\n",
+ "print \"\\n\\n%f\" %(b2/b3)\n",
+ "print \"\\n%f\" %(b3/b4)\n",
+ "print \"\\n%f\" %(b4/b5)\n",
+ "print \"\\n it appears as if the roots are converging at around %f\" %(b4/b5)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "1.000000\n",
+ "\n",
+ "\n",
+ "1.333333\n",
+ "\n",
+ "1.421053\n",
+ "\n",
+ "1.433962\n",
+ "\n",
+ " it appears as if the roots are converging at around 1.433962\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.25:pg-49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.25\n",
+ "#secant method\n",
+ "#page 49\n",
+ "from __future__ import division\n",
+ "def f(x):\n",
+ " return x**3-2*x-5\n",
+ "x1=2\n",
+ "x2=3 # initial values\n",
+ "n=1\n",
+ "c=0\n",
+ "print \"successive iterations \\t x1 \\t x2 \\t x3 \\t f(x3)\\n\"\n",
+ "while n==1:\n",
+ " x3=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1)) \n",
+ " print \" \\t%f \\t%f \\t%f \\t%f\\n\" %(x1,x2,x3,f(x3))\n",
+ " if f(x3)*f(x1)>0:\n",
+ " x2=x3;\n",
+ " else:\n",
+ " x1=x3 \n",
+ " if abs(f(x3))<0.000001: \n",
+ " break\n",
+ " c=c+1\n",
+ "print \"the root of the equation after %i iteration is: %f\" %(c,x3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "successive iterations \t x1 \t x2 \t x3 \t f(x3)\n",
+ "\n",
+ " \t2.000000 \t3.000000 \t2.058824 \t-0.390800\n",
+ "\n",
+ " \t2.000000 \t2.058824 \t2.096559 \t0.022428\n",
+ "\n",
+ " \t2.096559 \t2.058824 \t2.094511 \t-0.000457\n",
+ "\n",
+ " \t2.094511 \t2.058824 \t2.094552 \t0.000009\n",
+ "\n",
+ " \t2.094552 \t2.058824 \t2.094551 \t-0.000000\n",
+ "\n",
+ "the root of the equation after 4 iteration is: 2.094551\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.26:pg-50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.26\n",
+ "#secant method\n",
+ "#page 50\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "def f(x):\n",
+ " return x*math.exp(x)-1\n",
+ "x1=0\n",
+ "x2=1 # initial values\n",
+ "n=1\n",
+ "c=0 \n",
+ "print \"successive iterations \\t x1 \\t x2 \\t x3 \\t f(x3)\\n\"\n",
+ "while n==1:\n",
+ " x3=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1)) \n",
+ " print \" \\t%f \\t%f \\t%f \\t%f\\n\" %(x1,x2,x3,f(x3))\n",
+ " if f(x3)*f(x1)>0:\n",
+ " x2=x3\n",
+ " else:\n",
+ " x1=x3 \n",
+ " if abs(f(x3))<0.0001:\n",
+ " break\n",
+ " c=c+1\n",
+ "print \"the root of the equation after %i iteration is: %0.4g\" %(c,x3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "successive iterations \t x1 \t x2 \t x3 \t f(x3)\n",
+ "\n",
+ " \t0.000000 \t1.000000 \t0.367879 \t-0.468536\n",
+ "\n",
+ " \t0.000000 \t0.367879 \t0.692201 \t0.383091\n",
+ "\n",
+ " \t0.692201 \t0.367879 \t0.546310 \t-0.056595\n",
+ "\n",
+ " \t0.546310 \t0.367879 \t0.570823 \t0.010200\n",
+ "\n",
+ " \t0.570823 \t0.367879 \t0.566500 \t-0.001778\n",
+ "\n",
+ " \t0.566500 \t0.367879 \t0.567256 \t0.000312\n",
+ "\n",
+ " \t0.567256 \t0.367879 \t0.567124 \t-0.000055\n",
+ "\n",
+ "the root of the equation after 6 iteration is: 0.5671\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.27:pg-52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# example 2.27\n",
+ "#mulller's method\n",
+ "#page 52\n",
+ "from __future__ import division\n",
+ "import math\n",
+ "def f(x):\n",
+ " return x**3-x-1\n",
+ "x0=0\n",
+ "x1=1\n",
+ "x2=2 # initial values\n",
+ "n=1\n",
+ "c=0\n",
+ "print \"successive iterations \\t x0 \\t x1 \\t x2 \\t f(x0)\\t f(x1)\\t f(x2)\\n\"\n",
+ "while n==1: \n",
+ " c=c+1\n",
+ " y0=f(x0)\n",
+ " y1=f(x1)\n",
+ " y2=f(x2)\n",
+ " h2=x2-x1\n",
+ " h1=x1-x0\n",
+ " d2=f(x2)-f(x1)\n",
+ " d1=f(x1)-f(x0)\n",
+ " print \" \\t%f\\t %f\\t %f\\t %f\\t %f\\t %f\\n\" %(x0,x1,x2,f(x0),f(x1),f(x2))\n",
+ " A=(d2/h2-d1/h1)/(h1+h2)\n",
+ " B=d2/h2+A*h2\n",
+ " S=math.sqrt(B**2-4*A*f(x2))\n",
+ " x3=x2-(2*f(x2))/(B+S)\n",
+ " E=abs((x3-x2)/x2)*100\n",
+ " if E<0.003:\n",
+ " break\n",
+ " else:\n",
+ " if c==1:\n",
+ " x2=x3\n",
+ " if c==2:\n",
+ " x1=x2\n",
+ " x2=x3\n",
+ " if c==3:\n",
+ " x0=x1\n",
+ " x1=x2\n",
+ " x2=x3\n",
+ " if c==3:\n",
+ " c=0\n",
+ "print \"the required root is : %0.4f\" %(x3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "successive iterations \t x0 \t x1 \t x2 \t f(x0)\t f(x1)\t f(x2)\n",
+ "\n",
+ " \t0.000000\t 1.000000\t 2.000000\t -1.000000\t -1.000000\t 5.000000\n",
+ "\n",
+ " \t0.000000\t 1.000000\t 1.263763\t -1.000000\t -1.000000\t -0.245412\n",
+ "\n",
+ " \t0.000000\t 1.263763\t 1.331711\t -1.000000\t -0.245412\t 0.030015\n",
+ "\n",
+ " \t1.263763\t 1.331711\t 1.324583\t -0.245412\t 0.030015\t -0.000574\n",
+ "\n",
+ " \t1.263763\t 1.331711\t 1.324718\t -0.245412\t 0.030015\t -0.000000\n",
+ "\n",
+ "the required root is : 1.3247\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.28:pg-55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#graeffe's method\n",
+ "#example 2.28\n",
+ "#page 55\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "def f(x):\n",
+ " return x**3-6*(x**2)+11*x-6\n",
+ "#x=poly(0,'x')\n",
+ "#g=f(-x)\n",
+ "print \"the equation is:\\n\"\n",
+ "A=[1, 14, 49, 36] #coefficients of the above equation\n",
+ "print \"%0.4g\\n\" %(math.sqrt(A[3]/A[2]))\n",
+ "print \"%0.4g\\n\" %(math.sqrt(A[2]/A[1]))\n",
+ "print \"%0.4g\\n\" %(math.sqrt(A[1]/A[0]))\n",
+ "print \"the equation is:\\n\"\n",
+ "#disp(g*(-1*g));\n",
+ "B=[1, 98, 1393, 1296]\n",
+ "print \"%0.4g\\n\" %((B[3]/B[2])**(1/4))\n",
+ "print \"%0.4g\\n\" %((B[2]/B[1])**(1/4))\n",
+ "print \"%0.4g\\n\" %((B[1]/B[0])**(1/4))\n",
+ "print \"It is apparent from the outputs that the roots converge at 1 2 3\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "#INCOMPLETE"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the equation is:\n",
+ "\n",
+ "0.8571\n",
+ "\n",
+ "1.871\n",
+ "\n",
+ "3.742\n",
+ "\n",
+ "the equation is:\n",
+ "\n",
+ "0.9821\n",
+ "\n",
+ "1.942\n",
+ "\n",
+ "3.146\n",
+ "\n",
+ "It is apparent from the outputs that the roots converge at 1 2 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.29:pg-57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#quadratic factor by lin's--bairsttow method\n",
+ "#example 2.29\n",
+ "#page 57\n",
+ "from numpy import matrix\n",
+ "from __future__ import division\n",
+ "def f(x):\n",
+ " return x**3-x-1\n",
+ "a=[-1, -1, 0, 1]\n",
+ "r1=1\n",
+ "s1=1\n",
+ "b4=a[3]\n",
+ "def f3(r):\n",
+ " return a[2]-r*a[3]\n",
+ "def f2(r,s):\n",
+ " return a[1]-r*a[2]+r**2*a[3]-s*a[3]\n",
+ "def f1(r,s):\n",
+ " return a[0]-s*a[2]+s*r*a[3]\n",
+ "A=matrix([[1,1],[2,-1]])\n",
+ "C=matrix([[0],[1]])\n",
+ "X=A.I*C\n",
+ "X1=[[ 0.33333333],[-0.33333333]]\n",
+ "dr=X1[0][0]\n",
+ "ds=X1[1][0]\n",
+ "r2=r1+dr\n",
+ "s2=s1+ds\n",
+ "#second pproximation\n",
+ "r1=r2\n",
+ "s1=s2\n",
+ "b11=f1(r2,s2)\n",
+ "b22=f2(r2,s2)\n",
+ "h=0.001\n",
+ "dr_b1=(f1(r1+h,s1)-f1(r1,s1))/h\n",
+ "ds_b1=(f1(r1,s1+h)-f1(r1,s1))/h\n",
+ "dr_b2=(f2(r1+h,s1)-f2(r1,s1))/h\n",
+ "ds_b2=(f2(r1,s1+h)-f2(r1,s1))/h\n",
+ "A=matrix([[dr_b1,ds_b1],[dr_b2,ds_b2]])\n",
+ "C=matrix([[-f1(r1,s1)],[-f2(r1,s2)]])\n",
+ "X=A.I*C\n",
+ "r2=r1+X[0][0]\n",
+ "s2=s1+X[1][0]\n",
+ "print \"roots correct to 3 decimal places are : %0.3f %0.3f\" %(r2,s2)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "roots correct to 3 decimal places are : 1.325 0.754\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.31:pg-62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#method of iteration\n",
+ "#example 2.31\n",
+ "#page 62\n",
+ "from __future__ import division\n",
+ "def f(x,y):\n",
+ " return (3*y*x**2+7)/10\n",
+ "def g(x,y):\n",
+ " return (y**2+4)/5\n",
+ "h=0.0001\n",
+ "x0=0.5\n",
+ "y0=0.5\n",
+ "f1_dx=(f(x0+h,y0)-f(x0,y0))/h\n",
+ "f1_dy=(f(x0,y0+h)-f(x0,y0))/h\n",
+ "g1_dx=(g(x0+h,y0)-g(x0,y0))/h\n",
+ "g1_dy=(g(x0+h,y0)-g(x0,y0))/h\n",
+ "if (f1_dx+f1_dy<1) and (g1_dx+g1_dy<1): \n",
+ " print \"coditions for convergence is satisfied\\n\\n\"\n",
+ "print \"X \\t Y\\t\\n\\n\"\n",
+ "for i in range(0,10):\n",
+ " X=(3*y0*x0**2+7)/10\n",
+ " Y=(y0**2+4)/5\n",
+ " print \"%f\\t %f\\t\\n\" %(X,Y)\n",
+ " x0=X\n",
+ " y0=Y\n",
+ "print \"\\n\\n CONVERGENCE AT (1 1) IS OBVIOUS\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "coditions for convergence is satisfied\n",
+ "\n",
+ "\n",
+ "X \t Y\t\n",
+ "\n",
+ "\n",
+ "0.737500\t 0.850000\t\n",
+ "\n",
+ "0.838696\t 0.944500\t\n",
+ "\n",
+ "0.899312\t 0.978416\t\n",
+ "\n",
+ "0.937391\t 0.991460\t\n",
+ "\n",
+ "0.961360\t 0.996598\t\n",
+ "\n",
+ "0.976320\t 0.998642\t\n",
+ "\n",
+ "0.985572\t 0.999457\t\n",
+ "\n",
+ "0.991247\t 0.999783\t\n",
+ "\n",
+ "0.994707\t 0.999913\t\n",
+ "\n",
+ "0.996807\t 0.999965\t\n",
+ "\n",
+ "\n",
+ "\n",
+ " CONVERGENCE AT (1 1) IS OBVIOUS\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.32:pg-65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#newton raphson method\n",
+ "#example 2.32\n",
+ "#page 65\n",
+ "def f(x,y):\n",
+ " return 3*y*x**2-10*x+7\n",
+ "def g(y):\n",
+ " return y**2-5*y+4\n",
+ "hh=0.0001\n",
+ "x0=0.5\n",
+ "y0=0.5 #initial values\n",
+ "f0=f(x0,y0)\n",
+ "g0=g(y0)\n",
+ "df_dx=(f(x0+hh,y0)-f(x0,y0))/hh\n",
+ "df_dy=(f(x0,y0+hh)-f(x0,y0))/hh\n",
+ "dg_dx=(g(y0)-g(y0))/hh\n",
+ "dg_dy=(g(y0+hh)-g(y0))/hh\n",
+ "d=[[df_dx,df_dy],[dg_dx,dg_dy]]\n",
+ "D1=det(d)\n",
+ "dd=[[-f0,df_dy],[-g0,dg_dy]]\n",
+ "h=det(dd)/D1\n",
+ "ddd=[[df_dx,-f0],[dg_dx,-g0]]\n",
+ "k=det(ddd)/D1;\n",
+ "x1=x0+h\n",
+ "y1=y0+k\n",
+ "f0=f(x1,y1)\n",
+ "g0=g(y1)\n",
+ "df_dx=(f(x1+hh,y1)-f(x1,y1))/hh\n",
+ "df_dy=(f(x1,y1+hh)-f(x1,y1))/hh\n",
+ "dg_dx=(g(y1)-g(y1))/hh\n",
+ "dg_dy=(g(y1+hh)-g(y1))/hh\n",
+ "dddd=[[df_dx,df_dy],[dg_dx,dg_dy]]\n",
+ "D2=det(dddd)\n",
+ "ddddd=[[-f0,df_dy],[-g0,dg_dy]]\n",
+ "h=det(ddddd)/D2\n",
+ "d6=[[df_dx,-f0],[dg_dx,-g0]]\n",
+ "k=det(d6)/D2\n",
+ "x2=x1+h\n",
+ "y2=y1+k\n",
+ "print \" the roots of the equation are x2=%f and y2=%f\" %(x2,y2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " the roots of the equation are x2=0.970803 and y2=0.998752\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.33:pg-66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#newton raphson method\n",
+ "#example 2.33\n",
+ "#page 66\n",
+ "import math\n",
+ "def f(x,y):\n",
+ " return x**2+y**2-1\n",
+ "def g(x,y):\n",
+ " return y-x**2\n",
+ "hh=0.0001\n",
+ "x0=0.7071\n",
+ "y0=0.7071 #initial values\n",
+ "f0=f(x0,y0)\n",
+ "g0=g(x0,y0)\n",
+ "df_dx=(f(x0+hh,y0)-f(x0,y0))/hh\n",
+ "df_dy=(f(x0,y0+hh)-f(x0,y0))/hh\n",
+ "dg_dx=(g(x0+hh,y0)-g(x0,y0))/hh\n",
+ "dg_dy=(g(x0,y0+hh)-g(x0,y0))/hh\n",
+ "D1=det([[df_dx,df_dy],[dg_dx,dg_dy]])\n",
+ "h=det([[-f0,df_dy],[-g0,dg_dy]])/D1\n",
+ "k=det([[df_dx,-f0],[dg_dx,-g0]])/D1\n",
+ "x1=x0+h\n",
+ "y1=y0+k\n",
+ "f0=f(x1,y1)\n",
+ "g0=g(x1,y1)\n",
+ "df_dx=(f(x1+hh,y1)-f(x1,y1))/hh\n",
+ "df_dy=(f(x1,y1+hh)-f(x1,y1))/hh\n",
+ "dg_dx=(g(x1+hh,y1)-g(x1,y1))/hh\n",
+ "dg_dy=(g(x1,y1+hh)-g(x1,y1))/hh\n",
+ "D2=det([[df_dx,df_dy],[dg_dx,dg_dy]])\n",
+ "h=det([[-f0,df_dy],[-g0,dg_dy]])/D2\n",
+ "k=det([[df_dx,-f0],[dg_dx,-g0]])/D2\n",
+ "x2=x1+h\n",
+ "y2=y1+k\n",
+ "print \"the roots of the equation are x2=%f and y2=%f \" %(x2,y2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the roots of the equation are x2=0.786184 and y2=0.618039 \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.34:pg-67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#newton raphson method\n",
+ "#example 2.34\n",
+ "#page 67\n",
+ "import math\n",
+ "def f(x,y):\n",
+ " return math.sin(x)-y+0.9793\n",
+ "def g(x,y):\n",
+ " return math.cos(y)-x+0.6703\n",
+ "hh=0.0001\n",
+ "x0=0.5\n",
+ "y0=1.5 #initial values\n",
+ "f0=f(x0,y0)\n",
+ "g0=g(x0,y0)\n",
+ "df_dx=(f(x0+hh,y0)-f(x0,y0))/hh\n",
+ "df_dy=(f(x0,y0+hh)-f(x0,y0))/hh\n",
+ "dg_dx=(g(x0+hh,y0)-g(x0,y0))/hh\n",
+ "dg_dy=(g(x0,y0+hh)-g(x0,y0))/hh\n",
+ "d1=[[df_dx,df_dy],[dg_dx,dg_dy]]\n",
+ "D1=det(d1)\n",
+ "d2=[[-f0,df_dy],[-g0,dg_dy]]\n",
+ "h=det(d2)/D1\n",
+ "d3=[[df_dx,-f0],[dg_dx,-g0]]\n",
+ "k=det(d3)/D1\n",
+ "x1=x0+h\n",
+ "y1=y0+k\n",
+ "f0=f(x1,y1)\n",
+ "g0=g(x1,y1)\n",
+ "df_dx=(f(x1+hh,y1)-f(x1,y1))/hh\n",
+ "df_dy=(f(x1,y1+hh)-f(x1,y1))/hh\n",
+ "dg_dx=(g(x1+hh,y1)-g(x1,y1))/hh\n",
+ "dg_dy=(g(x1,y1+hh)-g(x1,y1))/hh\n",
+ "d4=[[df_dx,df_dy],[dg_dx,dg_dy]]\n",
+ "D2=det(d4)\n",
+ "h=det([[-f0,df_dy],[-g0,dg_dy]])/D2\n",
+ "k=det([[df_dx,-f0],[dg_dx,-g0]])/D2\n",
+ "x2=x1+h\n",
+ "y2=y1+k\n",
+ "print \"the roots of the equation are x2=%0.4f and y2=%0.4f\" %(x2,y2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the roots of the equation are x2=0.6537 and y2=1.5874\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter3_1.ipynb b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter3_1.ipynb
new file mode 100644
index 00000000..77d8f79f
--- /dev/null
+++ b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter3_1.ipynb
@@ -0,0 +1,1113 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:58def12f7e424e92e928d020c21b40714eff26275c7ce87aa5600004fbc92a49"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter03:Interpolation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.4:pg-86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3.4\n",
+ "#interpolation\n",
+ "#page 86\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "x=[1, 3, 5, 7]\n",
+ "y=[24, 120, 336, 720]\n",
+ "d1=[0,0,0]\n",
+ "d2=[0,0,0]\n",
+ "d3=[0,0,0]\n",
+ "h=2 #interval between values of x\n",
+ "c=0\n",
+ "for i in range(0,3):\n",
+ " d1[c]=y[i+1]-y[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,2):\n",
+ " d2[c]=d1[i+1]-d1[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,1):\n",
+ " d3[c]=d2[i+1]-d2[i]\n",
+ " c=c+1\n",
+ "d=[0,d1[0],d2[0],d3[0]]\n",
+ "x0=8 #value at 8\n",
+ "pp=1\n",
+ "y_x=y[0]\n",
+ "p=(x0-1)/2\n",
+ "for i in range(1,4):\n",
+ " pp=1\n",
+ " for j in range(0,i):\n",
+ " pp=pp*(p-(j)) \n",
+ " y_x=y_x+(pp*d[i])/math.factorial(i)\n",
+ "print \"value of function at %f is :%f\" %(x0,y_x)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of function at 8.000000 is :990.000000\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.6:pg-87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3.6\n",
+ "#interpolation\n",
+ "#page 87\n",
+ "x=[15, 20, 25, 30, 35, 40]\n",
+ "y=[0.2588190, 0.3420201, 0.4226183, 0.5, 0.5735764, 0.6427876]\n",
+ "d1=[0,0,0,0,0]\n",
+ "d2=[0,0,0,0]\n",
+ "d3=[0,0,0]\n",
+ "d4=[0,0]\n",
+ "d5=[0]\n",
+ "h=5 #interval between values of x\n",
+ "c=0\n",
+ "for i in range(0,5):\n",
+ " d1[c]=y[i+1]-y[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,4):\n",
+ " d2[c]=d1[i+1]-d1[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,3):\n",
+ " d3[c]=d2[i+1]-d2[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,2):\n",
+ " d4[c]=d3[i+1]-d3[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,1):\n",
+ " d5[c]=d4[i+1]-d4[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "d=[0,d1[0], d2[0], d3[0], d4[0], d5[0]]\n",
+ "x0=38 #value at 38 degree\n",
+ "pp=1\n",
+ "y_x=y[0]\n",
+ "p=(x0-x[0])/h\n",
+ "for i in range(1,6):\n",
+ " pp=1\n",
+ " for j in range(0,i):\n",
+ " pp=pp*(p-(j)) \n",
+ " y_x=y_x+((pp*d[i])/math.factorial(i));\n",
+ "print \"value of function at %i is :%f\" %(x0,y_x)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of function at 38 is :0.615661\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.7:pg-89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3.7\n",
+ "#interpolation\n",
+ "#page 89\n",
+ "x=[0, 1, 2, 4]\n",
+ "y=[1, 3, 9, 81]\n",
+ "#equation is y(5)-4*y(4)+6*y(2)-4*y(2)+y(1)\n",
+ "y3=(y[3]+6*y[2]-4*y[1]+y[0])/4\n",
+ "print \"the value of missing term of table is :%d\" %(y3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the value of missing term of table is :31\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.8:pg-89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3.8\n",
+ "#interpolation\n",
+ "#page 89\n",
+ "import math\n",
+ "x=[0.10, 0.15, 0.20, 0.25, 0.30]\n",
+ "y=[0.1003, 0.1511, 0.2027, 0.2553, 0.3093]\n",
+ "d1=[0,0,0,0,0]\n",
+ "d2=[0,0,0,0,0]\n",
+ "d3=[0,0,0,0,0]\n",
+ "d4=[0,0,0,0,0]\n",
+ "h=0.05 #interval between values of x\n",
+ "c=0\n",
+ "for i in range(0,4):\n",
+ " d1[c]=y[i+1]-y[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,3):\n",
+ " d2[c]=d1[i+1]-d1[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,2):\n",
+ " d3[c]=d2[i+1]-d2[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,4):\n",
+ " d4[c]=d3[i+1]-d3[i]\n",
+ " c=c+1\n",
+ "d=[0,d1[0], d2[0], d3[0], d4[0]]\n",
+ "x0=0.12 #value at 0.12;\n",
+ "pp=1\n",
+ "y_x=y[0]\n",
+ "p=(x0-x[0])/h\n",
+ "for i in range(1,5):\n",
+ " pp=1;\n",
+ " for j in range(0,i):\n",
+ " pp=pp*(p-(j)) \n",
+ " y_x=y_x+(pp*d[i])/math.factorial(i)\n",
+ "print \"value of function at %f is :%0.4g\\n \\n\" %(x0,y_x)\n",
+ "x0=0.26 #value at 0.26;\n",
+ "pp=1\n",
+ "y_x=y[0]\n",
+ "p=(x0-x[0])/h\n",
+ "for i in range(1,5):\n",
+ " pp=1\n",
+ " for j in range(0,i):\n",
+ " pp=pp*(p-(j)) \n",
+ " y_x=y_x+(pp*d[i])/math.factorial(i);\n",
+ "print \"value of function at %f is :%0.4g\\n \\n\" %(x0,y_x)\n",
+ "x0=0.40 #value at 0.40;\n",
+ "pp=1\n",
+ "y_x=y[0]\n",
+ "p=(x0-x[0])/h\n",
+ "for i in range(1,5):\n",
+ " pp=1\n",
+ " for j in range(0,i):\n",
+ " pp=pp*(p-(j)) \n",
+ " y_x=y_x+(pp*d[i])/math.factorial(i)\n",
+ "print \"value of function at %f is :%0.4g\\n \\n\" %(x0,y_x)\n",
+ "x0=0.50 #value at 0.50;\n",
+ "pp=1\n",
+ "y_x=y[0]\n",
+ "p=(x0-x[0])/h\n",
+ "for i in range(1,5):\n",
+ " pp=1\n",
+ " for j in range(0,i):\n",
+ " pp=pp*(p-(j)) \n",
+ " y_x=y_x+(pp*d[i])/math.factorial(i)\n",
+ "print \"value of function at %f is :%0.5g\\n \\n\" %(x0,y_x)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of function at 0.120000 is :0.1205\n",
+ " \n",
+ "\n",
+ "value of function at 0.260000 is :0.266\n",
+ " \n",
+ "\n",
+ "value of function at 0.400000 is :0.4241\n",
+ " \n",
+ "\n",
+ "value of function at 0.500000 is :0.5543\n",
+ " \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.9:pg-93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3.9\n",
+ "#Gauss' forward formula\n",
+ "#page 93\n",
+ "x=[1.0, 1.05, 1.10, 1.15, 1.20, 1.25, 1.30];\n",
+ "y=[2.7183, 2.8577, 3.0042, 3.1582, 3.3201, 3.4903, 3.66693]\n",
+ "d1=[0,0,0,0,0,0]\n",
+ "d2=[0,0,0,0,0]\n",
+ "d3=[0,0,0,0]\n",
+ "d4=[0,0,0]\n",
+ "d5=[0,0]\n",
+ "d6=[0]\n",
+ "h=0.05 #interval between values of x\n",
+ "c=0\n",
+ "for i in range(0,6):\n",
+ " d1[c]=y[i+1]-y[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,5):\n",
+ " d2[c]=d1[i+1]-d1[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,4):\n",
+ " d3[c]=d2[i+1]-d2[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,3):\n",
+ " d4[c]=d3[i+1]-d3[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,2):\n",
+ " d5[c]=d4[i+1]-d4[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,1):\n",
+ " d6[c]=d5[i+1]-d5[i]\n",
+ " c=c+1\n",
+ "d=[0,d1[3], d2[2], d3[2], d4[1], d5[0], d6[0]]\n",
+ "x0=1.17 #value at 1.17;\n",
+ "pp=1\n",
+ "y_x=y[3]\n",
+ "p=(x0-x[3])/h\n",
+ "for i in range(1,6):\n",
+ " pp=1;\n",
+ " for j in range(0,i):\n",
+ " pp=pp*(p-(j)) \n",
+ " y_x=y_x+(pp*d[i])/math.factorial(i)\n",
+ "print \"value of function at %f is :%0.4g\\n \\n\" %(x0,y_x)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of function at 1.170000 is :3.222\n",
+ " \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.10:pg-97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#practical interpolation\n",
+ "#example 3.10\n",
+ "#page 97\n",
+ "import math\n",
+ "x=[0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67]\n",
+ "y=[1.840431, 1.858928,1.877610, 1.896481, 1.915541, 1.934792, 1.954237]\n",
+ "d1=[0,0,0,0,0,0]\n",
+ "d2=[0,0,0,0,0]\n",
+ "d3=[0,0,0,0]\n",
+ "d4=[0,0,0]\n",
+ "h=0.01 #interval between values of x\n",
+ "c=0\n",
+ "for i in range(0,6):\n",
+ " d1[c]=y[i+1]-y[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,5):\n",
+ " d2[c]=d1[i+1]-d1[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,4):\n",
+ " d3[c]=d2[i+1]-d2[i];\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,3):\n",
+ " d4[c]=d3[i+1]-d3[i];\n",
+ " c=c+1\n",
+ "d=[d1[0], d2[0], d3[0], d4[0]]\n",
+ "x0=0.644\n",
+ "p=(x0-x[3])/h;\n",
+ "y_x=y[3]\n",
+ "y_x=y_x+p*(d1[2]+d1[3])/2+p**2*(d2[1])/2 #stirling formula\n",
+ "print \"the value at %f by stirling formula is : %f\\n\\n\" %(x0,y_x)\n",
+ "y_x=y[3]\n",
+ "y_x=y_x+p*d1[3]+p*(p-1)*(d2[2]+d2[3])/2\n",
+ "print \" the value at %f by bessels formula is : %f\\n\\n\" %(x0,y_x)\n",
+ "y_x=y[3]\n",
+ "q=1-p\n",
+ "y_x=q*y[3]+q*(q**2-1)*d2[2]/2+p*y[4]+p*(q**2-1)*d2[4]/2\n",
+ "print \"the value at %f by everrets formula is : %f\\n\\n\" %(x0,y_x)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the value at 0.644000 by stirling formula is : 1.904082\n",
+ "\n",
+ "\n",
+ " the value at 0.644000 by bessels formula is : 1.904059\n",
+ "\n",
+ "\n",
+ "the value at 0.644000 by everrets formula is : 1.904044\n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.11:pg-99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#practical interpolation\n",
+ "#example 3.11\n",
+ "#page 99\n",
+ "x=[0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67]\n",
+ "y=[1.840431, 1.858928, 1.877610, 1.896481, 1.915541, 1.934792, 1.954237]\n",
+ "d1=[0,0,0,0,0,0]\n",
+ "d2=[0,0,0,0,0]\n",
+ "d3=[0,0,0,0]\n",
+ "d4=[0,0,0]\n",
+ "h=0.01 #interval between values of x\n",
+ "c=0\n",
+ "for i in range(0,6):\n",
+ " d1[c]=y[i+1]-y[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,5):\n",
+ " d2[c]=d1[i+1]-d1[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,4):\n",
+ " d3[c]=d2[i+1]-d2[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,3):\n",
+ " d4[c]=d3[i+1]-d3[i]\n",
+ " c=c+1\n",
+ "d=[d1[0], d2[0], d3[0], d4[0]]\n",
+ "x0=0.638\n",
+ "p=(x0-x[3])/h\n",
+ "y_x=y[3]\n",
+ "y_x=y_x+p*(d1[2]+d1[3])/2+p**2*(d2[1])/2 #stirling formula\n",
+ "print \"value at %f by stirling formula is : %f\\n\\n\" %(x0,y_x)\n",
+ "y_x=y[2]\n",
+ "p=(x0-x[2])/h\n",
+ "y_x=y_x+p*d1[2]+p*(p-1)*(d2[1])/2\n",
+ "print \"the value at %f by bessels formula is : %f\\n\\n\" %(x0,y_x)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value at 0.638000 by stirling formula is : 1.892692\n",
+ "\n",
+ "\n",
+ "the value at 0.638000 by bessels formula is : 1.892692\n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.12:pg-99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#practical interpolation\n",
+ "#example 3.12\n",
+ "#page 99\n",
+ "x=[1.72, 1.73, 1.74, 1.75, 1.76, 1.77, 1.78]\n",
+ "y=[0.1790661479, 0.1772844100, 0.1755204006, 0.1737739435, 0.1720448638, 0.1703329888, 0.1686381473]\n",
+ "d1=[0,0,0,0,0,0]\n",
+ "d2=[0,0,0,0,0]\n",
+ "d3=[0,0,0,0]\n",
+ "d4=[0,0,0]\n",
+ "h=0.01 #interval between values of x\n",
+ "c=0\n",
+ "for i in range(0,6):\n",
+ " d1[c]=y[i+1]-y[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,5):\n",
+ " d2[c]=d1[i+1]-d1[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,4):\n",
+ " d3[c]=d2[i+1]-d2[i]\n",
+ " c=c+1\n",
+ "c=0\n",
+ "for i in range(0,3):\n",
+ " d4[c]=d3[i+1]-d3[i]\n",
+ " c=c+1\n",
+ "x0=1.7475\n",
+ "y_x=y[2]\n",
+ "p=(x0-x[2])/h\n",
+ "y_x=y_x+p*d1[2]+p*(p-1)*((d2[1]+d2[2])/2)/2\n",
+ "print \"the value at %f by bessels formula is : %0.10f\\n\\n\" %(x0,y_x)\n",
+ "y_x=y[3]\n",
+ "q=1-p\n",
+ "y_x=q*y[2]+q*(q**2-1)*d2[1]/6+p*y[3]+p*(p**2-1)*d2[1]/6\n",
+ "print \"the value at %f by everrets formula is : %0.10f\\n\\n\" %(x0,y_x)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the value at 1.747500 by bessels formula is : 0.1742089204\n",
+ "\n",
+ "\n",
+ "the value at 1.747500 by everrets formula is : 0.1742089122\n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.13:pg-104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3.13\n",
+ "#lagrange's interpolation formula\n",
+ "#page 104\n",
+ "x=[300, 304, 305, 307]\n",
+ "y=[2.4771, 2.4829, 2.4843, 2.4871]\n",
+ "x0=301\n",
+ "log_301=(-3*-4*-6*2.4771)/(-4*-5*-7)+(-4*-6*2.4829)/(4*-1*-3)+(-3*-6*2.4843)/(5*-2)+(-3*-4*2.4871)/(7*3*2)\n",
+ "print \"valie of log x at 301 is =%f\" %(log_301)\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "valie of log x at 301 is =2.478597\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.14:pg-105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3.14\n",
+ "#lagrange's interpolation formula\n",
+ "#page 105\n",
+ "y=[4, 12, 19]\n",
+ "x=[1, 3, 4];\n",
+ "y_x=7\n",
+ "Y_X=(-5*-12)/(-8*-15)+(3*3*-12)/(8*-7)+(3*-5*4)/(15*7)\n",
+ "print \"values is %f\" %(Y_X)\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "values is 1.857143\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.15:pg-105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3.15\n",
+ "#lagrange's interpolation formula\n",
+ "#page 105\n",
+ "x=[2, 2.5, 3.0]\n",
+ "y=[0.69315, 0.91629, 1.09861]\n",
+ "def l0(x):\n",
+ " return (x-2.5)*(x-3.0)/(-0.5)*(-1.0)\n",
+ "def l1(x):\n",
+ " return ((x-2.0)*(x-3.0))/((0.5)*(-0.5))\n",
+ "def l2(x):\n",
+ " return ((x-2.0)*(x-2.5))/((1.0)*(0.5))\n",
+ "f_x=l0(2.7)*y[0]+l1(2.7)*y[1]+l2(2.7)*y[2];\n",
+ "print \"the calculated value is %f:\" %(f_x)\n",
+ "print \"\\n\\n the error occured in the value is %0.9f\" %(abs(f_x-log(2.7)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the calculated value is 0.994116:\n",
+ "\n",
+ "\n",
+ " the error occured in the value is 0.000864627\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.16:pg-106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3.16\n",
+ "#lagrange's interpolation formula\n",
+ "#page 106\n",
+ "import math\n",
+ "x=[0, math.pi/4,math.pi/2]\n",
+ "y=[0, 0.70711, 1.0];\n",
+ "x0=math.pi/6\n",
+ "sin_x0=0\n",
+ "for i in range(0,3):\n",
+ " p=y[i]\n",
+ " for j in range(0,3):\n",
+ " if j!=i:\n",
+ " p=p*((x0-x[j])/( x[i]-x[j]))\n",
+ " sin_x0=sin_x0+p\n",
+ "print \"sin_x0=%f\" %(sin_x0)\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "sin_x0=0.517431\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.18:pg-107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#error in lagrange's interpolation formula\n",
+ "#example 3.18\n",
+ "#page 107\n",
+ "import math\n",
+ "x=[2, 2.5, 3.0]\n",
+ "y=[0.69315, 0.91629, 1.09861]\n",
+ "def l0(x):\n",
+ " return (x-2.5)*(x-3.0)/(-0.5)*(-1.0)\n",
+ "def l1(x):\n",
+ " return ((x-2.0)*(x-3.0))/((0.5)*(-0.5))\n",
+ "def l2(x):\n",
+ " return ((x-2.0)*(x-2.5))/((1.0)*(0.5))\n",
+ "f_x=l0(2.7)*y[0]+l1(2.7)*y[1]+l2(2.7)*y[2]\n",
+ "print \"the calculated value is %f:\" %(f_x)\n",
+ "err=math.fabs(f_x-math.log10(2.7))\n",
+ "def R_n(x):\n",
+ " return (((x-2)*(x-2.5)*(x-3))/6)\n",
+ "est_err=abs(R_n(2.7)*(2/8))\n",
+ "if est_err<err:\n",
+ " print \"\\n\\n the error agrees with the actual error\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the calculated value is 0.994116:\n",
+ "\n",
+ "\n",
+ " the error agrees with the actual error\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.19:pg-107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#error in lagrenge's interpolation\n",
+ "#example 3.19\n",
+ "#page 107\n",
+ "import math\n",
+ "x=[0, math.pi/4 ,math.pi/2]\n",
+ "y=[0, 0.70711, 1.0]\n",
+ "def l0(x):\n",
+ " return ((x-0)*(x-math.pi/2))/((math.pi/4)*(-1*math.pi/4))\n",
+ "def l1(x):\n",
+ " return ((x-0)*(x-math.pi/4))/((math.pi/2)*(math.pi/4))\n",
+ "f_x=l0(math.pi/6)*y[1]+l1(math.pi/6)*y[2]\n",
+ "err=abs(f_x-math.sin(math.pi/6))\n",
+ "def f(x):\n",
+ " return ((x-0)*(x-math.pi/4)*(x-math.pi/2))/6\n",
+ "if abs(f(math.pi/6))>err:\n",
+ " print \"\\n\\n the error agrees with the actual error\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ " the error agrees with the actual error\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.21:pg-110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#hermite's interpolation formula\n",
+ "#exammple 3.21\n",
+ "#page 110\n",
+ "from __future__ import division\n",
+ "import math\n",
+ "x=[2.0, 2.5, 3.0]\n",
+ "y=[0.69315, 0.91629, 1.09861]\n",
+ "y1=[0,0,0]\n",
+ "def f(x):\n",
+ " return math.log(x)\n",
+ "h=0.0001\n",
+ "for i in range(0,3):\n",
+ " y1[i]=(f(x[i]+h)-f(x[i]))/h\n",
+ "def l0(x):\n",
+ " return (x-2.5)*(x-3.0)/(-0.5)*(-1.0)\n",
+ "def l1(x):\n",
+ " return ((x-2.0)*(x-3.0))/((0.5)*(-0.5))\n",
+ "def l2(x):\n",
+ " return ((x-2.0)*(x-2.5))/((1.0)*(0.5))\n",
+ "dl0=(l0(x[0]+h)-l0(x[0]))/h\n",
+ "dl1=(l1(x[1]+h)-l1(x[1]))/h\n",
+ "dl2=(l2(x[2]+h)-l2(x[2]))/h\n",
+ "x0=2.7\n",
+ "u0=(1-2*(x0-x[0])*dl0)*(l0(x0))**2\n",
+ "u1=(1-2*(x0-x[1])*dl1)*(l1(x0))**2\n",
+ "u2=(1-2*(x0-x[2])*dl2)*(l2(x0))**2\n",
+ "v0=(x0-x[0])*l0(x0)**2\n",
+ "v1=(x0-x[1])*l1(x0)**2\n",
+ "v2=(x0-x[2])*l2(x0)**2\n",
+ "H=u0*y[0]+u1*y[1]+u2*y[2]+v0*y1[0]+v1*y1[1]+v2*y1[2]\n",
+ "print \"the approximate value of ln(%0.2f) is %f:\" %(x0,H)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the approximate value of ln(2.70) is 0.993362:\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.22:pg-114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#newton's general interpolation formula\n",
+ "#example 3.22\n",
+ "#page 114\n",
+ "x=[300, 304, 305, 307]\n",
+ "y=[2.4771, 2.4829, 2.4843, 2.4871]\n",
+ "d1=[0,0,0]\n",
+ "d2=[0,0]\n",
+ "for i in range(0,3):\n",
+ " d1[i]=(y[i+1]-y[i])/(x[i+1]-x[i])\n",
+ "for i in range(0,2):\n",
+ " d2[i]=(d1[i+1]-d1[i])/(x[i+2]-x[i])\n",
+ "x0=301\n",
+ "log301=y[0]+(x0-x[0])*d1[0]+(x0-x[1])*d2[0]\n",
+ "print \"valure of log(%d) is :%0.4f\" %(x0,log301)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "valure of log(301) is :2.4786\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.23:pg-114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3.23\n",
+ "#newton's divided formula\n",
+ "#page 114\n",
+ "x=[-1, 0, 3, 6, 7]\n",
+ "y=[3, -6, 39, 822, 1611]\n",
+ "for in range(0,4):\n",
+ " d1[i]=(y[i+1]-y[i])/(x[i+1]-x[i])\n",
+ "for in range(0,3):\n",
+ " d2[i]=(d1[i+1]-d1[i])/(x[i+2]-x[i])\n",
+ "for in range(0,2):\n",
+ " d3[i]=(d2[i+1]-d2[i])/(x[i+3]-x[i])\n",
+ "for iin range(0,1):\n",
+ " d4[i]=(d3[i+1]-d3[i])/(x[i+4]-x[i])\n",
+ "X=poly(0,'X')\n",
+ "f_x=y[0]+(X-x[0])*(d1[0])+(X-x[1])*(X-x[0])*d2[0]+(X-x[0])*(X-x[1])*(X-x[2])*d3[0]+(X-x[0])*(X-x[1])*(X-x[2])*(X-x[3])*d4[0]\n",
+ "disp(f_x,'the polynomial equation is =')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.24:pg-116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#interpolation by iteration\n",
+ "#example 3.24\n",
+ "#page 116\n",
+ "x=[300, 304, 305, 307]\n",
+ "y=[2.4771, 2.4829, 2.4843, 2.4871]\n",
+ "x0=301\n",
+ "d1=[0,0,0]\n",
+ "d2=[0,0]\n",
+ "d3=[0]\n",
+ "for i in range(0,3):\n",
+ " a=y[i]\n",
+ " b=x[i]-x0\n",
+ " c=y[i+1]\n",
+ " e=x[i+1]-x0\n",
+ " d=matrix([[a,b],[c,e]])\n",
+ " d11=det(d)\n",
+ " d1[i]=d11/(x[i+1]-x[i])\n",
+ "for i in range(0,2):\n",
+ " a=d1[i]\n",
+ " b=x[i+1]-x0\n",
+ " c=d1[i+1]\n",
+ " e=x[i+2]-x0\n",
+ " d=matrix([[a,b],[c,e]])\n",
+ " d22=det(d)\n",
+ " f=(x[i+2]-x[i+1])\n",
+ " d2[i]=d22/f\n",
+ "for i in range(0,1):\n",
+ " a=d2[i]\n",
+ " b=x[i+2]-x0\n",
+ " c=d2[i+1]\n",
+ " e=x[i+3]-x0\n",
+ " d=matrix([[a,b],[c,e]])\n",
+ " d33=det(d)\n",
+ " d3[i]=d33/(x[i+3]-x[i+2])\n",
+ "print \"the value of log(%d) is : %f\" %(x0,d3[0])\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the value of log(301) is : 2.476900\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.25:pg-118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#inverse intrpolation\n",
+ "#example 3.25\n",
+ "#page 118\n",
+ "from __future__ import division\n",
+ "x=[2, 3, 4, 5]\n",
+ "y=[8, 27, 64, 125]\n",
+ "d1=[0,0,0]\n",
+ "d2=[0,0]\n",
+ "d3=[0]\n",
+ "for i in range(0,3):\n",
+ " d1[i]=y[i+1]-y[i]\n",
+ "for i in range(0,2):\n",
+ " d2[i]=d1[i+1]-d1[i]\n",
+ "for i in range(0,1):\n",
+ " d3[i]=d2[i+1]-d2[i]\n",
+ "yu=10 #square rooot of 10\n",
+ "y0=y[0]\n",
+ "d=[d1[0], d2[0] ,d3[0]]\n",
+ "u1=(yu-y0)/d1[0]\n",
+ "u2=((yu-y0-u1*(u1-1)*d2[0]/2)/d1[0])\n",
+ "u3=(yu-y0-u2*(u2-1)*d2[0]/2-u2*(u2-1)*(u2-2)*d3[0]/6)/d1[0]\n",
+ "u4=(yu-y0-u3*(u3-1)*d2[0]/2-u3*(u3-1)*(u3-2)*d3[0]/6)/d1[0]\n",
+ "u5=(yu-y0-u4*(u4-1)*d2[0]/2-u4*(u4-1)*(u4-2)*d3[0]/6)/d1[0]\n",
+ "print \"%f \\n %f \\n %f \\n %f \\n %f \\n \" %(u1,u2,u3,u4,u5)\n",
+ "print \"the approximate square root of %d is: %0.3f\" %(yu,x[0]+u5)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0.105263 \n",
+ " 0.149876 \n",
+ " 0.153210 \n",
+ " 0.154107 \n",
+ " 0.154347 \n",
+ " \n",
+ "the approximate square root of 10 is: 2.154\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.26:pg-119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#double interpolation \n",
+ "#example 3.26\n",
+ "#page 119\n",
+ "y=[0, 1, 2, 3, 4]\n",
+ "z=[0,0,0,0,0]\n",
+ "x=[[0, 1, 4, 9, 16],[2, 3, 6, 11, 18],[6, 7, 10, 15, 22],[12, 13, 16, 21, 28],[18, 19, 22, 27, 34]]\n",
+ "print \"X=\"\n",
+ "print x\n",
+ "#for x=2.5\n",
+ "for i in range(0,5):\n",
+ " z[i]=(x[i][2]+x[i][3])/2\n",
+ "#y=1.5\n",
+ "Z=(z[1]+z[2])/2\n",
+ "print \"the interpolated value when x=2.5 and y=1.5 is : %f\" %(Z)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "X=\n",
+ "[[0, 1, 4, 9, 16], [2, 3, 6, 11, 18], [6, 7, 10, 15, 22], [12, 13, 16, 21, 28], [18, 19, 22, 27, 34]]\n",
+ "the interpolated value when x=2.5 and y=1.5 is : 10.500000\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter4_1.ipynb b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter4_1.ipynb
new file mode 100644
index 00000000..1a121cf1
--- /dev/null
+++ b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter4_1.ipynb
@@ -0,0 +1,887 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:5b7329fa99f2b3da2c67cbfd6535b640e289f58689d607f511e38628d0454fa3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter04:Least Squares and Fourier Transforms"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1:pg-128"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4.1\n",
+ "#least square curve fitting procedure\n",
+ "#page 128\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "x=[0,1, 2, 3, 4, 5]\n",
+ "x_2=[0,0,0,0,0,0]\n",
+ "x_y=[0,0,0,0,0,0]\n",
+ "y=[0,0.6, 2.4, 3.5, 4.8, 5.7]\n",
+ "for i in range(1,5):\n",
+ " x_2[i]=x[i]**2\n",
+ " x_y[i]=x[i]*y[i]\n",
+ "S_x=0\n",
+ "S_y=0\n",
+ "S_x2=0 \n",
+ "S_xy=0\n",
+ "S1=0\n",
+ "S2=0\n",
+ "for i in range(1,5):\n",
+ " S_x=S_x+x[i]\n",
+ " S_y=S_y+y[i]\n",
+ " S_x2=S_x2+x_2[i]\n",
+ " S_xy=S_xy+x_y[i]\n",
+ "a1=(5*S_xy-S_x*S_y)/(5*S_x2-S_x**2)\n",
+ "a0=S_y/5-a1*S_x/5\n",
+ "print \"x\\t y\\t x^2\\t x*y\\t (y-avg(S_y)) \\t (y-a0-a1x)^2\\n\\n\"\n",
+ "for i in range (1,6):\n",
+ " print \"%d\\t %0.2f\\t %d\\t %0.2f\\t %0.2f\\t %.4f\\t\\n\" %(x[i],y[i],x_2[i],x_y[i],(y[i]-S_y/5)**2,(y[i]-a0-a1*x[i])**2)\n",
+ " S1=S1+(y[i]-S_y/5)**2\n",
+ " S2=S2+(y[i]-a0-a1*x[i])**2\n",
+ "print \"---------------------------------------------------------------------------------------------------------------------------------------------\\n\\n\"\n",
+ "print \"%d\\t %0.2f\\t %d\\t %0.2f\\t %0.2f\\t %0.4f\\t\\n\\n\" %(S_x,S_y,S_x2,S_xy,S1,S2)\n",
+ "cc=math.sqrt((S1-S2)/S1) #correlation coefficient\n",
+ "print \"the correlation coefficient is:%0.4f\" %(cc)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x\t y\t x^2\t x*y\t (y-avg(S_y)) \t (y-a0-a1x)^2\n",
+ "\n",
+ "\n",
+ "1\t 0.60\t 1\t 0.60\t 2.76\t 0.1681\t\n",
+ "\n",
+ "2\t 2.40\t 4\t 4.80\t 0.02\t 0.0196\t\n",
+ "\n",
+ "3\t 3.50\t 9\t 10.50\t 1.54\t 0.0001\t\n",
+ "\n",
+ "4\t 4.80\t 16\t 19.20\t 6.45\t 0.0016\t\n",
+ "\n",
+ "5\t 5.70\t 0\t 0.00\t 11.83\t 0.0961\t\n",
+ "\n",
+ "---------------------------------------------------------------------------------------------------------------------------------------------\n",
+ "\n",
+ "\n",
+ "10\t 11.30\t 30\t 35.10\t 22.60\t 0.2855\t\n",
+ "\n",
+ "\n",
+ "the correlation coefficient is:0.9937\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.2:pg-129"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4.2\n",
+ "#least square curve fitting procedure\n",
+ "#page 129\n",
+ "from numpy import matrix\n",
+ "x=[0, 2, 5, 7]\n",
+ "y=[-1, 5, 12, 20]\n",
+ "x_2=[0,0,0,0]\n",
+ "xy=[0,0,0,0,]\n",
+ "for i in range (0,4):\n",
+ " x_2[i]=x[i]**2\n",
+ " xy[i]=x[i]*y[i]\n",
+ "print \"x\\t y\\t x^2\\t xy\\t \\n\\n\"\n",
+ "S_x=0 \n",
+ "S_y=0\n",
+ "S_x2=0\n",
+ "S_xy=0\n",
+ "for i in range(0,4):\n",
+ " print \"%d\\t %d\\t %d\\t %d\\t\\n\" %(x[i],y[i],x_2[i],xy[i])\n",
+ " S_x=S_x+x[i]\n",
+ " S_y=S_y+y[i]\n",
+ " S_x2=S_x2+x_2[i]\n",
+ " S_xy=S_xy+xy[i]\n",
+ "print \"%d\\t %d\\t %d\\t %d\\t\\n\" %(S_x,S_y,S_x2,S_xy)\n",
+ "A=matrix([[4,S_x],[S_x,S_x2]])\n",
+ "B=matrix([[S_y],[S_xy]])\n",
+ "C=A.I*B\n",
+ "print \"Best straight line fit Y=%.4f+x(%.4f)\" %(C[0][0],C[1][0])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x\t y\t x^2\t xy\t \n",
+ "\n",
+ "\n",
+ "0\t -1\t 0\t 0\t\n",
+ "\n",
+ "2\t 5\t 4\t 10\t\n",
+ "\n",
+ "5\t 12\t 25\t 60\t\n",
+ "\n",
+ "7\t 20\t 49\t 140\t\n",
+ "\n",
+ "14\t 36\t 78\t 210\t\n",
+ "\n",
+ "Best straight line fit Y=-1.1379+x(2.8966)\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.3:pg-130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4.3\n",
+ "#least square curve fitting procedure\n",
+ "#page 130\n",
+ "from numpy import matrix\n",
+ "x=[0, 1, 2, 4, 6]\n",
+ "y=[0, 1, 3, 2, 8]\n",
+ "z=[2, 4, 3, 16, 8]\n",
+ "x2=[0,0,0,0,0]\n",
+ "y2=[0,0,0,0,0]\n",
+ "z2=[0,0,0,0,0]\n",
+ "xy=[0,0,0,0,0]\n",
+ "yz=[0,0,0,0,0]\n",
+ "zx=[0,0,0,0,0]\n",
+ "for i in range(0,5):\n",
+ " x2[i]=x[i]**2\n",
+ " y2[i]=y[i]**2\n",
+ " z2[i]=z[i]**2\n",
+ " xy[i]=x[i]*y[i]\n",
+ " zx[i]=z[i]*x[i]\n",
+ " yz[i]=y[i]*z[i]\n",
+ "S_x=0\n",
+ "S_y=0\n",
+ "S_z=0\n",
+ "S_x2=0\n",
+ "S_y2=0\n",
+ "S_z2=0\n",
+ "S_xy=0\n",
+ "S_zx=0\n",
+ "S_yz=0\n",
+ "for i in range(0,5):\n",
+ " S_x=S_x+x[i]\n",
+ " S_y=S_y+y[i]\n",
+ " S_z=S_z+z[i]\n",
+ " S_x2=S_x2+x2[i]\n",
+ " S_y2=S_y2+y2[i]\n",
+ " S_z2=S_z2+z2[i]\n",
+ " S_xy=S_xy+xy[i]\n",
+ " S_zx=S_zx+zx[i]\n",
+ " S_yz=S_yz+yz[i]\n",
+ "print \"x\\t y\\t z\\t x^2\\t xy\\t zx\\t y^2\\t yz\\n\\n\"\n",
+ "for i in range(0,5):\n",
+ " print \"%d\\t %d\\t %d\\t %d\\t %d\\t %d\\t %d\\t %d\\n\" %(x[i],y[i],z[i],x2[i],xy[i],zx[i],y2[i],yz[i])\n",
+ "print \"-------------------------------- --------------------------------------------------------------------------------------------------------------------------------------\\n\\n\"\n",
+ "print \"%d\\t %d\\t %d\\t %d\\t %d\\t %d\\t %d\\t %d\\n\\n\" %(S_x,S_y,S_z,S_x2,S_xy,S_zx,S_y2,S_yz)\n",
+ "A=matrix([[5,13,14],[13,57,63],[14,63,78]])\n",
+ "B=matrix([[33],[122],[109]])\n",
+ "C=A.I*B\n",
+ "print \"solution of above equation is:a=%d b=%d c=%d\" %(C[0][0],C[1][0],C[2][0])\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x\t y\t z\t x^2\t xy\t zx\t y^2\t yz\n",
+ "\n",
+ "\n",
+ "0\t 0\t 2\t 0\t 0\t 0\t 0\t 0\n",
+ "\n",
+ "1\t 1\t 4\t 1\t 1\t 4\t 1\t 4\n",
+ "\n",
+ "2\t 3\t 3\t 4\t 6\t 6\t 9\t 9\n",
+ "\n",
+ "4\t 2\t 16\t 16\t 8\t 64\t 4\t 32\n",
+ "\n",
+ "6\t 8\t 8\t 36\t 48\t 48\t 64\t 64\n",
+ "\n",
+ "-------------------------------- --------------------------------------------------------------------------------------------------------------------------------------\n",
+ "\n",
+ "\n",
+ "13\t 14\t 33\t 57\t 63\t 122\t 78\t 109\n",
+ "\n",
+ "\n",
+ "solution of above equation is:a=2 b=5 c=-3\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.4:pg-131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4.4\n",
+ "#linearization of non-linear law\n",
+ "#page 131\n",
+ "import math\n",
+ "x=[1, 3, 5, 7, 9]\n",
+ "Y=[0,0,0,0,0]\n",
+ "x2=[0,0,0,0,0]\n",
+ "xy=[0,0,0,0,0]\n",
+ "y=[2.473, 6.722, 18.274, 49.673, 135.026]\n",
+ "for i in range(0,5):\n",
+ " Y[i]=math.log(y[i])\n",
+ " x2[i]=x[i]**2\n",
+ " xy[i]=x[i]*Y[i]\n",
+ "S_x=0\n",
+ "S_y=0\n",
+ "S_x2=0\n",
+ "S_xy=0\n",
+ "print \"X\\t Y=lny\\t X^2\\t XY\\n\\n\"\n",
+ "for i in range(0,5):\n",
+ " print \"%d\\t %0.3f\\t %d\\t %0.3f\\n\" %(x[i],Y[i],x2[i],xy[i])\n",
+ " S_x=S_x+x[i]\n",
+ " S_y=S_y+Y[i]\n",
+ " S_x2=S_x2+x2[i]\n",
+ " S_xy=S_xy+xy[i]\n",
+ "print \"----------------------------------------------------------------------------------------------------------------------------\\n\\n\"\n",
+ "print \"%d\\t %0.3f\\t %d\\t %0.3f\\t\\n\\n\" %(S_x,S_y,S_x2,S_xy)\n",
+ "A1=((S_x/5)*S_xy-S_x*S_y)/((S_x/5)*S_x2-S_x**2)\n",
+ "A0=(S_y/5)-A1*(S_x/5)\n",
+ "a=math.exp(A0)\n",
+ "print \"y=%0.3fexp(%0.2fx)\" %(a,A1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "X\t Y=lny\t X^2\t XY\n",
+ "\n",
+ "\n",
+ "1\t 0.905\t 1\t 0.905\n",
+ "\n",
+ "3\t 1.905\t 9\t 5.716\n",
+ "\n",
+ "5\t 2.905\t 25\t 14.527\n",
+ "\n",
+ "7\t 3.905\t 49\t 27.338\n",
+ "\n",
+ "9\t 4.905\t 81\t 44.149\n",
+ "\n",
+ "----------------------------------------------------------------------------------------------------------------------------\n",
+ "\n",
+ "\n",
+ "25\t 14.527\t 165\t 92.636\t\n",
+ "\n",
+ "\n",
+ "y=1.500exp(0.50x)\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.5:pg-131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4.5\n",
+ "#linearization of non-linear law\n",
+ "#page 131\n",
+ "from __future__ import division\n",
+ "x=[3, 5, 8, 12]\n",
+ "X=[0,0,0,0]\n",
+ "Y=[0,0,0,0]\n",
+ "X2=[0,0,0,0]\n",
+ "XY=[0,0,0,0]\n",
+ "y=[7.148, 10.231, 13.509, 16.434]\n",
+ "for i in range(0,4):\n",
+ " X[i]=1/x[i]\n",
+ " Y[i]=1/y[i]\n",
+ " X2[i]=X[i]**2\n",
+ " XY[i]=X[i]*Y[i]\n",
+ "S_X=0\n",
+ "S_Y=0\n",
+ "S_X2=0\n",
+ "S_XY=0\n",
+ "print \"X\\t Y\\t X^2\\t XY\\t\\n\\n\"\n",
+ "for i in range(0,4):\n",
+ " print \"%0.3f\\t %0.3f\\t %0.3f\\t %0.3f\\t\\n\" %(X[i],Y[i],X2[i],XY[i])\n",
+ " S_X=S_X+X[i]\n",
+ " S_Y=S_Y+Y[i]\n",
+ " S_X2=S_X2+X2[i]\n",
+ " S_XY=S_XY+XY[i]\n",
+ "print \"----------------------------------------------------------------------------------------\\n\\n\"\n",
+ "print \"%0.3f\\t %0.3f\\t %0.3f\\t %0.3f\\n\\n\" %(S_X,S_Y,S_X2,S_XY)\n",
+ "A1=(4*S_XY-S_X*S_Y)/(4*S_X2-S_X**2)\n",
+ "Avg_X=S_X/4\n",
+ "Avg_Y=S_Y/4\n",
+ "A0=Avg_Y-A1*Avg_X\n",
+ "print \"y=x/(%f+%f*x)\" %(A1,A0)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "X\t Y\t X^2\t XY\t\n",
+ "\n",
+ "\n",
+ "0.333\t 0.140\t 0.111\t 0.047\t\n",
+ "\n",
+ "0.200\t 0.098\t 0.040\t 0.020\t\n",
+ "\n",
+ "0.125\t 0.074\t 0.016\t 0.009\t\n",
+ "\n",
+ "0.083\t 0.061\t 0.007\t 0.005\t\n",
+ "\n",
+ "----------------------------------------------------------------------------------------\n",
+ "\n",
+ "\n",
+ "0.742\t 0.373\t 0.174\t 0.081\n",
+ "\n",
+ "\n",
+ "y=x/(0.316200+0.034500*x)\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.6:pg-134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4.6\n",
+ "#curve fitting by polynomial\n",
+ "#page 134\n",
+ "from numpy import matrix\n",
+ "x=[0, 1, 2]\n",
+ "y=[1, 6, 17]\n",
+ "x2=[0,0,0]\n",
+ "x3=[0,0,0]\n",
+ "x4=[0,0,0]\n",
+ "xy=[0,0,0]\n",
+ "x2y=[0,0,0]\n",
+ "for i in range(0,3):\n",
+ " x2[i]=x[i]**2\n",
+ " x3[i]=x[i]**3\n",
+ " x4[i]=x[i]**4\n",
+ " xy[i]=x[i]*y[i]\n",
+ " x2y[i]=x2[i]*y[i]\n",
+ "print \"x\\t y\\t x^2\\t x^3\\t x^4\\t x*y\\t x^2*y\\t\\n\\n\"\n",
+ "S_x=0\n",
+ "S_y=0\n",
+ "S_x2=0\n",
+ "S_x3=0\n",
+ "S_x4=0\n",
+ "S_xy=0\n",
+ "S_x2y=0\n",
+ "for i in range(0,3):\n",
+ " print \"%d\\t %d\\t %d\\t %d\\t %d\\t %d\\t %d\\n\" %(x[i],y[i],x2[i],x3[i],x4[i],xy[i],x2y[i])\n",
+ " S_x=S_x+x[i]\n",
+ " S_y=S_y+y[i]\n",
+ " S_x2=S_x2+x2[i]\n",
+ " S_x3=S_x3+x3[i]\n",
+ " S_x4=S_x4+x4[i]\n",
+ " S_xy=S_xy+xy[i]\n",
+ " S_x2y=S_x2y+x2y[i]\n",
+ "print \"--------------------------------------------------------------------------------------------------------------------------------\\n\\n\"\n",
+ "print \"%d\\t %d\\t %d\\t %d\\t %d\\t %d\\t %d\\n \" %(S_x,S_y,S_x2,S_x3,S_x4,S_xy,S_x2y)\n",
+ "A=matrix([[3,S_x,S_x2],[S_x,S_x2,S_x3],[S_x2,S_x3,S_x4]])\n",
+ "B=matrix([[S_y],[S_xy],[S_x2y]])\n",
+ "C=A.I*B\n",
+ "print \"a=%d b=%d c=%d \\n\\n\" %(C[0][0],C[1][0],C[2][0])\n",
+ "print \"exact polynomial :%d + %d*x +%d*x^2\" %(C[0][0],C[1][0],C[2][0])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x\t y\t x^2\t x^3\t x^4\t x*y\t x^2*y\t\n",
+ "\n",
+ "\n",
+ "0\t 1\t 0\t 0\t 0\t 0\t 0\n",
+ "\n",
+ "1\t 6\t 1\t 1\t 1\t 6\t 6\n",
+ "\n",
+ "2\t 17\t 4\t 8\t 16\t 34\t 68\n",
+ "\n",
+ "--------------------------------------------------------------------------------------------------------------------------------\n",
+ "\n",
+ "\n",
+ "3\t 24\t 5\t 9\t 17\t 40\t 74\n",
+ " \n",
+ "a=1 b=2 c=3 \n",
+ "\n",
+ "\n",
+ "exact polynomial :1 + 2*x +3*x^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.7:pg-134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4.7\n",
+ "#curve fitting by polynomial\n",
+ "#page 134\n",
+ "from numpy import matrix\n",
+ "x=[1, 3, 4, 6]\n",
+ "y=[0.63, 2.05, 4.08, 10.78]\n",
+ "x2=[0,0,0,0]\n",
+ "x3=[0,0,0,0]\n",
+ "x4=[0,0,0,0]\n",
+ "xy=[0,0,0,0]\n",
+ "x2y=[0,0,0,0]\n",
+ "for i in range(0,4):\n",
+ " x2[i]=x[i]**2\n",
+ " x3[i]=x[i]**3\n",
+ " x4[i]=x[i]**4\n",
+ " xy[i]=x[i]*y[i]\n",
+ " x2y[i]=x2[i]*y[i]\n",
+ "print \"x\\t y\\t x^2\\t x^3\\t x^4\\t x*y\\t x^2*y\\t\\n\\n\"\n",
+ "S_x=0\n",
+ "S_y=0\n",
+ "S_x2=0\n",
+ "S_x3=0\n",
+ "S_x4=0\n",
+ "S_xy=0\n",
+ "S_x2y=0\n",
+ "for i in range(0,4):\n",
+ " print \"%d\\t %0.3f\\t %d\\t %d\\t %d\\t %0.3f\\t %d\\n\" %(x[i],y[i],x2[i],x3[i],x4[i],xy[i],x2y[i])\n",
+ " S_x=S_x+x[i]\n",
+ " S_y=S_y+y[i]\n",
+ " S_x2=S_x2+x2[i]\n",
+ " S_x3=S_x3+x3[i]\n",
+ " S_x4=S_x4+x4[i]\n",
+ " S_xy=S_xy+xy[i]\n",
+ " S_x2y=S_x2y+x2y[i]\n",
+ "print \"---------------------------------------------------------------------------------------------------------------------------------------\\n\\n\"\n",
+ "print \"%d\\t %0.3f\\t %d\\t %d\\t %d\\t %0.3f\\t %0.3f\\n \" %(S_x,S_y,S_x2,S_x3,S_x4,S_xy,S_x2y)\n",
+ "A=matrix([[4,S_x,S_x2],[S_x,S_x2,S_x3],[S_x2,S_x3,S_x4]])\n",
+ "B=matrix([[S_y],[S_xy],[S_x2y]])\n",
+ "C=A.I*B\n",
+ "print \"a=%0.2f b=%0.2f c=%0.2f \\n\\n\" %(C[0][0],C[1][0],C[2][0])\n",
+ "print \"exact polynomial :%0.2f + %0.2f*x +%0.2f*x^2\" %(C[0][0],C[1][0],C[2][0])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x\t y\t x^2\t x^3\t x^4\t x*y\t x^2*y\t\n",
+ "\n",
+ "\n",
+ "1\t 0.630\t 1\t 1\t 1\t 0.630\t 0\n",
+ "\n",
+ "3\t 2.050\t 9\t 27\t 81\t 6.150\t 18\n",
+ "\n",
+ "4\t 4.080\t 16\t 64\t 256\t 16.320\t 65\n",
+ "\n",
+ "6\t 10.780\t 36\t 216\t 1296\t 64.680\t 388\n",
+ "\n",
+ "---------------------------------------------------------------------------------------------------------------------------------------\n",
+ "\n",
+ "\n",
+ "14\t 17.540\t 62\t 308\t 1634\t 87.780\t 472.440\n",
+ " \n",
+ "a=1.24 b=-1.05 c=0.44 \n",
+ "\n",
+ "\n",
+ "exact polynomial :1.24 + -1.05*x +0.44*x^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.8:pg-137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#curve fitting by sum of exponentials\n",
+ "#example 4.8\n",
+ "#page 137\n",
+ "from math import *\n",
+ "x=[1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8]\n",
+ "y=[1.54, 1.67, 1.81, 1.97, 2.15, 2.35, 2.58, 2.83, 3.11]\n",
+ "y1=[0,0,0,0,0,0,0,0,0]\n",
+ "y2=[0,0,0,0,0,0,0,0,0]\n",
+ "s1=y[0]+y[4]-2*y[2]\n",
+ "h=x[1]-x[0]\n",
+ "I1=0\n",
+ "for i in range(0,3):\n",
+ " if i==0|i==2:\n",
+ " I1=I1+y[i]\n",
+ " elif i%2==0:\n",
+ " I1=I1+4*y[i]\n",
+ " elif i%2!=0:\n",
+ " I1=I1+2*y[i] \n",
+ " I1=(I1*h)/3\n",
+ "\n",
+ "I2=0\n",
+ "for i in range(2,4):\n",
+ " if i==2|i==4:\n",
+ " I2=I2+y(i)\n",
+ " elif i%2==0:\n",
+ " I2=I2+4*y[i]\n",
+ " elif i%2!=0:\n",
+ " I2=I2+2*y[i] \n",
+ " \n",
+ " I2=(I2*h)/3\n",
+ " for i in range(0,4):\n",
+ " y1[i]=(1.0-x[i])*y[i]\n",
+ " for i in range(4,8):\n",
+ " y2[i]=(1.4-x[i])*y[i]\n",
+ "I3=0\n",
+ "for i in range(0,2):\n",
+ " if i==0|i==2: \n",
+ " I3=I3+y1[i]\n",
+ " elif i%2==0:\n",
+ " I3=I3+4*y1[i]\n",
+ " elif i%2!=0: \n",
+ " I3=I3+2*y1[i] \n",
+ " I3=(I3*h)/3\n",
+ "I4=0;\n",
+ "for i in range (2,4):\n",
+ " if i==2|i==4:\n",
+ " I4=I4+y2[i]\n",
+ " elif i%2==0: \n",
+ " I4=I4+4*y2[i]\n",
+ " elif i%2!=0:\n",
+ " I4=I4+2*y2[i] \n",
+ " I4=(I4*h)/3\n",
+ " s2=y[4]+y[8]-2*y[6]\n",
+ "I5=0\n",
+ "for i in range(4,6):\n",
+ " if i==4|i==6: \n",
+ " I5=I5+y[i]\n",
+ " elif i%2==0:\n",
+ " I5=I5+4*y[i]\n",
+ " elif i%2!=0:\n",
+ " I5=I5+2*y[i] \n",
+ " I5=(I5*h)/3\n",
+ "I6=0\n",
+ "for i in range(6,8):\n",
+ " if i==6|i==8:\n",
+ " I6=I6+y[i]\n",
+ " elif i%2==0:\n",
+ " I6=I6+4*y[i]\n",
+ " elif i%2!=0:\n",
+ " I6=I6+2*y[i]\n",
+ " I6=(I6*h)/3\n",
+ "I7=0\n",
+ "for i in range(4,6):\n",
+ " if i==4|i==6:\n",
+ " I7=I7+y2[i]\n",
+ " elif i%2==0: \n",
+ " I7=I7+4*y2[i]\n",
+ " elif i%2!=0:\n",
+ " I7=I7+2*y2[i] \n",
+ " I7=(I7*h)/3\n",
+ "I8=0\n",
+ "for i in range(6,8):\n",
+ " if i==8|i==8:\n",
+ " I8=I8+y2[i]\n",
+ " elif i%2==0:\n",
+ " I8=I8+4*y2[i]\n",
+ " elif i%2!=0:\n",
+ " I8=I8+2*y2[i]\n",
+ " I8=(I8*h)/3\n",
+ "A=matrix([[1.81, 2.180],[2.88, 3.104]])\n",
+ "C=matrix([[2.10],[3.00]])\n",
+ "Z=A.I*C\n",
+ "p = np.poly1d([1,Z[0][0],Z[1][0]])\n",
+ "print \"the unknown value of equation is 1 -1 \" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the unknown value of equation is 1 -1 \n"
+ ]
+ }
+ ],
+ "prompt_number": 64
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Es4.9:pg-139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#linear weighted least approx\n",
+ "#example 4.9\n",
+ "#page 139\n",
+ "from numpy import matrix\n",
+ "x=[0, 2, 5, 7]\n",
+ "y=[-1, 5, 12, 20]\n",
+ "w=10 #given weight 10\n",
+ "W=[1, 1, 10, 1]\n",
+ "Wx=[0,0,0,0]\n",
+ "Wx2=[0,0,0,0]\n",
+ "Wx3=[0,0,0,0]\n",
+ "Wy=[0,0,0,0]\n",
+ "Wxy=[0,0,0,0]\n",
+ "for i in range(0,4):\n",
+ " Wx[i]=W[i]*x[i]\n",
+ " Wx2[i]=W[i]*x[i]**2\n",
+ " Wx3[i]=W[i]*x[i]**3\n",
+ " Wy[i]=W[i]*y[i]\n",
+ " Wxy[i]=W[i]*x[i]*y[i]\n",
+ "S_x=0\n",
+ "S_y=0\n",
+ "S_W=0\n",
+ "S_Wx=0\n",
+ "S_Wx2=0\n",
+ "S_Wy=0\n",
+ "S_Wxy=0\n",
+ "for i in range(0,4):\n",
+ " S_x=S_x+x[i]\n",
+ " S_y=S_y+y[i]\n",
+ " S_W=S_W+W[i]\n",
+ " S_Wx=S_Wx+Wx[i]\n",
+ " S_Wx2=S_Wx2+Wx2[i]\n",
+ " S_Wy=S_Wy+Wy[i]\n",
+ " S_Wxy=S_Wxy+Wxy[i]\n",
+ "A=matrix([[S_W,S_Wx],[S_Wx,S_Wx2]])\n",
+ "C=matrix([[S_Wy],[S_Wxy]])\n",
+ "print \"x\\t y\\t W\\t Wx\\t Wx^2\\t Wy\\t Wxy\\t\\n\\n\"\n",
+ "for i in range(0,4):\n",
+ " print \"%d\\t %d\\t %d\\t %d\\t %d\\t %d\\t %d\\t\\n\" %(x[i],y[i],W[i],Wx[i],Wx2[i],Wy[i],Wxy[i])\n",
+ "print \"-------------------------------------------------------------------------------------------------------------------------------------\\n\\n\"\n",
+ "print \"%d\\t %d\\t %d\\t %d\\t %d\\t %d\\t %d\\t\\n\" %(S_x,S_y,S_W,S_Wx,S_Wx2,S_Wy,S_Wxy)\n",
+ "X=A.I*C;\n",
+ "print \"\\n\\nthe equation is y=%f+%fx\" %(X[0][0],X[1][0])\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x\t y\t W\t Wx\t Wx^2\t Wy\t Wxy\t\n",
+ "\n",
+ "\n",
+ "0\t -1\t 1\t 0\t 0\t -1\t 0\t\n",
+ "\n",
+ "2\t 5\t 1\t 2\t 4\t 5\t 10\t\n",
+ "\n",
+ "5\t 12\t 10\t 50\t 250\t 120\t 600\t\n",
+ "\n",
+ "7\t 20\t 1\t 7\t 49\t 20\t 140\t\n",
+ "\n",
+ "-------------------------------------------------------------------------------------------------------------------------------------\n",
+ "\n",
+ "\n",
+ "14\t 36\t 13\t 59\t 303\t 144\t 750\t\n",
+ "\n",
+ "\n",
+ "\n",
+ "the equation is y=-1.349345+2.737991x\n"
+ ]
+ }
+ ],
+ "prompt_number": 77
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.10:pg-139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#linear weighted least approx\n",
+ "#example 4.10\n",
+ "#page 139\n",
+ "x=[0, 2, 5, 7]\n",
+ "y=[-1, 5, 12, 20]\n",
+ "w=100 #given weight 100\n",
+ "W=[1, 1, 100, 1]\n",
+ "Wx=[0,0,0,0]\n",
+ "Wx2=[0,0,0,0]\n",
+ "Wx3=[0,0,0,0]\n",
+ "Wy=[0,0,0,0]\n",
+ "Wxy=[0,0,0,0]\n",
+ "for i in range(0,4):\n",
+ " Wx[i]=W[i]*x[i]\n",
+ " Wx2[i]=W[i]*x[i]**2\n",
+ " Wx3[i]=W[i]*x[i]**3\n",
+ " Wy[i]=W[i]*y[i]\n",
+ " Wxy[i]=W[i]*x[i]*y[i]\n",
+ "S_x=0\n",
+ "S_y=0\n",
+ "S_W=0\n",
+ "S_Wx=0\n",
+ "S_Wx2=0\n",
+ "S_Wy=0\n",
+ "S_Wxy=0\n",
+ "for i in range(0,4):\n",
+ " S_x=S_x+x[i]\n",
+ " S_y=S_y+y[i]\n",
+ " S_W=S_W+W[i]\n",
+ " S_Wx=S_Wx+Wx[i]\n",
+ " S_Wx2=S_Wx2+Wx2[i]\n",
+ " S_Wy=S_Wy+Wy[i]\n",
+ " S_Wxy=S_Wxy+Wxy[i]\n",
+ "A=matrix([[S_W,S_Wx],[S_Wx,S_Wx2]])\n",
+ "C=matrix([[S_Wy],[S_Wxy]])\n",
+ "print \"x\\t y\\t W\\t Wx\\t Wx^2\\t Wy\\t Wxy\\t\\n\\n\"\n",
+ "for i in range(0,4):\n",
+ " print \"%d\\t %d\\t %d\\t %d\\t %d\\t %d\\t %d\\t\\n\" %(x[i],y[i],W[i],Wx[i],Wx2[i],Wy[i],Wxy[i])\n",
+ "print \"-------------------------------------------------------------------------------------------------------------------------------------\\n\\n\"\n",
+ "print \"%d\\t %d\\t %d\\t %d\\t %d\\t %d\\t %d\\t\\n\" %(S_x,S_y,S_W,S_Wx,S_Wx2,S_Wy,S_Wxy)\n",
+ "X=A.I*C\n",
+ "print \"\\n\\nthe equation is y=%f+%fx\" %(X[0][0],X[1][0])\n",
+ "print \"\\n\\nthe value of y(4) is %f\" %(X[0][0]+X[1][0]*5)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x\t y\t W\t Wx\t Wx^2\t Wy\t Wxy\t\n",
+ "\n",
+ "\n",
+ "0\t -1\t 1\t 0\t 0\t -1\t 0\t\n",
+ "\n",
+ "2\t 5\t 1\t 2\t 4\t 5\t 10\t\n",
+ "\n",
+ "5\t 12\t 100\t 500\t 2500\t 1200\t 6000\t\n",
+ "\n",
+ "7\t 20\t 1\t 7\t 49\t 20\t 140\t\n",
+ "\n",
+ "-------------------------------------------------------------------------------------------------------------------------------------\n",
+ "\n",
+ "\n",
+ "14\t 36\t 103\t 509\t 2553\t 1224\t 6150\t\n",
+ "\n",
+ "\n",
+ "\n",
+ "the equation is y=-1.412584+2.690562x\n",
+ "\n",
+ "\n",
+ "the value of y(4) is 12.040227\n"
+ ]
+ }
+ ],
+ "prompt_number": 82
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter6_1.ipynb b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter6_1.ipynb
new file mode 100644
index 00000000..7faef1ea
--- /dev/null
+++ b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter6_1.ipynb
@@ -0,0 +1,1068 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f89b91b8c25ad887942affb48e813afa9449ad54d5e7ab1cf115acac70bf5f26"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter06:Numerical Differentiation and Integration"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.1:pg-201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6.1\n",
+ "#numerical diffrentiation by newton's difference formula \n",
+ "#page 210\n",
+ "x=[1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2]\n",
+ "y=[2.7183, 3.3201, 4.0552, 4.9530, 6.0496, 7.3891, 9.0250]\n",
+ "c=0\n",
+ "d1=[0,0,0,0,0,0]\n",
+ "d2=[0,0,0,0,0]\n",
+ "d3=[0,0,0,0]\n",
+ "d4=[0,0,0]\n",
+ "d5=[0,0]\n",
+ "d6=[0]\n",
+ "for i in range(0,6):\n",
+ " d1[c]=y[i+1]-y[i]\n",
+ " c=c+1;\n",
+ "c=0\n",
+ "for i in range(0,5):\n",
+ " d2[c]=d1[i+1]-d1[i]\n",
+ " c=c+1;\n",
+ "c=0\n",
+ "for i in range(0,4):\n",
+ " d3[c]=d2[i+1]-d2[i]\n",
+ " c=c+1;\n",
+ "c=0\n",
+ "for i in range(0,3):\n",
+ " d4[c]=d3[i+1]-d3[i]\n",
+ " c=c+1;\n",
+ "c=0\n",
+ "for i in range(0,2):\n",
+ " d5[c]=d4[i+1]-d4[i]\n",
+ " c=c+1;\n",
+ "c=0\n",
+ "for i in range(0,1):\n",
+ " d6[c]=d5[i+1]-d5[i]\n",
+ " c=c+1;\n",
+ "x0=1.2 #first and second derivative at 1.2\n",
+ "h=0.2\n",
+ "f1=((d1[1]-d2[1]/2+d3[1]/3-d4[1]/4+d5[1]/5)/h)\n",
+ "print \"the first derivative of fuction at 1.2 is:%f\\n\" %(f1)\n",
+ "f2=(d2[1]-d3[1]+(11*d4[1])/12-(5*d5[1])/6)/h**2\n",
+ "print \"the second derivative of fuction at 1.2 is:%f\\n\" %(f2)\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.2:pg-211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6.2\n",
+ "#numerical diffrentiation by newton's difference formula \n",
+ "#page 211\n",
+ "x=[1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2]\n",
+ "y=[2.7183, 3.3201, 4.0552, 4.9530, 6.0496, 7.3891, 9.0250]\n",
+ "c=0\n",
+ "d1=[0,0,0,0,0,0]\n",
+ "d2=[0,0,0,0,0]\n",
+ "d3=[0,0,0,0]\n",
+ "d4=[0,0,0]\n",
+ "d5=[0,0]\n",
+ "d6=[0]\n",
+ "for i in range(0,6):\n",
+ " d1[c]=y[i+1]-y[i]\n",
+ " c=c+1;\n",
+ "c=0\n",
+ "for i in range(0,5):\n",
+ " d2[c]=d1[i+1]-d1[i]\n",
+ " c=c+1;\n",
+ "c=0\n",
+ "for i in range(0,4):\n",
+ " d3[c]=d2[i+1]-d2[i]\n",
+ " c=c+1;\n",
+ "c=0\n",
+ "for i in range(0,3):\n",
+ " d4[c]=d3[i+1]-d3[i]\n",
+ " c=c+1;\n",
+ "c=0\n",
+ "for i in range(0,2):\n",
+ " d5[c]=d4[i+1]-d4[i]\n",
+ " c=c+1;\n",
+ "c=0\n",
+ "for i in range(0,1):\n",
+ " d6[c]=d5[i+1]-d5[i]\n",
+ " c=c+1;\n",
+ "x0=2.2 #first and second derivative at 2.2\n",
+ "h=0.2\n",
+ "f1=((d1[5]+d2[4]/2+d3[3]/3+d4[2]/4+d5[1]/5)/h)\n",
+ "print \"the first derivative of fuction at 1.2 is:%f\\n\" %(f1)\n",
+ "f2=(d2[4]+d3[3]+(11*d4[2])/12+(5*d5[1])/6)/h**2\n",
+ "print \"the second derivative of fuction at 1.2 is:%f\\n\" %(f2)\n",
+ "x1=2.0 # first derivative also at 2.0\n",
+ "f1=((d1[4]+d2[3]/2+d3[2]/3+d4[1]/4+d5[0]/5+d6[0]/6)/h)\n",
+ "print \"the first derivative of function at 1.2 is:%f\\n\" %(f1)\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the first derivative of fuction at 1.2 is:9.022817\n",
+ "\n",
+ "the second derivative of fuction at 1.2 is:8.992083\n",
+ "\n",
+ "the first derivative of function at 1.2 is:7.389633\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.3:pg-211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6.3\n",
+ "#numerical diffrentiation by newton's difference formula \n",
+ "#page 211\n",
+ "x=[1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2]\n",
+ "y=[2.7183, 3.3201, 4.0552, 4.9530, 6.0496, 7.3891, 9.0250]\n",
+ "c=0\n",
+ "d1=[0,0,0,0,0,0]\n",
+ "d2=[0,0,0,0,0]\n",
+ "d3=[0,0,0,0]\n",
+ "d4=[0,0,0]\n",
+ "d5=[0,0]\n",
+ "d6=[0]\n",
+ "for i in range(0,6):\n",
+ " d1[c]=y[i+1]-y[i]\n",
+ " c=c+1;\n",
+ "c=0\n",
+ "for i in range(0,5):\n",
+ " d2[c]=d1[i+1]-d1[i]\n",
+ " c=c+1;\n",
+ "c=0\n",
+ "for i in range(0,4):\n",
+ " d3[c]=d2[i+1]-d2[i]\n",
+ " c=c+1;\n",
+ "c=0\n",
+ "for i in range(0,3):\n",
+ " d4[c]=d3[i+1]-d3[i]\n",
+ " c=c+1;\n",
+ "c=0\n",
+ "for i in range(0,2):\n",
+ " d5[c]=d4[i+1]-d4[i]\n",
+ " c=c+1;\n",
+ "c=0\n",
+ "for i in range(0,1):\n",
+ " d6[c]=d5[i+1]-d5[i]\n",
+ " c=c+1;\n",
+ "x0=1.6 #first and second derivative at 1.6\n",
+ "h=0.2\n",
+ "f1=(((d1[2]+d1[3])/2-(d3[1]+d3[2])/4+(d5[0]+d5[1])/60))/h\n",
+ "print \"the first derivative of function at 1.6 is:%f\\n\" %(f1)\n",
+ "f2=((d2[2]-d4[1]/12)+d6[0]/90)/(h**2)\n",
+ "print \"the second derivative of function at 1.6 is:%f\\n\" %(f2)\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the first derivative of function at 1.6 is:4.885975\n",
+ "\n",
+ "the second derivative of function at 1.6 is:4.953361\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.4:pg-213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6.4\n",
+ "#estimation of errors \n",
+ "#page 213\n",
+ "x=[1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2]\n",
+ "y=[2.7183, 3.3201, 4.0552, 4.9530, 6.0496, 7.3891, 9.0250]\n",
+ "c=0\n",
+ "d1=[0,0,0,0,0,0]\n",
+ "d2=[0,0,0,0,0]\n",
+ "d3=[0,0,0,0]\n",
+ "d4=[0,0,0]\n",
+ "d5=[0,0]\n",
+ "d6=[0]\n",
+ "for i in range(0,6):\n",
+ " d1[c]=y[i+1]-y[i]\n",
+ " c=c+1;\n",
+ "c=0\n",
+ "for i in range(0,5):\n",
+ " d2[c]=d1[i+1]-d1[i]\n",
+ " c=c+1;\n",
+ "c=0\n",
+ "for i in range(0,4):\n",
+ " d3[c]=d2[i+1]-d2[i]\n",
+ " c=c+1;\n",
+ "c=0\n",
+ "for i in range(0,3):\n",
+ " d4[c]=d3[i+1]-d3[i]\n",
+ " c=c+1;\n",
+ "c=0\n",
+ "for i in range(0,2):\n",
+ " d5[c]=d4[i+1]-d4[i]\n",
+ " c=c+1;\n",
+ "c=0\n",
+ "for i in range(0,1):\n",
+ " d6[c]=d5[i+1]-d5[i]\n",
+ " c=c+1\n",
+ "x0=1.6 #first and second derivative at 1.6\n",
+ "h=0.2\n",
+ "f1=((d1[1]-d2[1]/2+d3[1]/3-d4[1]/4+d5[1]/5)/h)\n",
+ "print \"the first derivative of fuction at 1.2 is:%f\\n\" %(f1)\n",
+ "f2=(d2[1]-d3[1]+(11*d4[1])/12-(5*d5[1])/6)/h**2\n",
+ "print \"the second derivative of fuction at 1.2 is:%f\\n\" %(f2)\n",
+ "T_error1=((d3[1]+d3[2])/2)/(6*h) #truncation error\n",
+ "e=0.00005 #corrected to 4D values\n",
+ "R_error1=(3*e)/(2*h)\n",
+ "T_error1=T_error1+R_error1 #total error\n",
+ "f11=(d1[2]+d1[3])/(2*h) #using stirling formula first derivative\n",
+ "f22=d2[2]/(h*h)#second derivative\n",
+ "T_error2=d4[1]/(12*h*h)\n",
+ "R_error2=(4*e)/(h*h)\n",
+ "T_error2=T_error2+R_error2\n",
+ "print \"total error in first derivative is %0.4g:\\n\" %(T_error1)\n",
+ "print \"total error in second derivative is %0.4g:\" %(T_error2)\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the first derivative of fuction at 1.2 is:3.320317\n",
+ "\n",
+ "the second derivative of fuction at 1.2 is:3.319167\n",
+ "\n",
+ "total error in first derivative is 0.03379:\n",
+ "\n",
+ "total error in second derivative is 0.02167:\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.5:pg-214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#cubic spline method\n",
+ "#example 6.5\n",
+ "#page 214\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "x=[0, math.pi/2, math.pi]\n",
+ "y=[0, 1, 0]\n",
+ "M0=0\n",
+ "M2=0\n",
+ "h=math.pi/2\n",
+ "M1=(6*(y[0]-2*y[1]+y[2])/(h**2)-M0-M2)/4\n",
+ "def s1(x):\n",
+ " return (2/math.pi)*(-2*3*x*x/(math.pi**2)+3/2)\n",
+ "S1=s1(math.pi/4)\n",
+ "print \"S1(pi/4)=%f\" %(S1)\n",
+ "def s2(x):\n",
+ " return (-24*x)/(math.pi**3)\n",
+ "S2=s2(math.pi/4)\n",
+ "print \"S2(pi/4)=%f\" %(S2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "S1(pi/4)=0.716197\n",
+ "S2(pi/4)=-0.607927\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.6:pg-216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#derivative by cubic spline method\n",
+ "#example 6.6\n",
+ "#page 216\n",
+ "x=[-2, -1, 2, 3]\n",
+ "y=[-12, -8, 3, 5] \n",
+ "def f(x):\n",
+ " return x**3/15-3*x**2/20+241*x/60-3.9\n",
+ "def s2(x):\n",
+ " return (((2-x)**3)/6*(14/55)+((x+1)**3)/6*(-74/55))/3+(-8-21/55)*(2-x)/3+(3-(9/6)*(-74/55))*(x+1)/3\n",
+ "h=0.0001\n",
+ "x0=1.0\n",
+ "y1=(s2(x0+h)-s2(x0))/h\n",
+ "print \"the value y1(%0.2f) is : %f\" %(x0,y1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the value y1(1.00) is : 3.527232\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.7:pg-218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#maximun and minimun of functions\n",
+ "#example 6.7\n",
+ "#page 218\n",
+ "x=[1.2, 1.3, 1.4, 1.5, 1.6]\n",
+ "y=[0.9320, 0.9636, 0.9855, 0.9975, 0.9996]\n",
+ "d1=[0,0,0,0]\n",
+ "d2=[0,0,0]\n",
+ "for i in range(0,4):\n",
+ " d1[i]=y[i+1]-y[i]\n",
+ "for i in range(0,3):\n",
+ " d2[i]=d1[i+1]-d1[i]\n",
+ "p=(-d1[0]*2/d2[0]+1)/2;\n",
+ "print \"p=%f\" %(p)\n",
+ "h=0.1\n",
+ "x0=1.2\n",
+ "X=x0+p*h\n",
+ "print \" the value of X correct to 2 decimal places is : %0.2f\" %(X)\n",
+ "Y=y[4]-0.2*d1[3]+(-0.2)*(-0.2+1)*d2[2]/2\n",
+ "print \"the value Y=%f\" %(Y)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "p=3.757732\n",
+ " the value of X correct to 2 decimal places is : 1.58\n",
+ "the value Y=0.999972\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.8:pg-226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6.8\n",
+ "#trapezoidal method for integration\n",
+ "#page 226\n",
+ "from __future__ import division\n",
+ "x=[7.47, 7.48, 7.49, 7.0, 7.51, 7.52]\n",
+ "f_x=[1.93, 1.95, 1.98, 2.01, 2.03, 2.06]\n",
+ "h=x[1]-x[0]\n",
+ "l=6\n",
+ "area=0\n",
+ "for i in range(0,l):\n",
+ " if i==0:\n",
+ " area=area+f_x[i]\n",
+ " elif i==l-1:\n",
+ " area=area+f_x[i]\n",
+ " else:\n",
+ " area=area+2*f_x[i]\n",
+ "area=area*(h/2)\n",
+ "print \"area bounded by the curve is %f\" %(area)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "area bounded by the curve is 0.099650\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.9:pg-226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6.9\n",
+ "#simpson 1/3rd method for integration\n",
+ "#page 226\n",
+ "from __future__ import division\n",
+ "import math\n",
+ "x=[0,0.00, 0.25, 0.50, 0.75, 1.00]\n",
+ "y=[0,1.000, 0.9896, 0.9589, 0.9089, 0.8415]\n",
+ "h=x[2]-x[1]\n",
+ "area=0\n",
+ "for i in range(0,6):\n",
+ " y[i]=y[i]**2\n",
+ "for i in range(1,6):\n",
+ " if i==1:\n",
+ " area=area+y[i]\n",
+ " elif i==5:\n",
+ " area=area+y[i]\n",
+ " elif i%2==0:\n",
+ " area=area+4*y[i]\n",
+ " elif i%2!=0: \n",
+ " area=area+2*y[i]\n",
+ "area=(area/3)*(h*math.pi)\n",
+ "print \"area bounded by the curve is %f\" %(area)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "area bounded by the curve is 2.819247\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.10:pg-228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6.10\n",
+ "#integration by trapezoidal and simpson's method\n",
+ "#page 228\n",
+ "from __future__ import division\n",
+ "def f(x):\n",
+ " return 1/(1+x)\n",
+ "h=0.5\n",
+ "x=[0,0.0,0.5,1.0]\n",
+ "y=[0,0,0,0]\n",
+ "l=4\n",
+ "for i in range(0,l):\n",
+ " y[i]=f(x[i])\n",
+ "area=0 #trapezoidal method\n",
+ "for i in range(1,l):\n",
+ " if i==1:\n",
+ " area=area+y[i]\n",
+ " elif i==l-1:\n",
+ " area=area+y[i]\n",
+ " else:\n",
+ " area=area+2*y[i]\n",
+ "area=area*(h/2)\n",
+ "print \"area bounded by the curve by trapezoidal method with h=%f is %f\\n \\n\" %(h,area)\n",
+ "area=0 #simpson 1/3rd rule\n",
+ "for i in range(1,l):\n",
+ " if i==1: \n",
+ " area=area+y[i]\n",
+ " elif i==l-1:\n",
+ " area=area+y[i]\n",
+ " elif i%2==0:\n",
+ " area=area+4*y[i]\n",
+ " elif i%2!=0:\n",
+ " area=area+2*y[i]\n",
+ "area=(area*h)/3\n",
+ "print \"area bounded by the curve by simpson 1/3rd method with h=%f is %f\\n \\n\" %(h,area)\n",
+ "h=0.25\n",
+ "x=[0,0.0,0.25,0.5,0.75,1.0]\n",
+ "y=[0,0,0,0,0,0]\n",
+ "l=6\n",
+ "for i in range(0,l):\n",
+ " y[i]=f(x[i])\n",
+ "area=0 #trapezoidal method\n",
+ "for i in range(1,l):\n",
+ " if i==1: \n",
+ " area=area+y[i]\n",
+ " elif i==l-1:\n",
+ " area=area+y[i]\n",
+ " else:\n",
+ " area=area+2*y[i]\n",
+ "area=area*(h/2)\n",
+ "print \"area bounded by the curve by trapezoidal method with h=%f is %f\\n \\n\" %(h,area)\n",
+ "area=0 #simpson 1/3rd rule\n",
+ "for i in range(1,l):\n",
+ " if i==1:\n",
+ " area=area+y[i]\n",
+ " elif i==l-1:\n",
+ " area=area+y[i]\n",
+ " elif i%2==0:\n",
+ " area=area+4*y[i]\n",
+ " elif i%2!=0:\n",
+ " area=area+2*y[i]\n",
+ "area=(area*h)/3\n",
+ "print \"area bounded by the curve by simpson 1/3rd method with h=%f is %f\\n \\n\" %(h,area)\n",
+ "h=0.125\n",
+ "x=[0,0.0,0.125,0.25,0.375,0.5,0.625,0.75,0.875,1.0]\n",
+ "y=[0,0,0,0,0,0,0,0,0,0]\n",
+ "l=10\n",
+ "for i in range(0,l):\n",
+ " y[i]=f(x[i])\n",
+ "area=0 #trapezoidal method\n",
+ "for i in range(1,l):\n",
+ " if i==1:\n",
+ " area=area+y[i]\n",
+ " elif i==l-1:\n",
+ " area=area+y[i]\n",
+ " elif i%2==0:\n",
+ " area=area+2*y[i]\n",
+ " elif i%2!=0:\n",
+ " area=area+2*y[i]\n",
+ "area=area*(h/2)\n",
+ "print \"area bounded by the curve by trapezoidal method with h=%f is %f\\n \\n\" %(h,area)\n",
+ "area=0 #simpson 1/3rd rule\n",
+ "for i in range(1,l):\n",
+ " if i==1:\n",
+ " area=area+y[i]\n",
+ " elif i==l-1:\n",
+ " area=area+y[i]\n",
+ " elif i%2==0:\n",
+ " area=area+4*y[i]\n",
+ " elif i%2!=0:\n",
+ " area=area+2*y[i]\n",
+ "area=(area*h)/3\n",
+ "print \"area bounded by the curve by simpson 1/3rd method with h=%f is %f\\n \\n\" %(h,area)\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "area bounded by the curve by trapezoidal method with h=0.500000 is 0.708333\n",
+ " \n",
+ "\n",
+ "area bounded by the curve by simpson 1/3rd method with h=0.500000 is 0.694444\n",
+ " \n",
+ "\n",
+ "area bounded by the curve by trapezoidal method with h=0.250000 is 0.697024\n",
+ " \n",
+ "\n",
+ "area bounded by the curve by simpson 1/3rd method with h=0.250000 is 0.693254\n",
+ " \n",
+ "\n",
+ "area bounded by the curve by trapezoidal method with h=0.125000 is 0.694122\n",
+ " \n",
+ "\n",
+ "area bounded by the curve by simpson 1/3rd method with h=0.125000 is 0.693155\n",
+ " \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.11:pg-229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6.11\n",
+ "#rommberg's method\n",
+ "#page 229\n",
+ "from __future__ import division\n",
+ "def f(x):\n",
+ " return 1/(1+x)\n",
+ "k=0\n",
+ "h=0.5\n",
+ "x=[0,0.0,0.5,1.0]\n",
+ "y=[0,0,0,0]\n",
+ "I=[0,0,0]\n",
+ "I1=[0,0]\n",
+ "T2=[0]\n",
+ "l=4\n",
+ "for i in range(0,l):\n",
+ " y[i]=f(x[i])\n",
+ "area=0 #trapezoidal method\n",
+ "for i in range(1,l):\n",
+ " if i==1:\n",
+ " area=area+y[i]\n",
+ " elif i==l-1:\n",
+ " area=area+y[i]\n",
+ " else:\n",
+ " area=area+2*y[i]\n",
+ "area=area*(h/2)\n",
+ "I[k]=area\n",
+ "k=k+1\n",
+ "h=0.25\n",
+ "x=[0,0.0,0.25,0.5,0.75,1.0]\n",
+ "y=[0,0,0,0,0,0]\n",
+ "l=6\n",
+ "for i in range(0,l):\n",
+ " y[i]=f(x[i])\n",
+ "area=0 #trapezoidal method\n",
+ "for i in range(1,l):\n",
+ " if i==1:\n",
+ " area=area+y[i]\n",
+ " elif i==l-1:\n",
+ " area=area+y[i]\n",
+ " else:\n",
+ " area=area+2*y[i]\n",
+ "area=area*(h/2)\n",
+ "I[k]=area\n",
+ "k=k+1\n",
+ "h=0.125\n",
+ "x=[0,0.0,0.125,0.25,0.375,0.5,0.625,0.75,0.875,1.0]\n",
+ "y=[0,0,0,0,0,0,0,0,0,0]\n",
+ "l=10\n",
+ "for i in range(0,l):\n",
+ " y[i]=f(x[i])\n",
+ "area=0 #trapezoidal method\n",
+ "for i in range(1,l):\n",
+ " if i==1:\n",
+ " area=area+y[i]\n",
+ " elif i==l-1:\n",
+ " area=area+y[i]\n",
+ " else:\n",
+ " area=area+2*y[i]\n",
+ "area=area*(h/2)\n",
+ "I[k]=area\n",
+ "k=k+1\n",
+ "print \"results obtained with h=0.5 0.25 0.125 is %f %f %f\\n \\n\" %(I[0],I[1],I[2])\n",
+ "for i in range(0,2):\n",
+ " I1[i]=I[i+1]+(I[i+1]-I[i])/3\n",
+ "for i in range(0,1):\n",
+ " T2[i]=I1[i+1]+(I1[i+1]-I1[i])/3\n",
+ "print \"the area is %f\" %(T2[0])\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "results obtained with h=0.5 0.25 0.125 is 0.708333 0.697024 0.694122\n",
+ " \n",
+ "\n",
+ "the area is 0.693121\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.13:pg-230"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#area using cubic spline method\n",
+ "#example 6.13\n",
+ "#page 230\n",
+ "x=[0, 0.5, 1.0]\n",
+ "y=[0, 1.0, 0.0]\n",
+ "h=0.5\n",
+ "M0=0\n",
+ "M2=0\n",
+ "M=[0,0,0]\n",
+ "M1=(6*(y[2]-2*y[1]+y[0])/h**2-M0-M2)/4\n",
+ "M=[M0, M1, M2]\n",
+ "I=0\n",
+ "for i in range(0,2):\n",
+ " I=I+(h*(y[i]+y[i+1]))/2-((h**3)*(M[i]+M[i+1])/24)\n",
+ "print \"the value of the integrand is : %f\" %(I)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the value of the integrand is : 0.625000\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.15:pg-233"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#euler's maclaurin formula\n",
+ "#example 6.15\n",
+ "#page 233\n",
+ "import math\n",
+ "y=[0, 1, 0]\n",
+ "h=math.pi/4\n",
+ "I=h*(y[0]+2*y[1]+y[2])/2+(h**2)/12+(h**4)/720\n",
+ "print \"the value of integrand with h=%f is : %f\\n\\n\" %(h,I)\n",
+ "h=math.pi/8\n",
+ "y=[0, math.sin(math.pi/8), math.sin(math.pi*2/8), math.sin(math.pi*3/8), math.sin(math.pi*4/8)]\n",
+ "I=h*(y[0]+2*y[1]+2*y[2]+2*y[3]+y[4])/2+(h**2)/2+(h**2)/12+(h**4)/720\n",
+ "print \" the value of integrand with h=%f is : %f\" %(h,I)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the value of integrand with h=0.785398 is : 0.837331\n",
+ "\n",
+ "\n",
+ " the value of integrand with h=0.392699 is : 1.077106\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.17:pg-236"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# example 6.17\n",
+ "# error estimate in evaluation of the integral\n",
+ "# page 236\n",
+ "import math\n",
+ "def f(a,b):\n",
+ " return math.cos(a)+4*math.cos((a+b)/2)+math.cos(b)\n",
+ "a=0\n",
+ "b=math.pi/2\n",
+ "c=math.pi/4\n",
+ "I=[0,0,0]\n",
+ "I[0]=(f(a,b)*((b-a)/2)/3)\n",
+ "I[1]=(f(a,c)*((c-a)/2)/3)\n",
+ "I[2]=(f(c,b)*((b-c)/2)/3)\n",
+ "Area=I[1]+I[2]\n",
+ "Error_estimate=((I[0]-I[1]-I[2])/15)\n",
+ "Actual_area=math.sin(math.pi/2)-math.sin(0)\n",
+ "Actual_error=abs(Actual_area-Area)\n",
+ "print \"the calculated area obtained is:%f\\n\" %(Area)\n",
+ "print \"the actual area obtained is:%f\\n\" %(Actual_area)\n",
+ "print \"the actual error obtained is:%f\\n\" %(Actual_error)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the calculated area obtained is:1.000135\n",
+ "\n",
+ "the actual area obtained is:1.000000\n",
+ "\n",
+ "the actual error obtained is:0.000135\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.18:pg-237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# example 6.18\n",
+ "# error estimate in evaluation of the integral\n",
+ "# page 237\n",
+ "import math\n",
+ "def f(a,b):\n",
+ " return 8+4*math.sin(a)+4*(8+4*math.sin((a+b)/2))+8+4*math.sin(b)\n",
+ "a=0\n",
+ "b=math.pi/2\n",
+ "c=math.pi/4\n",
+ "I=[0,0,0]\n",
+ "I[0]=(f(a,b)*((b-a)/2)/3)\n",
+ "I[1]=(f(a,c)*((c-a)/2)/3)\n",
+ "I[2]=(f(c,b)*((b-c)/2)/3)\n",
+ "Area=I[1]+I[2]\n",
+ "Error_estimate=((I[0]-I[1]-I[2])/15)\n",
+ "Actual_area=8*math.pi/2+4*math.sin(math.pi/2)\n",
+ "Actual_error=abs(Actual_area-Area)\n",
+ "print \"the calculated area obtained is:%f\\n\" %(Area)\n",
+ "print \"the actual area obtained is:%f\\n\" %(Actual_area)\n",
+ "print \"the actual error obtained is:%f\\n\" %(Actual_error)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the calculated area obtained is:16.566909\n",
+ "\n",
+ "the actual area obtained is:16.566371\n",
+ "\n",
+ "the actual error obtained is:0.000538\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.19:pg-242"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#gauss' formula\n",
+ "#example 6.19\n",
+ "#page 242\n",
+ "u=[-0.86113, -0.33998, 0.33998, 0.86113]\n",
+ "W=[0.34785, 0.65214, 0.65214, 0.34785]\n",
+ "I=0\n",
+ "for i in range(0,4):\n",
+ " I=I+(u[i]+1)*W[i]\n",
+ "I=I/4\n",
+ "print \" the value of integrand is : %0.5f\" %(I)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " the value of integrand is : 0.49999\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.20:pg-247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6.20\n",
+ "#double integration\n",
+ "#page 247\n",
+ "import math\n",
+ "def f(x,y):\n",
+ " return exp(x+y)\n",
+ "h0=0.5\n",
+ "k0=0.5\n",
+ "x=[[0,0,0],[0,0,0],[0,0,0]]\n",
+ "h=[0, 0.5, 1]\n",
+ "k=[0, 0.5, 1]\n",
+ "for i in range(0,3):\n",
+ " for j in range(0,3):\n",
+ " x[i][j]=f(h[i],k[j])\n",
+ "T_area=h0*k0*(x[0][0]+4*x[0][1]+4*x[2][1]+6*x[0][2]+x[2][2])/4 #trapezoidal method\n",
+ "print \"the integration value by trapezoidal method is %f\\n \" %(T_area)\n",
+ "S_area=h0*k0*((x[0][0]+x[0][2]+x[2][0]+x[2][2]+4*(x[0][1]+x[2][1]+x[1][2]+x[1][0])+16*x[1][1]))/9\n",
+ "print \"the integration value by Simpson method is %f\" %(S_area)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the integration value by trapezoidal method is 3.076274\n",
+ " \n",
+ "the integration value by Simpson method is 2.954484\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter7_1.ipynb b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter7_1.ipynb
new file mode 100644
index 00000000..235166ee
--- /dev/null
+++ b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter7_1.ipynb
@@ -0,0 +1,761 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:5bfd3c7c4de8a3c81a889273c59a61a612b4e62a4dc20f2d2db4b70b66a7b2dc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter07:Numerical Linear Algebra"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.1:pg-256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7.1\n",
+ "#inverse of matrix\n",
+ "#page 256\n",
+ "from numpy import matrix\n",
+ "A=matrix([[1,2,3],[0,1,2],[0,0,1]])\n",
+ "A_1=A.I #inverse of matrix\n",
+ "print A_1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "[[ 1. -2. 1.]\n",
+ " [ 0. 1. -2.]\n",
+ " [ 0. 0. 1.]]\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex-7.2:pg-259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7.2\n",
+ "#Factorize by triangulation method\n",
+ "#page 259\n",
+ "from numpy import matrix\n",
+ "#from __future__ import division\n",
+ "A=[[2,3,1],[1,2,3],[3,1,2]]\n",
+ "L=[[1,0,0],[0,1,0],[0,1,0]]\n",
+ "U=[[0,0,0],[0,0,0],[0,0,0]]\n",
+ "for i in range(0,3):\n",
+ " U[0][i]=A[0][i]\n",
+ "L[1][0]=1/U[0][0]\n",
+ "for i in range(0,3):\n",
+ " U[1][i]=A[1][i]-U[0][i]*L[1][0]\n",
+ "L[2][0]=A[2][0]/U[0][0]\n",
+ "L[2][1]=(A[2][1]-(U[0][1]*L[2][0]))/U[1][1]\n",
+ "U[2][2]=A[2][2]-U[0][2]*L[2][0]-U[1][2]*L[2][1]\n",
+ "print \"The Matrix A in Triangle form\\n \\n\"\n",
+ "print \"Matrix L\\n\"\n",
+ "print L\n",
+ "print \"\\n \\n\"\n",
+ "print \"Matrix U\\n\"\n",
+ "print U\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Matrix A in Triangle form\n",
+ " \n",
+ "\n",
+ "Matrix L\n",
+ "\n",
+ "[[1, 0, 0], [0.5, 1, 0], [1.5, -7.0, 0]]\n",
+ "\n",
+ " \n",
+ "\n",
+ "Matrix U\n",
+ "\n",
+ "[[2, 3, 1], [0.0, 0.5, 2.5], [0, 0, 18.0]]\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.3:pg-262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7.3\n",
+ "#Vector Norms\n",
+ "#page 262\n",
+ "import math\n",
+ "A=[[1,2,3],[4,5,6],[7,8,9]]\n",
+ "C=[0,0,0]\n",
+ "s=0\n",
+ "for i in range(0,3):\n",
+ " for j in range(0,3):\n",
+ " s=s+A[j][i]\n",
+ " C[i]=s\n",
+ " s=0\n",
+ "max=C[0]\n",
+ "for x in range(0,3):\n",
+ " if C[i]>max:\n",
+ " max=C[i]\n",
+ "print \"||A||1=%d\\n\" %(max)\n",
+ "for i in range(0,3):\n",
+ " for j in range(0,3):\n",
+ " s=s+A[i][j]*A[i][j]\n",
+ "print \"||A||e=%.3f\\n\" %(math.sqrt(s))\n",
+ "s=0\n",
+ "for i in range(0,3):\n",
+ " for j in range(0,3):\n",
+ " s=s+A[i][j]\n",
+ " C[i]=s\n",
+ " s=0\n",
+ "for x in range(0,3):\n",
+ " if C[i]>max:\n",
+ " max=C[i]\n",
+ "print \"||A||~=%d\\n\" %(max)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "||A||1=18\n",
+ "\n",
+ "||A||e=16.882\n",
+ "\n",
+ "||A||~=24\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.4:pg-266"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7.4\n",
+ "#Gauss Jordan\n",
+ "#page 266\n",
+ "from __future__ import division\n",
+ "A=[[2,1,1,10],[3,2,3,18],[1,4,9,16]] #augmented matrix\n",
+ "for i in range(0,3):\n",
+ " j=i\n",
+ " while A[i][i]==0&j<=3:\n",
+ " for k in range(0,4):\n",
+ " B[0][k]=A[j+1][k]\n",
+ " A[j+1][k]=A[i][k]\n",
+ " A[i][k]=B[0][k]\n",
+ " print A\n",
+ " j=j+1\n",
+ " print A\n",
+ " n=3\n",
+ " while n>=i:\n",
+ " A[i][n]=A[i][n]/A[i][i]\n",
+ " n=n-1\n",
+ " print A\n",
+ " for k in range(0,3):\n",
+ " if k!=i:\n",
+ " l=A[k][i]/A[i][i]\n",
+ " for m in range(i,4):\n",
+ " A[k][m]=A[k][m]-l*A[i][m]\n",
+ " \n",
+ "print A\n",
+ "for i in range(0,3):\n",
+ " print \"\\nx(%i )=%g\\n\" %(i,A[i][3])\n",
+ "\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "[[2, 1, 1, 10], [3, 2, 3, 18], [1, 4, 9, 16]]\n",
+ "[[1.0, 0.5, 0.5, 5.0], [3, 2, 3, 18], [1, 4, 9, 16]]\n",
+ "[[1.0, 0.5, 0.5, 5.0], [0.0, 0.5, 1.5, 3.0], [0.0, 3.5, 8.5, 11.0]]\n",
+ "[[1.0, 0.5, 0.5, 5.0], [0.0, 1.0, 3.0, 6.0], [0.0, 3.5, 8.5, 11.0]]\n",
+ "[[1.0, 0.0, -1.0, 2.0], [0.0, 1.0, 3.0, 6.0], [0.0, 0.0, -2.0, -10.0]]\n",
+ "[[1.0, 0.0, -1.0, 2.0], [0.0, 1.0, 3.0, 6.0], [0.0, 0.0, 1.0, 5.0]]\n",
+ "[[1.0, 0.0, 0.0, 7.0], [0.0, 1.0, 0.0, -9.0], [0.0, 0.0, 1.0, 5.0]]\n",
+ "\n",
+ "x(0 )=7\n",
+ "\n",
+ "\n",
+ "x(1 )=-9\n",
+ "\n",
+ "\n",
+ "x(2 )=5\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.8:pg-273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#LU decomposition method\n",
+ "#example 7.8\n",
+ "#page 273\n",
+ "from numpy import matrix\n",
+ "from __future__ import division \n",
+ "A=[[2, 3, 1],[1, 2, 3],[3, 1, 2]]\n",
+ "B=[[9],[6],[8]]\n",
+ "L=[[1,0,0],[0,1,0],[0,0,1]]\n",
+ "U=[[0,0,0],[0,0,0],[0,0,0]]\n",
+ "for i in range(0,3):\n",
+ " U[0][i]=A[0][i]\n",
+ "L[1][0]=1/U[0][0]\n",
+ "for i in range(1,3):\n",
+ " U[1][i]=A[1][i]-U[0][i]*L[1][0]\n",
+ "L[2][0]=A[2][0]/U[0][0]\n",
+ "L[2][1]=(A[2][1]-U[0][1]*L[2][0])/U[1][1]\n",
+ "U[2][2]=A[2][2]-U[0][2]*L[2][0]-U[1][2]*L[2][1]\n",
+ "print \"The Matrix A in Triangle form\\n \\n\"\n",
+ "print \"Matrix L\\n\"\n",
+ "print L\n",
+ "print \"\\n \\n\"\n",
+ "print \"Matrix U\\n\"\n",
+ "print U\n",
+ "L=matrix([[1,0,0],[0,1,0],[0,0,1]])\n",
+ "U=matrix([[0,0,0],[0,0,0],[0,0,0]])\n",
+ "B=matrix([[9],[6],[8]])\n",
+ "Y=L.I*B\n",
+ "X=matrix([[1.944444],[1.611111],[0.277778]])\n",
+ "print \"the values of x=%f,y=%f,z=%f\" %(X[0][0],X[1][0],X[2][0])\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Matrix A in Triangle form\n",
+ " \n",
+ "\n",
+ "Matrix L\n",
+ "\n",
+ "[[1, 0, 0], [0.5, 1, 0], [1.5, -7.0, 1]]\n",
+ "\n",
+ " \n",
+ "\n",
+ "Matrix U\n",
+ "\n",
+ "[[2, 3, 1], [0, 0.5, 2.5], [0, 0, 18.0]]\n",
+ "the values of x=1.944444,y=1.611111,z=0.277778\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.9:pg-276"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ill conditioned linear systems\n",
+ "#example 7.9\n",
+ "#page 276\n",
+ "from numpy import matrix\n",
+ "import math\n",
+ "A=matrix([[2, 1],[2,1.01]])\n",
+ "B=matrix([[2],[2.01]])\n",
+ "X=A.I*B\n",
+ "Ae=0\n",
+ "Ae=math.sqrt(Ae)\n",
+ "inv_A=A.I\n",
+ "invA_e=0\n",
+ "invA_e=math.sqrt(invA_e)\n",
+ "C=A_e*invA_e\n",
+ "k=2\n",
+ "if k<1:\n",
+ " print \"the fuction is ill conditioned\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.10:pg-277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ill condiioned linear systems\n",
+ "#example 7.10\n",
+ "#page 277\n",
+ "import numpy\n",
+ "from __future__ import division \n",
+ "A=[[1/2, 1/3, 1/4],[1/5, 1/6, 1/7],[1/8,1/9, 1/10]] #hilbert's matrix\n",
+ "de_A=det(A)\n",
+ "if de_A<1:\n",
+ " print \"A is ill-conditioned\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A is ill-conditioned\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.11:pg-277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ill conditioned linear system\n",
+ "#example 7.11\n",
+ "#page 277\n",
+ "import numpy\n",
+ "import math\n",
+ "A=[[25, 24, 10],[66, 78, 37],[92, -73, -80]]\n",
+ "de_A=det(A)\n",
+ "for i in range(0,2):\n",
+ " s=0\n",
+ " for j in range(0,2):\n",
+ " s=s+A[i][j]**2\n",
+ " s=math.sqrt(s)\n",
+ " k=de_A/s\n",
+ "if k<1:\n",
+ " print\" the fuction is ill conditioned\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " the fuction is ill conditioned\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.12:pg-278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ill-conditioned system\n",
+ "#example 7.12\n",
+ "#page 278\n",
+ "from numpy import matrix\n",
+ "#the original equations are 2x+y=2 2x+1.01y=2.01\n",
+ "A1=matrix([[2, 1],[2, 1.01]])\n",
+ "C1=matrix([[2],[2.01]])\n",
+ "x1=1\n",
+ "y1=1 # approximate values\n",
+ "A2=matrix([[2, 1],[2, 1.01]])\n",
+ "C2=matrix([[3],[3.01]])\n",
+ "C=C1-C2\n",
+ "X=A1.I*C\n",
+ "x=X[0][0]+x1\n",
+ "y=X[1][0]+y1\n",
+ "print \"the exact solution is X=%f \\t Y=%f\" %(x,y)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the exact solution is X=0.500000 \t Y=1.000000\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.14:pg-282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#solution of equations by iteration method\n",
+ "#example 7.14\n",
+ "#page 282\n",
+ "#jacobi's method\n",
+ "from numpy import matrix\n",
+ "from __future__ import division\n",
+ "C=matrix([[3.333],[1.5],[1.4]])\n",
+ "X=matrix([[3.333],[1.5],[1.4]])\n",
+ "B=matrix([[0, -0.1667, -0.1667],[-0.25, 0, 0.25],[-0.2, 0.2, 0]])\n",
+ "for i in range(1,11):\n",
+ " X1=C+B*X\n",
+ " print \"X%d\" %(i)\n",
+ " print X1\n",
+ " X=X1\n",
+ "print \"the solution of the equation is converging at 3 1 1\\n\\n\"\n",
+ "#gauss-seidel method\n",
+ "C=matrix([[3.333],[1.5],[1.4]])\n",
+ "X=matrix([[3.333],[1.5],[1.4]])\n",
+ "B=matrix([[0, -0.1667, -0.1667],[-0.25, 0, 0.25],[-0.2, 0.2, 0]])\n",
+ "X1=C+B*X\n",
+ "x=X1[0][0]\n",
+ "y=X1[1][0]\n",
+ "z=X1[2][0]\n",
+ "for i in range(0,5):\n",
+ " x=3.333-0.1667*y-0.1667*z\n",
+ " y=1.5-0.25*x+0.25*z\n",
+ " z=1.4-0.2*x+0.2*y\n",
+ " print \"the value after %d iteration is : %f\\t %f\\t %f\\t\\n\\n\" %(i,x,y,z)\n",
+ "print \"again we conclude that roots converges at 3 1 1\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "X1\n",
+ "[[ 2.84957]\n",
+ " [ 1.01675]\n",
+ " [ 1.0334 ]]\n",
+ "X2\n",
+ "[[ 2.99124 ]\n",
+ " [ 1.0459575]\n",
+ " [ 1.033436 ]]\n",
+ "X3\n",
+ "[[ 2.9863651]\n",
+ " [ 1.010549 ]\n",
+ " [ 1.0109435]]\n",
+ "X4\n",
+ "[[ 2.9960172 ]\n",
+ " [ 1.0061446 ]\n",
+ " [ 1.00483678]]\n",
+ "X5\n",
+ "[[ 2.9977694 ]\n",
+ " [ 1.00220489]\n",
+ " [ 1.00202548]]\n",
+ "X6\n",
+ "[[ 2.9988948 ]\n",
+ " [ 1.00106402]\n",
+ " [ 1.0008871 ]]\n",
+ "X7\n",
+ "[[ 2.99927475]\n",
+ " [ 1.00049808]\n",
+ " [ 1.00043384]]\n",
+ "X8\n",
+ "[[ 2.99944465]\n",
+ " [ 1.00028977]\n",
+ " [ 1.00024467]]\n",
+ "X9\n",
+ "[[ 2.99951091]\n",
+ " [ 1.0002 ]\n",
+ " [ 1.00016902]]\n",
+ "X10\n",
+ "[[ 2.99953848]\n",
+ " [ 1.00016453]\n",
+ " [ 1.00013782]]\n",
+ "the solution of the equation is converging at 3 1 1\n",
+ "\n",
+ "\n",
+ "the value after 0 iteration is : 2.991240\t 1.010540\t 1.003860\t\n",
+ "\n",
+ "\n",
+ "the value after 1 iteration is : 2.997200\t 1.001665\t 1.000893\t\n",
+ "\n",
+ "\n",
+ "the value after 2 iteration is : 2.999174\t 1.000430\t 1.000251\t\n",
+ "\n",
+ "\n",
+ "the value after 3 iteration is : 2.999486\t 1.000191\t 1.000141\t\n",
+ "\n",
+ "\n",
+ "the value after 4 iteration is : 2.999545\t 1.000149\t 1.000121\t\n",
+ "\n",
+ "\n",
+ "again we conclude that roots converges at 3 1 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.15:pg-285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#eigenvalues and eigenvectors\n",
+ "#example 7.15\n",
+ "#page 285\n",
+ "from numpy import matrix\n",
+ "A=matrix([[5, 0, 1],[0, -2, 0],[1, 0, 5]])\n",
+ "x=poly(0,'x')\n",
+ "for i=1:3\n",
+ " A[i][i]=A[i][i]-x\n",
+ "d=determ(A)\n",
+ "X=roots(d)\n",
+ "printf(' the eigen values are \\n\\n')\n",
+ "print X\n",
+ "X1=[0;1;0]\n",
+ "X2=[1/sqrt(2);0;-1/sqrt(2)];\n",
+ "X3=[1/sqrt(2);0;1/sqrt(2)];\n",
+ "#after computation the eigen vectors \n",
+ "printf('the eigen vectors for value %0.2g is',X(3));\n",
+ "disp(X1);\n",
+ "printf('the eigen vectors for value %0.2g is',X(2));\n",
+ "disp(X2);\n",
+ "printf('the eigen vectors for value %0.2g is',X(1));\n",
+ "disp(X3);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.16:pg-286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#largest eigenvalue and eigenvectors\n",
+ "#example 7.16\n",
+ "#page 286\n",
+ "from numpy import matrix\n",
+ "A=matrix([[1,6,1],[1,2,0],[0,0,3]])\n",
+ "I=matrix([[1],[0],[0]]) #initial eigen vector\n",
+ "X0=A*I\n",
+ "print \"X0=\"\n",
+ "print X0\n",
+ "X1=A*X0\n",
+ "print \"X1=\"\n",
+ "print X1\n",
+ "X2=A*X1\n",
+ "print \"X2=\"\n",
+ "print X2\n",
+ "X3=X2/3\n",
+ "print \"X3=\"\n",
+ "print X3\n",
+ "X4=A*X3\n",
+ "X5=X4/4\n",
+ "print \"X5=\"\n",
+ "print X5\n",
+ "X6=A*X5;\n",
+ "X7=X6/(4*4)\n",
+ "print \"X7=\"\n",
+ "print X7\n",
+ "print \"as it can be seen that highest eigen value is 4 \\n\\n the eigen vector is %d %d %d\" %(X7[0],X7[1],X7[2])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "X0=\n",
+ "[[1]\n",
+ " [1]\n",
+ " [0]]\n",
+ "X1=\n",
+ "[[7]\n",
+ " [3]\n",
+ " [0]]\n",
+ "X2=\n",
+ "[[25]\n",
+ " [13]\n",
+ " [ 0]]\n",
+ "X3=\n",
+ "[[8]\n",
+ " [4]\n",
+ " [0]]\n",
+ "X5=\n",
+ "[[8]\n",
+ " [4]\n",
+ " [0]]\n",
+ "X7=\n",
+ "[[2]\n",
+ " [1]\n",
+ " [0]]\n",
+ "as it can be seen that highest eigen value is 4 \n",
+ "\n",
+ " the eigen vector is 2 1 0\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.17:pg-290"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#housrholder's method\n",
+ "#example 7.17\n",
+ "#page 290\n",
+ "from numpy import matrix\n",
+ "from __future__ import division\n",
+ "import math\n",
+ "A=[[1, 3, 4],[3, 2, -1],[4, -1, 1]]\n",
+ "print A[1][1]\n",
+ "S=math.sqrt(A[0][1]**2+A[0][2]**2)\n",
+ "v2=math.sqrt((1+A[0][1]/S)/2)\n",
+ "v3=A[0][2]/(2*S)\n",
+ "v3=v3/v2\n",
+ "V=matrix([[0],[v2],[v3]])\n",
+ "P1=matrix([[1, 0, 0],[0, 1-2*v2**2, -2*v2*v3],[0, -2*v2*v3, 1-2*v3**2]])\n",
+ "A1=P1*A*P1\n",
+ "print \"the reduced matrix is \\n\\n\"\n",
+ "print A1\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n",
+ "the reduced matrix is \n",
+ "\n",
+ "\n",
+ "[[ 1.00000000e+00 -5.00000000e+00 -8.88178420e-16]\n",
+ " [ -5.00000000e+00 4.00000000e-01 2.00000000e-01]\n",
+ " [ -8.88178420e-16 2.00000000e-01 2.60000000e+00]]\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter8_1.ipynb b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter8_1.ipynb
new file mode 100644
index 00000000..001e1904
--- /dev/null
+++ b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter8_1.ipynb
@@ -0,0 +1,1098 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9931680bf490e72be52e25ee57fcec17ccbbf7d8a2c5f86513644cb4dda66cab"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter08:Numerical Solution of Ordinary Differential Equations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.1:pg-304"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8.1\n",
+ "#taylor's method\n",
+ "#page 304\n",
+ "import math\n",
+ "f=1 #value of function at 0\n",
+ "def f1(x):\n",
+ " return x-f**2\n",
+ "def f2(x):\n",
+ " return 1-2*f*f1(x)\n",
+ "def f3(x):\n",
+ " return -2*f*f2(x)-2*f2(x)**2\n",
+ "def f4(x):\n",
+ " return -2*f*f3(x)-6*f1(x)*f2(x)\n",
+ "def f5(x):\n",
+ " return -2*f*f4(x)-8*f1(x)*f3(x)-6*f2(x)**2\n",
+ "h=0.1 #value at 0.1\n",
+ "k=f \n",
+ "for j in range(1,5):\n",
+ " if j==1:\n",
+ " k=k+h*f1(0);\n",
+ " elif j==2:\n",
+ " k=k+(h**j)*f2(0)/math.factorial(j)\n",
+ " elif j ==3:\n",
+ " k=k+(h**j)*f3(0)/math.factorial(j)\n",
+ " elif j ==4:\n",
+ " k=k+(h**j)*f4(0)/math.factorial(j)\n",
+ " elif j==5:\n",
+ " k=k+(h**j)*f5(0)/math.factorial(j)\n",
+ "print \"the value of the function at %.2f is :%0.4f\" %(h,k)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the value of the function at 0.10 is :0.9113\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.2:pg-304"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#taylor's method\n",
+ "#example 8.2\n",
+ "#page 304\n",
+ "import math\n",
+ "f=1 #value of function at 0\n",
+ "f1=0 #value of first derivatie at 0\n",
+ "def f2(x):\n",
+ " return x*f1+f\n",
+ "def f3(x):\n",
+ " return x*f2(x)+2*f1\n",
+ "def f4(x):\n",
+ " return x*f3(x)+3*f2(x)\n",
+ "def f5(x):\n",
+ " return x*f4(x)+4*f3(x)\n",
+ "def f6(x):\n",
+ " return x*f5(x)+5*f4(x)\n",
+ "h=0.1 #value at 0.1\n",
+ "k=f\n",
+ "for j in range(1,6):\n",
+ " if j==1:\n",
+ " k=k+h*f1\n",
+ " elif j==2:\n",
+ " k=k+(h**j)*f2(0)/math.factorial(j)\n",
+ " elif j ==3:\n",
+ " k=k+(h**j)*f3(0)/math.factorial(j)\n",
+ " elif j ==4:\n",
+ " k=k+(h**j)*f4(0)/math.factorial(j)\n",
+ " elif j==5:\n",
+ " k=k+(h**j)*f5(0)/math.factorial(j)\n",
+ " else:\n",
+ " k=k+(h**j)*f6(0)/math.factorial (j)\n",
+ "print \"the value of the function at %.2f is :%0.7f\" %(h,k)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the value of the function at 0.10 is :1.0050125\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.3:pg-306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8.3\n",
+ "#picard's method\n",
+ "#page 306\n",
+ "from scipy import integrate\n",
+ "from __future__ import division\n",
+ "def f(x,y):\n",
+ " return x+y**2\n",
+ "y=[0,0,0,0]\n",
+ "y[1]=1\n",
+ "for i in range(1,3):\n",
+ " a=integrate.quad(lambda x:x+y[i]**2,0,i/10)\n",
+ " y[i+1]=a[0]+y[1]\n",
+ " print \"\\n y (%g) = %g\\n\" %(i/10,y[i+1])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " y (0.1) = 1.105\n",
+ "\n",
+ "\n",
+ " y (0.2) = 1.26421\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.4:pg-306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8.4\n",
+ "#picard's method\n",
+ "#page 306\n",
+ "from scipy import integrate\n",
+ "y=[0,0,0,0] #value at 0\n",
+ "c=0.25\n",
+ "for i in range(0,3):\n",
+ " a=integrate.quad(lambda x:(x**2/(y[i]**2+1)),0,c)\n",
+ " y[i+1]=y[0]+a[0]\n",
+ " print \"\\n y(%0.2f) = %g\\n\" %(c,y[i+1])\n",
+ " c=c*2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " y(0.25) = 0.00520833\n",
+ "\n",
+ "\n",
+ " y(0.50) = 0.0416655\n",
+ "\n",
+ "\n",
+ " y(1.00) = 0.332756\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.5:pg-308"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8.5\n",
+ "#euler's method\n",
+ "#page 308\n",
+ "def f(y):\n",
+ " return -1*y\n",
+ "y=[0,0,0,0,0]\n",
+ "y[0]=1 #value at 0\n",
+ "h=0.01\n",
+ "c=0.01\n",
+ "for i in range(0,4):\n",
+ " y[i+1]=y[i]+h*f(y[i])\n",
+ " print \"\\ny(%g)=%g\\n\" %(c,y[i+1])\n",
+ " c=c+0.01\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "y(0.01)=0.99\n",
+ "\n",
+ "\n",
+ "y(0.02)=0.9801\n",
+ "\n",
+ "\n",
+ "y(0.03)=0.970299\n",
+ "\n",
+ "\n",
+ "y(0.04)=0.960596\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.6:pg-308"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8.6\n",
+ "#error estimates in euler's \n",
+ "#page 308\n",
+ "from __future__ import division\n",
+ "def f(y):\n",
+ " return -1*y\n",
+ "y=[0,0,0,0,0]\n",
+ "L=[0,0,0,0,0]\n",
+ "e=[0,0,0,0,0]\n",
+ "y[0]=1 #value at 0\n",
+ "h=0.01\n",
+ "c=0.01;\n",
+ "for i in range(0,4):\n",
+ " y[i+1]=y[i]+h*f(y[i])\n",
+ " print \"\\ny(%g)=%g\\n\" %(c,y[i+1])\n",
+ " c=c+0.01\n",
+ "for i in range(0,4):\n",
+ " L[i]=abs(-(1/2)*(h**2)*y[i+1])\n",
+ " print \"L(%d) =%f\\n\\n\" %(i,L[i])\n",
+ "e[0]=0\n",
+ "for i in range(0,4):\n",
+ " e[i+1]=abs(y[1]*e[i]+L[0])\n",
+ " print \"e(%d)=%f\\n\\n\" %(i,e[i])\n",
+ "Actual_value=math.exp(-0.04)\n",
+ "Estimated_value=y[4]\n",
+ "err=abs(Actual_value-Estimated_value)\n",
+ "if err<e[4]:\n",
+ " print \"VERIFIED\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "y(0.01)=0.99\n",
+ "\n",
+ "\n",
+ "y(0.02)=0.9801\n",
+ "\n",
+ "\n",
+ "y(0.03)=0.970299\n",
+ "\n",
+ "\n",
+ "y(0.04)=0.960596\n",
+ "\n",
+ "L(0) =0.000050\n",
+ "\n",
+ "\n",
+ "L(1) =0.000049\n",
+ "\n",
+ "\n",
+ "L(2) =0.000049\n",
+ "\n",
+ "\n",
+ "L(3) =0.000048\n",
+ "\n",
+ "\n",
+ "e(0)=0.000000\n",
+ "\n",
+ "\n",
+ "e(1)=0.000050\n",
+ "\n",
+ "\n",
+ "e(2)=0.000099\n",
+ "\n",
+ "\n",
+ "e(3)=0.000147\n",
+ "\n",
+ "\n",
+ "VERIFIED\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.7:pg-310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8.7\n",
+ "#modified euler's method\n",
+ "#page 310\n",
+ "h=0.05\n",
+ "f=1\n",
+ "def f1(x,y):\n",
+ " return x**2+y\n",
+ "x=[0,0.05,0.1]\n",
+ "y1=[0,0,0,0]\n",
+ "y2=[0,0,0,0]\n",
+ "y1[0]=f+h*f1(x[0],f);\n",
+ "y1[1]=f+h*(f1(x[0],f)+f1(x[1],y1[0]))/2\n",
+ "y1[2]=f+h*(f1(x[0],f)+f1(x[2],y1[1]))/2\n",
+ "y2[0]=y1[1]+h*f1(x[1],y1[1])\n",
+ "y2[1]=y1[1]+h*(f1(x[1],y1[1])+f1(x[2],y2[0]))/2\n",
+ "y2[2]=y1[1]+h*(f1(x[1],y1[1])+f1(x[2],y2[1]))/2\n",
+ "print \"y1(0)\\t y1(1)\\t y1(2)\\t y2(0)\\t y2(1)\\t y3(2)\\n\\n\"\n",
+ "print \" %f\\t %f\\t %f\\t %f\\t %f\\t %f\\n\" %(y1[0],y1[1],y1[2],y2[0],y2[1],y2[2])\n",
+ "print \"\\n\\n the value of y at %0.2f is : %0.4f\" %(x[2],y2[2])\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "y1(0)\t y1(1)\t y1(2)\t y2(0)\t y2(1)\t y3(2)\n",
+ "\n",
+ "\n",
+ " 1.050000\t 1.051313\t 1.051533\t 1.104003\t 1.105508\t 1.105546\n",
+ "\n",
+ "\n",
+ "\n",
+ " the value of y at 0.10 is : 1.1055\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.8:pg-313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8.8\n",
+ "#runge-kutta formula\n",
+ "#page 313\n",
+ "from __future__ import division\n",
+ "def f(x,y):\n",
+ " return y-x\n",
+ "y=2\n",
+ "x=0\n",
+ "h=0.1\n",
+ "K1=h*f(x,y)\n",
+ "K2=h*f(x+h,y+K1)\n",
+ "y1=y+( K1+K2)/2\n",
+ "print \"\\n y(0.1) by second order runge kutta method:%0.4f\" %(y1)\n",
+ "y=y1\n",
+ "x=0.1\n",
+ "h=0.1\n",
+ "K1=h*f(x,y)\n",
+ "K2=h*f(x+h,y+K1)\n",
+ "y1=y+( K1+K2)/2\n",
+ "print \"\\n y(0.2) by second order runge kutta method:%0.4f\" %(y1)\n",
+ "y=2\n",
+ "x=0\n",
+ "h=0.1\n",
+ "K1=h*f(x,y)\n",
+ "K2=h*f(x+h/2,y+K1/2)\n",
+ "K3=h*f(x+h/2,y+K2/2)\n",
+ "K4=h*f(x+h,y+K3)\n",
+ "y1=y+(K1+2*K2+2*K3+K4)/6\n",
+ "print \"\\n y(0.1) by fourth order runge kutta method:%0.4f\" %(y1)\n",
+ "y=y1\n",
+ "x=0.1\n",
+ "h=0.1\n",
+ "K1=h*f(x,y)\n",
+ "K2=h*f(x+h/2,y+K1/2)\n",
+ "K3=h*f(x+h/2,y+K2/2)\n",
+ "K4=h*f(x+h,y+K3)\n",
+ "y1=y+(K1+2*K2+2*K3+K4)/6\n",
+ "print \"\\n y(0.1) by fourth order runge kutta method:%0.4f \" %(y1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " y(0.1) by second order runge kutta method:2.2050\n",
+ "\n",
+ " y(0.2) by second order runge kutta method:2.4210\n",
+ "\n",
+ " y(0.1) by fourth order runge kutta method:2.2052\n",
+ "\n",
+ " y(0.1) by fourth order runge kutta method:2.4214 \n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.9:pg-315"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8.9\n",
+ "#runge kutta method\n",
+ "#page 315\n",
+ "from __future__ import division\n",
+ "def f(x,y):\n",
+ " return 1+y**2\n",
+ "y=0\n",
+ "x=0\n",
+ "h=0.2\n",
+ "K1=h*f(x,y)\n",
+ "K2=h*f(x+h/2,y+K1/2)\n",
+ "K3=h*f(x+h/2,y+K2/2)\n",
+ "K4=h*f(x+h,y+K3)\n",
+ "y1=y+(K1+2*K2+2*K3+K4)/6\n",
+ "print \"\\n y(0.2) by fourth order runge kutta method:%0.4f\" %(y1)\n",
+ "y=y1\n",
+ "x=0.2\n",
+ "h=0.2\n",
+ "K1=h*f(x,y)\n",
+ "K2=h*f(x+h/2,y+K1/2)\n",
+ "K3=h*f(x+h/2,y+K2/2)\n",
+ "K4=h*f(x+h,y+K3)\n",
+ "y1=y+(K1+2*K2+2*K3+K4)/6\n",
+ "print \"\\n y(0.4) by fourth order runge kutta method:%0.4f\" %(y1)\n",
+ "y=2\n",
+ "x=0\n",
+ "h=0.1\n",
+ "y=y1\n",
+ "x=0.4\n",
+ "h=0.2\n",
+ "K1=h*f(x,y)\n",
+ "K2=h*f(x+h/2,y+K1/2)\n",
+ "K3=h*f(x+h/2,y+K2/2)\n",
+ "K4=h*f(x+h,y+K3)\n",
+ "y1=y+(K1+2*K2+2*K3+K4)/6\n",
+ "print \"\\n y(0.6) by fourth order runge kutta method:%0.4f\" %(y1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " y(0.2) by fourth order runge kutta method:0.2027\n",
+ "\n",
+ " y(0.4) by fourth order runge kutta method:0.4228\n",
+ "\n",
+ " y(0.6) by fourth order runge kutta method:0.6841\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.10:pg-315"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8.10\n",
+ "#initial value problems\n",
+ "#page 315\n",
+ "from __future__ import division\n",
+ "def f1(x,y):\n",
+ " return 3*x+y/2\n",
+ "y=[1,0,0]\n",
+ "h=0.1\n",
+ "c=0\n",
+ "for i in range(0,2):\n",
+ " y[i+1]=y[i]+h*f1(c,y[i])\n",
+ " print \"\\ny(%g)=%g\\n\" %(c,y[i])\n",
+ " c=c+0.1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "y(0)=1\n",
+ "\n",
+ "\n",
+ "y(0.1)=1.05\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.11:pg-316"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8.11\n",
+ "#adam's moulton method\n",
+ "#page 316\n",
+ "def f(x,y):\n",
+ " return 1+y**2\n",
+ "y=0\n",
+ "x=0\n",
+ "h=0.2\n",
+ "f1=[0,0,0]\n",
+ "K1=h*f(x,y)\n",
+ "K2=h*f(x+h/2,y+K1/2)\n",
+ "K3=h*f(x+h/2,y+K2/2)\n",
+ "K4=h*f(x+h,y+K3)\n",
+ "y1=y+(K1+2*K2+2*K3+K4)/6\n",
+ "f1[0]=y1\n",
+ "print \"\\n y(0.2) by fourth order runge kutta method:%0.4f\" %(y1)\n",
+ "y=y1\n",
+ "x=0.2\n",
+ "h=0.2\n",
+ "K1=h*f(x,y)\n",
+ "K2=h*f(x+h/2,y+K1/2)\n",
+ "K3=h*f(x+h/2,y+K2/2)\n",
+ "K4=h*f(x+h,y+K3)\n",
+ "y1=y+(K1+2*K2+2*K3+K4)/6\n",
+ "f1[1]=y1\n",
+ "print \"\\n y(0.4) by fourth order runge kutta method:%0.4f\" %(y1)\n",
+ "y=2\n",
+ "x=0\n",
+ "h=0.1\n",
+ "y=y1\n",
+ "x=0.4\n",
+ "h=0.2\n",
+ "K1=h*f(x,y)\n",
+ "K2=h*f(x+h/2,y+K1/2)\n",
+ "K3=h*f(x+h/2,y+K2/2)\n",
+ "K4=h*f(x+h,y+K3)\n",
+ "y1=y+(K1+2*K2+2*K3+K4)/6\n",
+ "f1[2]=y1\n",
+ "print \"\\n y(0.6) by fourth order runge kutta method:%0.4f\" %(y1)\n",
+ "y_p=y1+h*(55*(1+f1[2]**2)-59*(1+f1[1]**2)+37*(1+f1[0]**2)-9)/24\n",
+ "y_c=y1+h*(9*(1+(y_p-1)**2)+19*(1+f1[2]**2)-5*(1+f1[1]**2)+(1+f1[0]**2))/24\n",
+ "print \"\\nthe predicted value is:%0.4f:\\n\" %(y_p)\n",
+ "print \" the computed value is:%0.4f:\" %(y_c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " y(0.2) by fourth order runge kutta method:0.2027\n",
+ "\n",
+ " y(0.4) by fourth order runge kutta method:0.4228\n",
+ "\n",
+ " y(0.6) by fourth order runge kutta method:0.6841\n",
+ "\n",
+ "the predicted value is:1.0234:\n",
+ "\n",
+ " the computed value is:0.9512:\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.12:pg-320"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8.12\n",
+ "#milne's method\n",
+ "#page 320\n",
+ "def f(x,y):\n",
+ " return 1+y**2\n",
+ "y=0\n",
+ "f1=[0,0,0]\n",
+ "Y1=[0,0,0,0]\n",
+ "x=0\n",
+ "h=0.2\n",
+ "f1[0]=0\n",
+ "print \"x y y1=1+y^2\\n\\n\"\n",
+ "Y1[0]=1+y**2\n",
+ "print \"%0.4f %0.4f %0.4f\\n\" %(x,y,(1+y**2))\n",
+ "K1=h*f(x,y)\n",
+ "K2=h*f(x+h/2,y+K1/2)\n",
+ "K3=h*f(x+h/2,y+K2/2)\n",
+ "K4=h*f(x+h,y+K3)\n",
+ "y1=y+(K1+2*K2+2*K3+K4)/6\n",
+ "f1[0]=y1\n",
+ "Y1[1]=1+y1**2\n",
+ "print \"%0.4f %0.4f %0.4f\\n\" %(x+h,y1,(1+y1**2))\n",
+ "y=y1\n",
+ "x=0.2\n",
+ "h=0.2\n",
+ "K1=h*f(x,y)\n",
+ "K2=h*f(x+h/2,y+K1/2)\n",
+ "K3=h*f(x+h/2,y+K2/2)\n",
+ "K4=h*f(x+h,y+K3)\n",
+ "y1=y+(K1+2*K2+2*K3+K4)/6\n",
+ "f1[1]=y1\n",
+ "Y1[2]=1+y1**2\n",
+ "print \"%0.4f %0.4f %0.4f\\n\" %(x+h,y1,(1+y1**2))\n",
+ "y=y1\n",
+ "x=0.4\n",
+ "h=0.2\n",
+ "K1=h*f(x,y)\n",
+ "K2=h*f(x+h/2,y+K1/2)\n",
+ "K3=h*f(x+h/2,y+K2/2)\n",
+ "K4=h*f(x+h,y+K3)\n",
+ "y1=y+(K1+2*K2+2*K3+K4)/6\n",
+ "f1[2]=y1\n",
+ "Y1[3]=1+y1**2;\n",
+ "print \"%0.4f %0.4f %0.4f\\n\" %(x+h,y1,(1+y1**2))\n",
+ "Y_4=4*h*(2*Y1[1]-Y1[2]+2*Y1[3])/3\n",
+ "print \"y(0.8)=%f\\n\" %(Y_4)\n",
+ "Y=1+Y_4**2\n",
+ "Y_4=f1[1]+h*(Y1[2]+4*Y1[3]+Y)/3 #more correct value\n",
+ "print \"y(0.8)=%f\\n\" %(Y_4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x y y1=1+y^2\n",
+ "\n",
+ "\n",
+ "0.0000 0.0000 1.0000\n",
+ "\n",
+ "0.2000 0.2027 1.0411\n",
+ "\n",
+ "0.4000 0.4228 1.1788\n",
+ "\n",
+ "0.6000 0.6841 1.4680\n",
+ "\n",
+ "y(0.8)=1.023869\n",
+ "\n",
+ "y(0.8)=1.029403\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.13:pg-320"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8.13\n",
+ "#milne's method\n",
+ "#page 320\n",
+ "def f1(x,y):\n",
+ " return x**2+y**2-2\n",
+ "x=[-0.1, 0, 0.1, 0.2]\n",
+ "y=[1.0900, 1.0, 0.8900, 0.7605]\n",
+ "Y1=[0,0,0,0]\n",
+ "h=0.1\n",
+ "for i in range(0,4):\n",
+ " Y1[i]=f1(x[i],y[i])\n",
+ "print \" x y y1=x^2+y^2-2 \\n\\n\"\n",
+ "for i in range(0,4):\n",
+ " print \" %0.2f %f %f \\n\" %(x[i],y[i],Y1[i])\n",
+ "Y_3=y[0]+(4*h/3)*(2*Y1[1]-Y1[2]+2*Y1[3])\n",
+ "print \"y(0.3)=%f\\n\" %(Y_3)\n",
+ "Y1_3=f1(0.3,Y_3)\n",
+ "Y_3=y[2]+h*(Y1[2]+4*Y1[3]+Y1_3)/3 #corrected value\n",
+ "print \"corrected y(0.3)=%f\" %(Y_3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " x y y1=x^2+y^2-2 \n",
+ "\n",
+ "\n",
+ " -0.10 1.090000 -0.801900 \n",
+ "\n",
+ " 0.00 1.000000 -1.000000 \n",
+ "\n",
+ " 0.10 0.890000 -1.197900 \n",
+ "\n",
+ " 0.20 0.760500 -1.381640 \n",
+ "\n",
+ "y(0.3)=0.614616\n",
+ "\n",
+ "corrected y(0.3)=0.614776\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.14:pg322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8.14\n",
+ "#initial-value problem\n",
+ "#page 322\n",
+ "from __future__ import division\n",
+ "import math\n",
+ "def f(x):\n",
+ " return 13*math.exp(x/2)-6*x-12\n",
+ "s1=1.691358\n",
+ "s3=3.430879\n",
+ "print \"the erorr in the computed values are %0.7g %0.7g\" %(abs(f(0.5)-s1),abs(f(1)-s3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the erorr in the computed values are 0.0009724169 0.002497519\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.15:pg-328"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#boundary value problem using finite difference method\n",
+ "#example 8.15\n",
+ "#page 328\n",
+ "import math\n",
+ "from numpy import matrix\n",
+ "def f(x):\n",
+ " return math.cos(x)+((1-math.cos(1))/math.sin(1))*math.sin(x)-1\n",
+ "h1=1/2\n",
+ "Y=f(0.5)\n",
+ "y0=0\n",
+ "y2=0\n",
+ "y1=4*(1/4+y0+y2)/7\n",
+ "print \"computed value with h=%f of y(0.5) is %f\\n\" %(h1,y1)\n",
+ "print \"error in the result with actual value %f\\n\" %(abs(Y-y1))\n",
+ "h2=1/4\n",
+ "y0=0\n",
+ "y4=0\n",
+ "#solving the approximated diffrential equation\n",
+ "A=matrix([[-31/16, 1, 0],[1, -31/16, 1],[0, 1, -31/16]])\n",
+ "X=matrix([[-1/16],[-1/16],[-1/16]])\n",
+ "C=A.I*X\n",
+ "print \"computed value with h=%f of y(0.5) is %f\\n\" %(h2,C[1][0])\n",
+ "print \"error in the result with actual value %f\\n\" %(abs(Y-C[1][0]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "computed value with h=0.500000 of y(0.5) is 0.142857\n",
+ "\n",
+ "error in the result with actual value 0.003363\n",
+ "\n",
+ "computed value with h=0.250000 of y(0.5) is 0.140312\n",
+ "\n",
+ "error in the result with actual value 0.000818\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.16:pg-329"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#boundary value problem using finite difference method\n",
+ "#example 8.16\n",
+ "#page 329\\\n",
+ "from numpy import matrix\n",
+ "import math\n",
+ "def f(x):\n",
+ " return math.sinh(x)\n",
+ "y0=0 #y(0)=0\n",
+ "y4=3.62686 #y(2)=3.62686\n",
+ "h1=0.5\n",
+ "Y=f(0.5)\n",
+ "#arranging and calculating the values\n",
+ "A=matrix([[-9, 4, 0],[4, -9, 4],[0, 4, -9]])\n",
+ "C=matrix([[0],[0],[-14.50744]])\n",
+ "X=A.I*C\n",
+ "print \"computed value with h=%f of y(0.5) is %f\\n\" %(h1,X[0][0])\n",
+ "print \"error in the result with actual value %f\\n\" %(abs(Y-X[0][0]))\n",
+ "h2=1.0\n",
+ "y0=0 #y(0)=0\n",
+ "y2=3.62686 #y(2)=3.62686\n",
+ "y1=(y0+y2)/3\n",
+ "Y=(4*X[1][0]-y1)/3\n",
+ "print \"with better approximation error is reduced to %f\" %(abs(Y-f(1.0)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "computed value with h=0.500000 of y(0.5) is 0.526347\n",
+ "\n",
+ "error in the result with actual value 0.005252\n",
+ "\n",
+ "with better approximation error is reduced to 0.000855\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.17:pg-330"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#cubic spline method\n",
+ "#example 8.17\n",
+ "#page 330\n",
+ "def f(x):\n",
+ " return math.cos(x)+((1-math.cos(1))/math.sin(1))*math.sin(x)-1\n",
+ "y=[f(0), f(0.5), f(1)]\n",
+ "h=1/2\n",
+ "Y=f(0.5)\n",
+ "y0=0\n",
+ "y2=0\n",
+ "M0=-1\n",
+ "M1=-22/25\n",
+ "M2=-1\n",
+ "s1_0=47/88\n",
+ "s1_1=-47/88\n",
+ "s1_05=0\n",
+ "print \"the cubic spline value is %f\" %(Y)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the cubic spline value is 0.139494\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.18:pg-331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#cubic spline method\n",
+ "#example 8.18\n",
+ "#page 331\n",
+ "from numpy import matrix\n",
+ "from __future__ import division\n",
+ "#after arranging and forming equation \n",
+ "A=matrix([[10, -1, 0, 24],[0, 16, -1, -32],[1, 20, 0, 16],[0, 1, 26, -24]])\n",
+ "C=matrix([[36],[-12],[24],[-9]])\n",
+ "X=A.I*C;\n",
+ "print \" Y1=%f\\n\\n\" %(X[3][0])\n",
+ "print \" the error in the solution is :%f\" %(abs((2/3)-X[3][0]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Y1=0.653890\n",
+ "\n",
+ "\n",
+ " the error in the solution is :0.012777\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.19:pg-331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#boundary value problem by cubisc spline nethod\n",
+ "#example 8.18\n",
+ "#page 331\n",
+ "from numpy import matrix\n",
+ "h=1/2\n",
+ "#arranging in two subintervals we get\n",
+ "A=matrix([[10, -1, 0,24],[0, 16, -1, -32],[1, 20, 0, 16],[0, 1, 26, -24]])\n",
+ "C=matrix([[36],[-12],[24],[-9]])\n",
+ "X=A.I*C\n",
+ "print \"the computed value of y(1.5) is %f \"%(X[3][0])\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the computed value of y(1.5) is 0.653890 \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter_5_1.ipynb b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter_5_1.ipynb
new file mode 100644
index 00000000..445d0e5f
--- /dev/null
+++ b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/chapter_5_1.ipynb
@@ -0,0 +1,366 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:39d112b6b26183701350705c7a03972a699bd4951f33705a8cd3e62b313269e0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter05:Spline Functions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.1:pg-182"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#linear splines\n",
+ "#example 5.1\n",
+ "#page 182\n",
+ "from numpy import matrix\n",
+ "X=matrix([[1],[2], [3]])\n",
+ "y=matrix([[-8],[-1],[18]])\n",
+ "m1=(y[1][0]-y[0][0])/(X[1][0]-X[0][0])\n",
+ "m2=(y[2][0]-y[1][0])/(X[2][0]-X[1][0])\n",
+ "def s1(x):\n",
+ " return y[0][0]+(x-X[0][0])*m1\n",
+ "def s2(x):\n",
+ " return y[1][0]+(x-X[1][0])*m2\n",
+ "print \"the value of function at 2.5 is %0.2f: \" %(s2(2.5))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the value of function at 2.5 is 8.50: \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.3:pg-188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#cubic splines\n",
+ "#example 5.3\n",
+ "#page 188\n",
+ "from numpy import matrix\n",
+ "import math\n",
+ "X=matrix([[1],[2],[3]])\n",
+ "y=matrix([[-8],[-1],[18]])\n",
+ "M1=0\n",
+ "M2=8\n",
+ "M3=0\n",
+ "h=1\n",
+ "#deff('y=s1(x)','y=3*(x-1)^3-8*(2-x)-4*(x-1)')\n",
+ "def s1(x):\n",
+ " return 3*math.pow(x-1,3)-8*(2-x)-4*(x-1)\n",
+ "#deff('y=s2(x)','y=3*(3-x)^3+22*x-48');\n",
+ "def s2(x):\n",
+ " return 3*math.pow(3-x,3)+22*x-48\n",
+ "h=0.0001\n",
+ "n=2.0\n",
+ "D=(s2(n+h)-s2(n))/h;\n",
+ "print \" y(2.5)=%f\" %(s2(2.5))\n",
+ "print \"y1(2.0)=%f\" %(D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " y(2.5)=7.375000\n",
+ "y1(2.0)=13.000900\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.4:pg-189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#cubic spline\n",
+ "#example 5.4\n",
+ "#page 189\n",
+ "from numpy import matrix\n",
+ "import math\n",
+ "x=matrix([[0],[math.pi/2],[math.pi]])\n",
+ "y=matrix([[0],[1],[0]])\n",
+ "h=x[1][0]-x[0][0]\n",
+ "M0=0\n",
+ "M2=0\n",
+ "M1=((6*(y[0][0]-2*y[1][0]+y[2][0])/math.pow(h,2))-M0-M2)/4\n",
+ "X=math.pi/6.0\n",
+ "s1=(math.pow(x[1][0]-X,3)*(M0/6)+math.pow(X-x[0][0],3)*M1/6+(y[0][0]-math.pow(h,2)*M0/6)*(x[1][0]-X)+(y[1][0]-math.pow(h,2)*M1/6)*(X-x[0][0]))/h;\n",
+ "x=matrix([[0],[math.pi/4], [math.pi/2], [3*math.pi/4], [math.pi]])\n",
+ "y=matrix([[0], [1.414], [1] ,[1.414]])\n",
+ "M0=0\n",
+ "M4=0\n",
+ "A=matrix([[4, 1, 0],[1, 4, 1],[0 ,1 ,4]]) #calculating value of M1 M2 M3 by matrix method\n",
+ "C=matrix([[-4.029],[-5.699],[-4.029]])\n",
+ "B=A.I*C\n",
+ "print \"M0=%f\\t M1=%f\\t M2=%f\\t M3=%f\\t M4=%f\\t\\n\\n\" %(M0,B[0][0],B[1][0],B[2][0],M4)\n",
+ "h=math.pi/4;\n",
+ "X=math.pi/6;\n",
+ "s1=(-0.12408*math.pow(X,3)+0.7836*X)/h;\n",
+ "print \"the value of sin(pi/6) is:%f\" %(s1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "M0=0.000000\t M1=-0.744071\t M2=-1.052714\t M3=-0.744071\t M4=0.000000\t\n",
+ "\n",
+ "\n",
+ "the value of sin(pi/6) is:0.499722\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.5:pg-191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#cubic spline\n",
+ "#example 5.5\n",
+ "#page 191\n",
+ "import math\n",
+ "from numpy import matrix\n",
+ "x=[1,2,3]\n",
+ "y=[6,18,42]\n",
+ "m0=40\n",
+ "s1=0\n",
+ "m1=(3*(y[2]-y[0])-m0)/4\n",
+ "X=0\n",
+ "s1=m0*((x[1]-X)**2)*(X-x[0])-m1*((X-x[0])**2)*(x[1]-X)+y[0]*((x[1]-X)**2)*(2*(X-x[0])+1)+y[1]*((X-x[0])**2)*(2*(x[1]-X)+1)\n",
+ "print \"s1= %f+261*x-160X^2+33X^3\" %(s1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "s1= -128.000000+261*x-160X^2+33X^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.7:pg-195"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#surface fitting by cubic spline\n",
+ "#example 5.7\n",
+ "#page 195\n",
+ "from numpy import matrix\n",
+ "def L0(y):\n",
+ " return math.pow(y,3)/4-5*y/4+1\n",
+ "def L1(y):\n",
+ " return (math.pow(y,3)/2)*-1+3*y/2\n",
+ "def L2(y):\n",
+ " return math.pow(y,3)/4-y/4\n",
+ "A=[ [1,2,9], [2,3,10], [9,10,17] ]\n",
+ "x=0.5\n",
+ "y=0.5\n",
+ "S=0.0\n",
+ "S=S+L0(x)*(L0(x)*A[0][0]+L1(x)*A[0][1]+L2(x)*A[0][2])\n",
+ "S=S+L1(x)*(L0(x)*A[1][0]+L1(x)*A[1][1]+L2(x)*A[1][2])\n",
+ "S=S+L2(x)*(L0(x)*A[2][0]+L1(x)*A[2][1]+L2(x)*A[2][2])\n",
+ "print \"approximated value of z(0.5 0.5)=%f\\n\\n\" %(S)\n",
+ "print \" error in the approximated value : %f\" %((abs(1.25-S)/1.25)*100)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "approximated value of z(0.5 0.5)=0.875000\n",
+ "\n",
+ "\n",
+ " error in the approximated value : 30.000000\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.8:pg-200"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#cubic B-splines\n",
+ "#example 5.8\n",
+ "#page 200\n",
+ "import math\n",
+ "k=[0.0, 1, 2, 3, 4]\n",
+ "pi=[0.0, 0, 4, -6, 24]\n",
+ "x=1\n",
+ "S=0\n",
+ "for i in range(2,5):\n",
+ " S=S+math.pow(k[i]-x,3)/(pi[i])\n",
+ "print \"the cubic splines for x=1 is %f\\n\\n\" %(S)\n",
+ "S=0\n",
+ "x=2\n",
+ "for i in range(2,5):\n",
+ " S=S+math.pow(k[i]-x,3)/(pi[i])\n",
+ "print \"the cubic splines for x=2 is %f\\n\\n\" %(S)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the cubic splines for x=1 is 0.041667\n",
+ "\n",
+ "\n",
+ "the cubic splines for x=2 is 0.166667\n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.9:pg-201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#cubic B-spline\n",
+ "#example 5.9\n",
+ "#page 201\n",
+ "k=[0, 1, 2, 3, 4];\n",
+ "x=1 #for x=1\n",
+ "s11=0\n",
+ "s13=0\n",
+ "s14=0\n",
+ "s24=0 \n",
+ "s12=1/(k[2]-k[1])\n",
+ "s22=((x-k[0])*s11+(k[2]-x)*s12)/2.0 #k[2]-k[0]=2\n",
+ "s23=((x-k[1])*s11+(k[3]-x)*s13)/(k[3]-k[1])\n",
+ "s33=((x-k[0])*s22+(k[3]-x)*s23)/(k[3]-k[0])\n",
+ "s34=((x-k[1])*s23+(k[4]-x)*s24)/(k[4]-k[1])\n",
+ "s44=((x-k[0])*s33+(k[4]-x)*s34)/(k[4]-k[0])\n",
+ "print \"s11=%f\\t s22=%f\\t s23=%f\\t s33=%f\\t s34=%f\\t s44=%f\\n\\n\" %(s11,s22,s23,s33,s34,s44)\n",
+ "x=2 #for x=2\n",
+ "s11=0\n",
+ "s12=0\n",
+ "s14=0\n",
+ "s22=0\n",
+ "s13=1/(k[3]-k[2])\n",
+ "s23=((x-k[1])*s12+(k[3]-x)*s13)/2.0 # k[3]-k[1]=2\n",
+ "s24=((x-k[2])*s13+(k[4]-x)*s14)/(k[2]-k[0])\n",
+ "s33=((x-k[0])*s22+(k[3]-x)*s23)/(k[3]-k[0])\n",
+ "s34=((x-k[1])*s23+(k[4]-x)*s24)/(k[4]-k[1])\n",
+ "s44=((x-k[0])*s33+(k[4]-x)*s34)/(k[4]-k[0])\n",
+ "print \"s13=%f\\t s23=%f\\t s24=%f\\t s33=%f\\t s34=%f\\t s44=%f\\n\\n\" %(s13,s23,s24,s33,s34,s44)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "s11=0.000000\t s22=0.500000\t s23=0.000000\t s33=0.166667\t s34=0.000000\t s44=0.041667\n",
+ "\n",
+ "\n",
+ "s13=1.000000\t s23=0.500000\t s24=0.000000\t s33=0.166667\t s34=0.166667\t s44=0.166667\n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/screenshots/ex1.2_1.png b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/screenshots/ex1.2_1.png
new file mode 100644
index 00000000..5453c422
--- /dev/null
+++ b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/screenshots/ex1.2_1.png
Binary files differ
diff --git a/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/screenshots/ex3.13_1.png b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/screenshots/ex3.13_1.png
new file mode 100644
index 00000000..00af50a0
--- /dev/null
+++ b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/screenshots/ex3.13_1.png
Binary files differ
diff --git a/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/screenshots/ex6.7_1.png b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/screenshots/ex6.7_1.png
new file mode 100644
index 00000000..a71d4c65
--- /dev/null
+++ b/Introductory_Methods_Of_Numerical_Analysis__by_S._S._Sastry/screenshots/ex6.7_1.png
Binary files differ
diff --git a/Principles_of_Data_structures_using_C_and_C++/README.txt b/Principles_of_Data_structures_using_C_and_C++/README.txt
deleted file mode 100755
index 7fc96069..00000000
--- a/Principles_of_Data_structures_using_C_and_C++/README.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Contributed By: Tejas Dodiya
-Course: others
-College/Institute/Organization: Freelance
-Department/Designation: Science
-Book Title: Principles of Data structures using C and C++
-Author: Vinu V Das
-Publisher: New Age International (P) Limited , Publishers
-Year of publication: 2006
-Isbn: 9788122428643
-Edition: 1st \ No newline at end of file
diff --git a/Principles_of_Data_structures_using_C_and_C++/chapter2.ipynb b/Principles_of_Data_structures_using_C_and_C++/chapter2.ipynb
deleted file mode 100755
index 5293973c..00000000
--- a/Principles_of_Data_structures_using_C_and_C++/chapter2.ipynb
+++ /dev/null
@@ -1,136 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:e69ccbb1735a0c440e4d73af0d7e8991c9d99315b31e67bbedcd0e1e4ee9909a"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 2: Memory Management"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 1, page no. 19"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "print \"Enter the number of element(s) to be added: \"\n",
- "n = int(raw_input())\n",
- "nos = []\n",
- "for i in range(1,n+1):\n",
- " print \"Enter the %d element: \" %i\n",
- " nos.append(int(raw_input()))\n",
- "\n",
- "sum = 0\n",
- "for i in range(0,n):\n",
- " sum += nos[i]\n",
- "\n",
- "print \"The SUM of no(s) is: %d\" %sum"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the number of element(s) to be added: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "4\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the 1 element: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the 2 element: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the 3 element: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the 4 element: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "4\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The SUM of no(s) is: 10\n"
- ]
- }
- ],
- "prompt_number": 2
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Principles_of_Data_structures_using_C_and_C++/chapter3.ipynb b/Principles_of_Data_structures_using_C_and_C++/chapter3.ipynb
deleted file mode 100755
index 8a5b19bf..00000000
--- a/Principles_of_Data_structures_using_C_and_C++/chapter3.ipynb
+++ /dev/null
@@ -1,950 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:c98469f20d33ab4fe0f1fcb5a671c040610d80e4c529865895fc0cc3edbc9a24"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "raw",
- "metadata": {},
- "source": [
- "Chapter 3: The Stack"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 1, page no. 28"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "MAXSIZE = 100\n",
- "\n",
- "class stack:\n",
- " def __init__(self):\n",
- " self.stack = []\n",
- " self.top = -1\n",
- "\n",
- "def push(pu):\n",
- " if(pu.top == MAXSIZE-1):\n",
- " print \"The stack is full\"\n",
- " else:\n",
- " print \"Enter the element to be inserted: \"\n",
- " item = int(raw_input())\n",
- " pu.stack.append(item)\n",
- " pu.top += 1\n",
- "\n",
- "def pop(po):\n",
- " if(po.top == -1):\n",
- " print \"Stack is empty\"\n",
- " else:\n",
- " item = po.stack[po.top]\n",
- " po.top-=1\n",
- " print \"The item deleted is: %d\" %item\n",
- "\n",
- "\n",
- "def traverse(pt):\n",
- " if(pt.top == -1):\n",
- " print \"Stack is empty\"\n",
- " else:\n",
- " print \"The element(s) in the stack are...\"\n",
- " i = pt.top\n",
- " while(i>=0):\n",
- " print \"%d\" %pt.stack[i],\n",
- " i-=1\n",
- "\n",
- "ps = stack()\n",
- "ch = 'y'\n",
- "\n",
- "while(ch == 'Y' or ch == 'y'):\n",
- " print \"1. PUSH\"\n",
- " print \"2. POP\"\n",
- " print \"3. TRAVERSE\"\n",
- " print \"Enter your choice: \"\n",
- " choice = int(raw_input())\n",
- " if(choice == 1):\n",
- " push(ps)\n",
- " elif(choice == 2):\n",
- " pop(ps)\n",
- " elif(choice == 3):\n",
- " traverse(ps)\n",
- " else:\n",
- " print \"You entered a wrong choice...\"\n",
- " \n",
- " print \"\\nPrint Y/y to continue\"\n",
- " ch = raw_input()\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1. PUSH\n",
- "2. POP\n",
- "3. TRAVERSE\n",
- "Enter your choice: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the element to be inserted: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "Print Y/y to continue\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "y\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1. PUSH\n",
- "2. POP\n",
- "3. TRAVERSE\n",
- "Enter your choice: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the element to be inserted: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "Print Y/y to continue\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Exampe 2, page no. 31"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "MAXSIZE = 100\n",
- "\n",
- "class stack:\n",
- " \n",
- " def __init__(self):\n",
- " self.stack = []\n",
- " self.top = -1\n",
- " \n",
- " def push(self,pu):\n",
- " if(pu.top == MAXSIZE-1):\n",
- " print \"The stack is full\"\n",
- " else: \n",
- " print \"Enter the element to be inserted: \"\n",
- " item = int(raw_input())\n",
- " pu.stack.append(item)\n",
- " pu.top += 1\n",
- "\n",
- " def pop(self,po):\n",
- " if(po.top == -1):\n",
- " print \"Stack is empty\"\n",
- " else:\n",
- " item = po.stack[po.top]\n",
- " po.top-=1\n",
- " print \"The item deleted is: %d\" %item\n",
- " \n",
- " def traverse(self,pt):\n",
- " if(pt.top == -1):\n",
- " print \"Stack is empty\"\n",
- " else:\n",
- " print \"The element(s) in the stack are...\"\n",
- " i = pt.top\n",
- " while(i>=0):\n",
- " print \"%d\" %pt.stack[i],\n",
- " i-=1\n",
- "\n",
- "ps = stack()\n",
- "ch = 'y'\n",
- "\n",
- "while(ch == 'Y' or ch == 'y'):\n",
- " print \"1. PUSH\"\n",
- " print \"2. POP\"\n",
- " print \"3. TRAVERSE\"\n",
- " print \"Enter your choice: \"\n",
- " choice = int(raw_input())\n",
- " if(choice == 1):\n",
- " ps.push(ps)\n",
- " elif(choice == 2):\n",
- " ps.pop(ps)\n",
- " elif(choice == 3):\n",
- " ps.traverse(ps)\n",
- " else:\n",
- " print \"You entered a wrong choice...\"\n",
- " \n",
- " print \"\\nPrint Y/y to continue\"\n",
- " ch = raw_input()\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1. PUSH\n",
- "2. POP\n",
- "3. TRAVERSE\n",
- "Enter your choice: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the element to be inserted: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "Print Y/y to continue\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "y\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1. PUSH\n",
- "2. POP\n",
- "3. TRAVERSE\n",
- "Enter your choice: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the element to be inserted: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "Print Y/y to continue\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "y\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1. PUSH\n",
- "2. POP\n",
- "3. TRAVERSE\n",
- "Enter your choice: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The element(s) in the stack are...\n",
- "10 5 \n",
- "Print Y/y to continue\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "n\n"
- ]
- }
- ],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 3, page no. 31"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "def fact(n):\n",
- " if (n<=0):\n",
- " return 1\n",
- " else:\n",
- " return n * fact(n-1)\n",
- "\n",
- "print \"Enter a number: \"\n",
- "n = int(raw_input())\n",
- "n = fact(n)\n",
- "print \"Factorial is: %d\" %n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter a number: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Factorial is: 120\n"
- ]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 4, page no. 36"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "class tower:\n",
- " \n",
- " def __init__(self):\n",
- " self.nodisk = 0\n",
- " self.fromtower = \"\"\n",
- " self.totower = \"\"\n",
- " self.auxtower = \"\"\n",
- " \n",
- " def hanoi(self,i, frm_t, to_t, aux_t):\n",
- " if(i <= 1):\n",
- " print \"Move from disk 1 from tower \" + frm_t + \" to tower \" + to_t\n",
- " return\n",
- " self.hanoi(i-1, frm_t, aux_t, to_t)\n",
- " print \"\\nMove from disk \" + str(i) + \" from tower \" + frm_t + \" to tower \" + to_t\n",
- " self.hanoi(i-1,aux_t, to_t, frm_t)\n",
- "\n",
- "print \"-----------Tower of Hanoi-------------\"\n",
- "print \"Enter number of disks: \"\n",
- "no = int(raw_input())\n",
- "ob = tower()\n",
- "ob.hanoi(no,'X','Y','Z')\n",
- "print \"Press any key to continue...\"\n",
- "raw_input()"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "-----------Tower of Hanoi-------------\n",
- "Enter number of disks: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "4\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Move from disk 1 from tower X to tower Z\n",
- "\n",
- "Move from disk 2 from tower X to tower Y\n",
- "Move from disk 1 from tower Z to tower Y\n",
- "\n",
- "Move from disk 3 from tower X to tower Z\n",
- "Move from disk 1 from tower Y to tower X\n",
- "\n",
- "Move from disk 2 from tower Y to tower Z\n",
- "Move from disk 1 from tower X to tower Z\n",
- "\n",
- "Move from disk 4 from tower X to tower Y\n",
- "Move from disk 1 from tower Z to tower Y\n",
- "\n",
- "Move from disk 2 from tower Z to tower X\n",
- "Move from disk 1 from tower Y to tower X\n",
- "\n",
- "Move from disk 3 from tower Z to tower Y\n",
- "Move from disk 1 from tower X to tower Z\n",
- "\n",
- "Move from disk 2 from tower X to tower Y\n",
- "Move from disk 1 from tower Z to tower Y\n",
- "Press any key to continue...\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n"
- ]
- },
- {
- "metadata": {},
- "output_type": "pyout",
- "prompt_number": 6,
- "text": [
- "''"
- ]
- }
- ],
- "prompt_number": 6
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 5, page no. 48"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "MAXSIZE = 100\n",
- "\n",
- "class stack:\n",
- " def __init__(self):\n",
- " self.stack = []\n",
- " self.top = -1\n",
- "\n",
- "def push(pu,symbol):\n",
- " if(pu.top == MAXSIZE-1):\n",
- " print \"The stack is full\"\n",
- " else:\n",
- " pu.stack.append(symbol)\n",
- " pu.top += 1\n",
- " return pu\n",
- "\n",
- "def pop(po):\n",
- " if(po.top == -1):\n",
- " print \"Stack is empty\"\n",
- " else:\n",
- " symbol = po.stack.pop()\n",
- " po.top-=1\n",
- " return symbol,po\n",
- " \n",
- " \n",
- "def prec(symbol):\n",
- " if symbol == '(':\n",
- " return 1\n",
- " elif symbol == ')':\n",
- " return 2\n",
- " elif symbol == '+' or symbol == '-':\n",
- " return 3\n",
- " elif symbol == '*' or symbol == '/' or symbol == '%':\n",
- " return 4\n",
- " elif symbol == '^':\n",
- " return 5\n",
- " else:\n",
- " return 0\n",
- "\n",
- "def infix_postfix(infix):\n",
- " \n",
- " length = len(infix)\n",
- " ps = stack()\n",
- " infix += ')'\n",
- " ps = push(ps,'(')\n",
- " postfix = []\n",
- " for i in range(0,length+1):\n",
- " ret_val = prec(infix[i])\n",
- " if ret_val == 1:\n",
- " ps = push(ps,infix[i])\n",
- " elif(ret_val == 2):\n",
- " ch,ps = pop(ps)\n",
- " while(ch != '('):\n",
- " postfix.append(ch)\n",
- " ch,ps = pop(ps)\n",
- " elif(ret_val == 3):\n",
- " ch,ps = pop(ps)\n",
- " while(prec(ch) >= 3):\n",
- " postfix.append(ch)\n",
- " ch,ps = pop(ps)\n",
- " ps=push(ps,ch)\n",
- " ps=push(ps,infix[i])\n",
- " elif(ret_val == 4):\n",
- " ch,ps = pop(ps)\n",
- " while(prec(ch) >= 4):\n",
- " postfix.append(ch)\n",
- " ch,ps = pop(ps)\n",
- " ps=push(ps,ch)\n",
- " ps=push(ps,infix[i])\n",
- " elif(ret_val == 5):\n",
- " ch,ps = pop(ps)\n",
- " while(prec(ch) == 5):\n",
- " postfix.append(ch)\n",
- " ch,ps = pop(ps)\n",
- " ps=push(ps,ch)\n",
- " ps=push(ps,infix[i])\n",
- " else:\n",
- " postfix.append(infix[i])\n",
- "\n",
- " print \"The postfix expression is: \"\n",
- " print postfix\n",
- "\n",
- "choice = 'y'\n",
- "while (choice == 'Y' or choice == 'y'):\n",
- " print \"Enter an infix expression: \"\n",
- " infix = raw_input()\n",
- " infix_postfix(infix)\n",
- " print \"Do you want to continue? Y/y \"\n",
- " choice = raw_input()"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter an infix expression: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "a+b\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The postfix expression is: \n",
- "['a', 'b', '+']\n",
- "Do you want to continue? Y/y \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "n\n"
- ]
- }
- ],
- "prompt_number": 9
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 6, page no. 52"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "MAXSIZE = 100\n",
- "\n",
- "class stack:\n",
- " def __init__(self):\n",
- " self.stack = []\n",
- " self.top = -1\n",
- "\n",
- " def push(self, pu, symbol):\n",
- " if(pu.top == MAXSIZE-1):\n",
- " print \"The stack is full\"\n",
- " else:\n",
- " pu.stack.append(symbol)\n",
- " pu.top += 1\n",
- " return pu\n",
- "\n",
- " def pop(self, po):\n",
- " if(po.top == -1):\n",
- " print \"Stack is empty\"\n",
- " else:\n",
- " symbol = po.stack.pop()\n",
- " po.top-=1\n",
- " return symbol,po\n",
- " \n",
- " \n",
- " def prec(self, symbol):\n",
- " if symbol == '(':\n",
- " return 1\n",
- " elif symbol == ')':\n",
- " return 2\n",
- " elif symbol == '+' or symbol == '-':\n",
- " return 3\n",
- " elif symbol == '*' or symbol == '/' or symbol == '%':\n",
- " return 4\n",
- " elif symbol == '^':\n",
- " return 5\n",
- " else:\n",
- " return 0\n",
- "\n",
- "def infix_postfix(infix):\n",
- " \n",
- " length = len(infix)\n",
- " ps = stack()\n",
- " infix += ')'\n",
- " ps = ps.push(ps,'(')\n",
- " postfix = []\n",
- " for i in range(0,length+1):\n",
- " ret_val = ps.prec(infix[i])\n",
- " if ret_val == 1:\n",
- " ps = ps.push(ps,infix[i])\n",
- " elif(ret_val == 2):\n",
- " ch,ps = ps.pop(ps)\n",
- " while(ch != '('):\n",
- " postfix.append(ch)\n",
- " ch,ps = ps.pop(ps)\n",
- " elif(ret_val == 3):\n",
- " ch,ps = ps.pop(ps)\n",
- " while(ps.prec(ch) >= 3):\n",
- " postfix.append(ch)\n",
- " ch,ps = ps.pop(ps)\n",
- " ps = ps.push(ps,ch)\n",
- " ps = ps.push(ps,infix[i])\n",
- " elif(ret_val == 4):\n",
- " ch,ps = ps.pop(ps)\n",
- " while(ps.prec(ch) >= 4):\n",
- " postfix.append(ch)\n",
- " ch,ps = ps.pop(ps)\n",
- " ps = ps.push(ps,ch)\n",
- " ps = ps.push(ps,infix[i])\n",
- " elif(ret_val == 5):\n",
- " ch,ps = ps.pop(ps)\n",
- " while(ps.prec(ch) == 5):\n",
- " postfix.append(ch)\n",
- " ch,ps = ps.pop(ps)\n",
- " ps = ps.push(ps,ch)\n",
- " ps = ps.push(ps,infix[i])\n",
- " else:\n",
- " postfix.append(infix[i])\n",
- " print \"The postfix expression is: \"\n",
- " print postfix\n",
- "\n",
- "choice = 'y'\n",
- "while (choice == 'Y' or choice == 'y'):\n",
- " print \"Enter an infix expression: \"\n",
- " infix = raw_input()\n",
- " infix_postfix(infix)\n",
- " print \"Do you want to continue? Y/y \"\n",
- " choice = raw_input()"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter an infix expression: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "a+b\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The postfix expression is: \n",
- "['a', 'b', '+']\n",
- "Do you want to continue? Y/y \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "n\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 7, page no. 57"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "MAXSIZE = 100\n",
- "\n",
- "class stack:\n",
- " def __init__(self):\n",
- " self.stack = []\n",
- " self.top = -1\n",
- "\n",
- "def push(pu,item):\n",
- " if(pu.top == MAXSIZE-1):\n",
- " print \"The stack is full\"\n",
- " else:\n",
- " pu.stack.append(item)\n",
- " pu.top += 1\n",
- " return pu\n",
- "\n",
- "def pop(po):\n",
- " if(po.top == -1):\n",
- " print \"Stack is empty\"\n",
- " else:\n",
- " item = po.stack.pop()\n",
- " po.top-=1\n",
- " return po, item\n",
- "\n",
- "def postfix_eval(postfix):\n",
- " ps = stack()\n",
- " for i in range(0,len(postfix)):\n",
- " if(postfix[i]<='9' and postfix[i]>='0'):\n",
- " ps = push(ps, postfix[i])\n",
- " else:\n",
- " ps, a = pop(ps)\n",
- " ps, b = pop(ps)\n",
- " a = int(a)\n",
- " b = int(b)\n",
- " temp = 0\n",
- " if postfix[i] == \"+\":\n",
- " temp = b+a\n",
- " elif postfix[i] == \"-\":\n",
- " temp = b-a\n",
- " elif postfix[i] == \"*\":\n",
- " temp = b*a\n",
- " elif postfix[i] == \"/\":\n",
- " temp = b/a\n",
- " elif postfix[i] == \"%\":\n",
- " temp = a%b\n",
- " elif postfix[i] == \"^\":\n",
- " temp = pow(a,b)\n",
- " ps = push(ps, temp)\n",
- " ps, a = pop(ps)\n",
- " return a\n",
- "\n",
- "choice = \"y\"\n",
- "while(choice == \"Y\" or choice == \"y\"):\n",
- " print \"Enter the postfix expression: \",\n",
- " post_fix = raw_input()\n",
- " print \"The post fix evaluation is \", postfix_eval(post_fix),\n",
- " print \"\\nYou want to continue(Y/y) ?? \"\n",
- " choice = raw_input()"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the postfix expression: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "54+\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " The post fix evaluation is 9 \n",
- "You want to continue(Y/y) ?? \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "n\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "# Example 8 will be same as Example 6."
- ],
- "language": "python",
- "metadata": {},
- "outputs": []
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Principles_of_Data_structures_using_C_and_C++/chapter4.ipynb b/Principles_of_Data_structures_using_C_and_C++/chapter4.ipynb
deleted file mode 100755
index 2459282d..00000000
--- a/Principles_of_Data_structures_using_C_and_C++/chapter4.ipynb
+++ /dev/null
@@ -1,818 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:78073ee3f019a89e9443c28342a99a4f8760679d25266109d7f7c11d0a9e5ceb"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 4: The Queue"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 1, page no. 68"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import sys\n",
- "\n",
- "MAX = 50\n",
- "queue_arr = []\n",
- "rear = [-1]\n",
- "front = [-1]\n",
- "\n",
- "def insert():\n",
- " if (rear[0] == MAX-1):\n",
- " print \"Queue is full...\"\n",
- " return\n",
- " else:\n",
- " if(front[0] == -1):\n",
- " front[0] = 0\n",
- " print \"Input the element to be added: \"\n",
- " added_item = int(raw_input())\n",
- " rear[0] = rear[0]+1\n",
- " queue_arr.append(added_item)\n",
- "\n",
- "def que_del(): # del() is an inbuilt function in python so we name it as que_del here\n",
- " print front[0]\n",
- " if(front[0] == -1 or front[0]>rear[0]):\n",
- " print \"Queue is empty...\"\n",
- " return\n",
- " else:\n",
- " dell = front[0]\n",
- " print \"Deleted element from queue is: \", queue_arr[dell]\n",
- " front[0] = front[0]+1\n",
- "\n",
- "def display():\n",
- " if(front[0] == -1 or front[0]>rear[0]):\n",
- " print \"Queue is empty...\"\n",
- " return\n",
- " else:\n",
- " print \"Queue is: \"\n",
- " for i in range(front[0],rear[0]+1):\n",
- " print queue_arr[i],\n",
- "\n",
- "while(1):\n",
- " print \"\\n1. Insert\"\n",
- " print \"2. Delete\"\n",
- " print \"3. Display\"\n",
- " print \"4. Quit\"\n",
- " print \"Enter your choice: \"\n",
- " choice = raw_input()\n",
- " if choice == '1':\n",
- " insert()\n",
- " elif choice == '2':\n",
- " que_del()\n",
- " elif choice == '3':\n",
- " display()\n",
- " elif choice == '4':\n",
- " sys.exit()\n",
- " else:\n",
- " print \"You entered an invalid choice...\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "1. Insert\n",
- "2. Delete\n",
- "3. Display\n",
- "4. Quit\n",
- "Enter your choice: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Input the element to be added: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "1. Insert\n",
- "2. Delete\n",
- "3. Display\n",
- "4. Quit\n",
- "Enter your choice: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Input the element to be added: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "1. Insert\n",
- "2. Delete\n",
- "3. Display\n",
- "4. Quit\n",
- "Enter your choice: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Queue is: \n",
- "5 10 \n",
- "1. Insert\n",
- "2. Delete\n",
- "3. Display\n",
- "4. Quit\n",
- "Enter your choice: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "4\n"
- ]
- },
- {
- "ename": "SystemExit",
- "evalue": "",
- "output_type": "pyerr",
- "traceback": [
- "An exception has occurred, use %tb to see the full traceback.\n",
- "\u001b[1;31mSystemExit\u001b[0m\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "To exit: use 'exit', 'quit', or Ctrl-D.\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 2, page no. 73"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import sys\n",
- "MAX = 50\n",
- "\n",
- "class circular_queue:\n",
- " def __init__(self):\n",
- " self.cqueue_arr = []\n",
- " self.rear = -1\n",
- " self.front = -1\n",
- "\n",
- " def insert(self):\n",
- " if((self.front == 0 and self.rear == MAX-1) or (self.front == self.rear+1)):\n",
- " print \"Queue is full...\"\n",
- " return\n",
- " if(self.front == -1):\n",
- " self.front = 0\n",
- " self.rear = 0\n",
- " else:\n",
- " if(self.rear == MAX-1):\n",
- " rear = 0\n",
- " else:\n",
- " self.rear = self.rear+1\n",
- " print \"Enter element to be added: \"\n",
- " item_added = int(raw_input())\n",
- " self.cqueue_arr.append(item_added)\n",
- " \n",
- " def que_del(self):\n",
- " if(self.front == -1):\n",
- " print \"Queue is empty...\"\n",
- " return\n",
- " print \"Element deleted from queue is: \", self.cqueue_arr[self.front]\n",
- " if(self.front == self.rear):\n",
- " self.front = -1\n",
- " self.rear = -1\n",
- " else:\n",
- " if(self.front == MAX-1):\n",
- " self.front = 0\n",
- " else:\n",
- " self.front += 1\n",
- " \n",
- " def display(self):\n",
- " front_pos = self.front\n",
- " rear_pos = self.rear\n",
- " if(self.front == -1):\n",
- " print \"Queue is empty...\"\n",
- " return\n",
- " print \"Queue Elements: \",\n",
- " if(front_pos <= rear_pos):\n",
- " while(front_pos <= rear_pos):\n",
- " print \" \", self.cqueue_arr[front_pos],\n",
- " front_pos += 1\n",
- " \n",
- "co = circular_queue()\n",
- "while(1):\n",
- " print \"\\n1. Insert\"\n",
- " print \"2. Delete\"\n",
- " print \"3. Display\"\n",
- " print \"4. Quit\"\n",
- " print \"Enter your choice: \"\n",
- " choice = int(raw_input())\n",
- " if choice == 1:\n",
- " co.insert()\n",
- " elif choice == 2:\n",
- " co.que_del()\n",
- " elif choice == 3:\n",
- " co.display()\n",
- " elif choice == 4:\n",
- " sys.exit()\n",
- " else:\n",
- " print \"You entered an invalid choice...\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "1. Insert\n",
- "2. Delete\n",
- "3. Display\n",
- "4. Quit\n",
- "Enter your choice: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter element to be added: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "1. Insert\n",
- "2. Delete\n",
- "3. Display\n",
- "4. Quit\n",
- "Enter your choice: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter element to be added: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "1. Insert\n",
- "2. Delete\n",
- "3. Display\n",
- "4. Quit\n",
- "Enter your choice: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter element to be added: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "1. Insert\n",
- "2. Delete\n",
- "3. Display\n",
- "4. Quit\n",
- "Enter your choice: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Queue Elements: 5 10 15 \n",
- "1. Insert\n",
- "2. Delete\n",
- "3. Display\n",
- "4. Quit\n",
- "Enter your choice: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "4\n"
- ]
- },
- {
- "ename": "SystemExit",
- "evalue": "",
- "output_type": "pyerr",
- "traceback": [
- "An exception has occurred, use %tb to see the full traceback.\n",
- "\u001b[1;31mSystemExit\u001b[0m\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "To exit: use 'exit', 'quit', or Ctrl-D.\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 3, page no. 80"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import sys\n",
- "\n",
- "MAX = 50\n",
- "left = -1\n",
- "right = -1\n",
- "dqueue_arr = []\n",
- "\n",
- "# insert element to right\n",
- "def insert_right():\n",
- " global left, right, dqueue_arr\n",
- " if ((left == 0 and right == MAX-1) or (left == right+1)):\n",
- " print \"Queue is full...\"\n",
- " return\n",
- " if(left == -1):\n",
- " left = 0\n",
- " right = 0\n",
- " else:\n",
- " if(right == MAX-1):\n",
- " right = 0;\n",
- " else:\n",
- " right = right+1;\n",
- " print \"Input the element for adding in queue: \"\n",
- " added_item = int(raw_input())\n",
- " # Inputting the element at the right\n",
- " dqueue_arr.append(added_item)\n",
- "\n",
- "def insert_left():\n",
- " global left, right, dqueue_arr\n",
- " # Checking for queue overflow\n",
- " if ((left == 0 and right == MAX-1) or (left == right+1)):\n",
- " print \"Queue is full...\"\n",
- " return\n",
- " if (left == -1): # If queue is initially empty\n",
- " left = 0;\n",
- " right = 0;\n",
- " else:\n",
- " if (left== 0):\n",
- " left = MAX -1;\n",
- " else:\n",
- " left = left-1;\n",
- " print \"\\nInput the element for adding in queue:\"\n",
- " added_item = int(raw_input())\n",
- " # inputting at the left side of the queue\n",
- " dqueue_arr.insert(added_item,left)\n",
- "\n",
- "# This function will delete an element from the queue from the left side\n",
- "def delete_left():\n",
- " global left, right, dqueue_arr\n",
- " # Checking for queue underflow\n",
- " if (left == -1):\n",
- " print \"Queue is empty... \"\n",
- " return\n",
- " # deleting the element from the left side\n",
- " print \"Element deleted from queue is: \", dqueue_arr[left]\n",
- " if(left == right): # Queue has only one element \n",
- " left = -1\n",
- " right = -1\n",
- " else:\n",
- " if (left == MAX-1):\n",
- " left = 0\n",
- " else:\n",
- " left = left+1\n",
- " \n",
- "# Function to delete an element from the right hand side of the de-queue\n",
- "def delete_right():\n",
- " global left, right, dqueue_arr\n",
- " # Checking for underflow conditions\n",
- " if (left == -1):\n",
- " print \"Queue is empty...\"\n",
- " return\n",
- " print \"Element deleted from queue is : \", dqueue_arr[right]\n",
- " if(left == right): # queue has only one element\n",
- " left = -1\n",
- " right = -1\n",
- " else:\n",
- " if (right == 0):\n",
- " right = MAX-1\n",
- " else:\n",
- " right = right -1\n",
- "\n",
- "# Displaying all the contents of the queue\n",
- "def display_queue():\n",
- " global left, right, dqueue_arr\n",
- " front_pos = left \n",
- " rear_pos = right\n",
- " # Checking whether the queue is empty or not\n",
- " if (left == -1):\n",
- " print \"Queue is empty...\"\n",
- " return\n",
- " # displaying the queue elements\n",
- " print \"Queue elements :\",\n",
- " if (front_pos <= rear_pos):\n",
- " while(front_pos <= rear_pos):\n",
- " print \" \", dqueue_arr[front_pos],\n",
- " front_pos = front_pos + 1\n",
- "\n",
- "# Function to implement all the operation of the input restricted queue\n",
- "def input_que():\n",
- " global left, right, dqueue_arr\n",
- " while(1):\n",
- " # menu options to input restricted queue\n",
- " print \"\\n1.Insert at right\"\n",
- " print \"2.Delete from left\\n\"\n",
- " print \"3.Delete from right\\n\"\n",
- " print \"4.Display\\n\"\n",
- " print \"5.Quit\\n\"\n",
- " print \"\\nEnter your choice : \"\n",
- " choice = int(raw_input())\n",
- " if choice == 1:\n",
- " insert_right()\n",
- " display_queue()\n",
- " elif choice == 2:\n",
- " delete_left()\n",
- " elif choice == 3:\n",
- " delete_right()\n",
- " elif choice == 4:\n",
- " display_queue()\n",
- " elif choice == 5:\n",
- " sys.exit\n",
- " else:\n",
- " print \"Wrong choice...\"\n",
- "\n",
- "def output_que():\n",
- " global left, right, dqueue_arr\n",
- " while(1):\n",
- " # menu options for output restricted queue\n",
- " print \"\\n1. Insert at right\"\n",
- " print \"2. Insert at left\"\n",
- " print \"3. Delete from left\"\n",
- " print \"4. Display\"\n",
- " print \"5 .Quit\"\n",
- " print \"Enter your choice: \"\n",
- " choice = int(raw_input())\n",
- " if choice == 1:\n",
- " insert_right()\n",
- " elif choice == 2:\n",
- " insert_left()\n",
- " elif choice == 3:\n",
- " delete_left()\n",
- " elif choice == 4:\n",
- " display_queue()\n",
- " elif choice == 5:\n",
- " sys.exit()\n",
- " else:\n",
- " print \"Wrong choice...\"\n",
- "\n",
- "# Main menu options\n",
- "print \"1. Input restricted dequeue\"\n",
- "print \"2. Output restricted dequeue\"\n",
- "print \"3. Enter your choice: \"\n",
- "choice = int(raw_input())\n",
- "if choice == 1:\n",
- " input_que()\n",
- "elif choice == 2:\n",
- " output_que()\n",
- "else:\n",
- " print \"Wrong choice...\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1. Input restricted dequeue\n",
- "2. Output restricted dequeue\n",
- "3. Enter your choice: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "1. Insert at right\n",
- "2. Insert at left\n",
- "3. Delete from left\n",
- "4. Display\n",
- "5 .Quit\n",
- "Enter your choice: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Input the element for adding in queue: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "1. Insert at right\n",
- "2. Insert at left\n",
- "3. Delete from left\n",
- "4. Display\n",
- "5 .Quit\n",
- "Enter your choice: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Input the element for adding in queue: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "1. Insert at right\n",
- "2. Insert at left\n",
- "3. Delete from left\n",
- "4. Display\n",
- "5 .Quit\n",
- "Enter your choice: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Element deleted from queue is: 5\n",
- "\n",
- "1. Insert at right\n",
- "2. Insert at left\n",
- "3. Delete from left\n",
- "4. Display\n",
- "5 .Quit\n",
- "Enter your choice: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "4\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Queue elements : 10 \n",
- "1. Insert at right\n",
- "2. Insert at left\n",
- "3. Delete from left\n",
- "4. Display\n",
- "5 .Quit\n",
- "Enter your choice: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "ename": "SystemExit",
- "evalue": "",
- "output_type": "pyerr",
- "traceback": [
- "An exception has occurred, use %tb to see the full traceback.\n",
- "\u001b[1;31mSystemExit\u001b[0m\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "To exit: use 'exit', 'quit', or Ctrl-D.\n"
- ]
- }
- ],
- "prompt_number": 5
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Principles_of_Data_structures_using_C_and_C++/chapter5.ipynb b/Principles_of_Data_structures_using_C_and_C++/chapter5.ipynb
deleted file mode 100755
index d2c1e55b..00000000
--- a/Principles_of_Data_structures_using_C_and_C++/chapter5.ipynb
+++ /dev/null
@@ -1,2664 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:5e20632f7ffb3d70fc7aa801806e31f8dcbb60de6731597c81506e60349baa6d"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 5: The Linked List"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 1, page no. 95"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import sys\n",
- "\n",
- "class node:\n",
- " def __init__(self, data=0, link=None):\n",
- " self.data = data\n",
- " self.link = link\n",
- "\n",
- "start = None\n",
- "\n",
- "def create_list(data):\n",
- " global start\n",
- " tmp = node(data)\n",
- " q = node()\n",
- " if(start==None):\n",
- " start = tmp\n",
- " else:\n",
- " q = start\n",
- " while(q.link != None):\n",
- " q = q.link\n",
- " q.link = tmp\n",
- " \n",
- "def AddAtBeg(data):\n",
- " global start\n",
- " tmp = node(data)\n",
- " if(start == None):\n",
- " start = tmp\n",
- " else:\n",
- " tmp.link = start\n",
- " start = tmp\n",
- " \n",
- "def AddAfter(data, pos):\n",
- " global start\n",
- " q = start\n",
- " for i in range(pos-1):\n",
- " q = q.link\n",
- " if(q == None):\n",
- " print \"\\n\\n There are less than %d elements\" %pos\n",
- " return\n",
- " tmp = node(data)\n",
- " tmp.link = q.link\n",
- " q.link = tmp\n",
- " \n",
- "def Del(data):\n",
- " global start\n",
- " if (start.data == data):\n",
- " tmp = start\n",
- " start = start.link\n",
- " return\n",
- " q = start\n",
- " while(q.link.link != None):\n",
- " if(q.link.data == data):\n",
- " tmp = q.link\n",
- " q.link = tmp.link\n",
- " return\n",
- " q = q.link\n",
- " if(q.link.data == data):\n",
- " tmp = q.link;\n",
- " q.link = None\n",
- " return\n",
- " print \"\\n\\nElement %d not found\" %data\n",
- "\n",
- "def Display():\n",
- " global start\n",
- " if(start == None):\n",
- " print \"\\n\\nList is empty\"\n",
- " return\n",
- " q=start\n",
- " print \"\\n\\nList is : \"\n",
- " while(q != None):\n",
- " print q.data,\n",
- " q = q.link\n",
- "\n",
- "def Count():\n",
- " global start\n",
- " q = start\n",
- " cnt = 0\n",
- " while(q != None):\n",
- " q = q.link\n",
- " cnt+=1\n",
- " print \"Number of elements are %d\\n\" %cnt\n",
- "\n",
- "def Rev():\n",
- " global start\n",
- " if(start.link==None):\n",
- " return\n",
- " p1 = start\n",
- " p2 = p1.link\n",
- " p3 = p2.link\n",
- " p1.link = None\n",
- " p2.link = p1\n",
- " while(p3 != None):\n",
- " p1=p2\n",
- " p2=p3\n",
- " p3=p3.link\n",
- " p2.link=p1\n",
- " start=p2\n",
- "\n",
- "def Search(data):\n",
- " global start\n",
- " ptr = start\n",
- " pos = 1\n",
- " while(ptr!=None):\n",
- " if (ptr.data == data):\n",
- " print \"\\n\\nItem %d found at position %d\" %(data, pos)\n",
- " return\n",
- " ptr = ptr.link\n",
- " pos+=1\n",
- " if (ptr == None):\n",
- " print \"\\n\\nItem %d not found in list\" %data\n",
- "\n",
- "while(1):\n",
- " print \"\\n1.Create List\"\n",
- " print \"2.Add at beginning\"\n",
- " print \"3.Add after\"\n",
- " print \"4.Delete\"\n",
- " print \"5.Display\"\n",
- " print \"6.Count\"\n",
- " print \"7.Reverse\"\n",
- " print \"8.Search\"\n",
- " print \"9.Quit\"\n",
- " print \"Enter your choice: \",\n",
- " choice =int(raw_input())\n",
- " if choice == 1:\n",
- " print \"\\n\\nHow many nodes you want:\"\n",
- " n = int(raw_input())\n",
- " for i in range(n):\n",
- " print \"Enter the element: \"\n",
- " data = int(raw_input())\n",
- " create_list(data)\n",
- " elif choice == 2:\n",
- " print \"\\n\\nEnter the element : \"\n",
- " data = int(raw_input())\n",
- " AddAtBeg(data)\n",
- " elif choice == 3:\n",
- " print \"\\n\\nEnter the element : \"\n",
- " data = int(raw_input())\n",
- " print \"\\nEnter the position after which this element is inserted:\"\n",
- " pos = int(raw_input())\n",
- " AddAfter(data,pos)\n",
- " elif choice == 4:\n",
- " if (start == None):\n",
- " print \"\\n\\nList is empty\"\n",
- " continue\n",
- " print \"\\n\\nEnter the element for deletion:\"\n",
- " data = int(raw_input())\n",
- " Del(data)\n",
- " elif choice == 5:\n",
- " Display()\n",
- " elif choice == 6:\n",
- " Count()\n",
- " elif choice == 7:\n",
- " Rev()\n",
- " elif choice == 8:\n",
- " print \"\\n\\nEnter the element to be searched:\"\n",
- " data = int(raw_input())\n",
- " Search(data)\n",
- " elif choice == 9:\n",
- " sys.exit()\n",
- " else:\n",
- " print \"\\n\\nWrong choice\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.Create List\n",
- "2.Add at beginning\n",
- "3.Add after\n",
- "4.Delete\n",
- "5.Display\n",
- "6.Count\n",
- "7.Reverse\n",
- "8.Search\n",
- "9.Quit\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "\n",
- "How many nodes you want:\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the element: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the element: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the element: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "20\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "1.Create List\n",
- "2.Add at beginning\n",
- "3.Add after\n",
- "4.Delete\n",
- "5.Display\n",
- "6.Count\n",
- "7.Reverse\n",
- "8.Search\n",
- "9.Quit\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "\n",
- "List is : \n",
- "10 15 20 \n",
- "1.Create List\n",
- "2.Add at beginning\n",
- "3.Add after\n",
- "4.Delete\n",
- "5.Display\n",
- "6.Count\n",
- "7.Reverse\n",
- "8.Search\n",
- "9.Quit\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "6\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Number of elements are 3\n",
- "\n",
- "\n",
- "1.Create List\n",
- "2.Add at beginning\n",
- "3.Add after\n",
- "4.Delete\n",
- "5.Display\n",
- "6.Count\n",
- "7.Reverse\n",
- "8.Search\n",
- "9.Quit\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "9\n"
- ]
- },
- {
- "ename": "SystemExit",
- "evalue": "",
- "output_type": "pyerr",
- "traceback": [
- "An exception has occurred, use %tb to see the full traceback.\n",
- "\u001b[1;31mSystemExit\u001b[0m\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "To exit: use 'exit', 'quit', or Ctrl-D.\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 2. page no. 101"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "import sys\n",
- "\n",
- "class node:\n",
- " def __init__(self, data=0, link=None):\n",
- " self.data = data\n",
- " self.link = link\n",
- "\n",
- "start = None\n",
- "\n",
- "class LinkedList():\n",
- "\n",
- " def create_list(self,data):\n",
- " global start\n",
- " tmp = node(data)\n",
- " q = node()\n",
- " if(start==None):\n",
- " start = tmp\n",
- " else:\n",
- " q = start\n",
- " while(q.link != None):\n",
- " q = q.link\n",
- " q.link = tmp\n",
- " \n",
- " \n",
- " def AddAtBeg(self,data):\n",
- " global start\n",
- " tmp = node(data)\n",
- " if(start == None):\n",
- " start = tmp\n",
- " else:\n",
- " tmp.link = start\n",
- " start = tmp\n",
- " \n",
- "\n",
- " def AddAfter(self,data, pos):\n",
- " global start\n",
- " q = start\n",
- " for i in range(pos-1):\n",
- " q = q.link\n",
- " if(q == None):\n",
- " print \"\\n\\n There are less than %d elements\" %pos\n",
- " return\n",
- " tmp = node(data)\n",
- " tmp.link = q.link\n",
- " q.link = tmp\n",
- " \n",
- "\n",
- " def Del(self,data):\n",
- " global start\n",
- " if (start.data == data):\n",
- " tmp = start\n",
- " start = start.link\n",
- " return\n",
- " q = start\n",
- " while(q.link.link != None):\n",
- " if(q.link.data == data):\n",
- " tmp = q.link\n",
- " q.link = tmp.link\n",
- " return\n",
- " q = q.link\n",
- " if(q.link.data == data):\n",
- " tmp = q.link;\n",
- " q.link = None\n",
- " return\n",
- " print \"\\n\\nElement %d not found\" %data \n",
- "\n",
- "\n",
- " def Display(self):\n",
- " global start\n",
- " if(start == None):\n",
- " print \"\\n\\nList is empty\"\n",
- " return\n",
- " q=start\n",
- " print \"\\n\\nList is : \"\n",
- " while(q != None):\n",
- " print q.data,\n",
- " q = q.link\n",
- " \n",
- " def Count(self):\n",
- " global start\n",
- " q = start\n",
- " cnt = 0\n",
- " while(q != None):\n",
- " q = q.link\n",
- " cnt+=1\n",
- " print \"Number of elements are %d\\n\" %cnt\n",
- " \n",
- " \n",
- " def Rev(self):\n",
- " global start\n",
- " if(start.link==None):\n",
- " return\n",
- " p1 = start\n",
- " p2 = p1.link\n",
- " p3 = p2.link\n",
- " p1.link = None\n",
- " p2.link = p1\n",
- " while(p3 != None):\n",
- " p1=p2\n",
- " p2=p3\n",
- " p3=p3.link\n",
- " p2.link=p1\n",
- " start=p2\n",
- " \n",
- "\n",
- " def Search(self,data):\n",
- " global start\n",
- " ptr = start\n",
- " pos = 1\n",
- " while(ptr!=None):\n",
- " if (ptr.data == data):\n",
- " print \"\\n\\nItem %d found at position %d\" %(data, pos)\n",
- " return\n",
- " ptr = ptr.link\n",
- " pos+=1\n",
- " if (ptr == None):\n",
- " print \"\\n\\nItem %d not found in list\" %data\n",
- " \n",
- "\n",
- "l_list = LinkedList()\n",
- "\n",
- "while(1):\n",
- " print \"\\n1.Create List\"\n",
- " print \"2.Add at beginning\"\n",
- " print \"3.Add after\"\n",
- " print \"4.Delete\"\n",
- " print \"5.Display\"\n",
- " print \"6.Count\"\n",
- " print \"7.Reverse\"\n",
- " print \"8.Search\"\n",
- " print \"9.Quit\"\n",
- " print \"Enter your choice: \",\n",
- " choice =int(raw_input())\n",
- " if choice == 1:\n",
- " print \"\\n\\nHow many nodes you want:\"\n",
- " n = int(raw_input())\n",
- " for i in range(n):\n",
- " print \"Enter the element: \"\n",
- " data = int(raw_input())\n",
- " l_list.create_list(data)\n",
- " elif choice == 2:\n",
- " print \"\\n\\nEnter the element : \"\n",
- " data = int(raw_input())\n",
- " l_list.AddAtBeg(data)\n",
- " elif choice == 3:\n",
- " print \"\\n\\nEnter the element : \"\n",
- " data = int(raw_input())\n",
- " print \"\\nEnter the position after which this element is inserted:\"\n",
- " pos = int(raw_input())\n",
- " l_list.AddAfter(data,pos)\n",
- " elif choice == 4:\n",
- " if (start == None):\n",
- " print \"\\n\\nList is empty\"\n",
- " continue\n",
- " print \"\\n\\nEnter the element for deletion:\"\n",
- " data = int(raw_input())\n",
- " l_list.Del(data)\n",
- " elif choice == 5:\n",
- " l_list.Display()\n",
- " elif choice == 6:\n",
- " l_list.Count()\n",
- " elif choice == 7:\n",
- " l_list.Rev()\n",
- " elif choice == 8:\n",
- " print \"\\n\\nEnter the element to be searched:\"\n",
- " data = int(raw_input())\n",
- " l_list.Search(data)\n",
- " elif choice == 9:\n",
- " sys.exit()\n",
- " else:\n",
- " print \"\\n\\nWrong choice\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.Create List\n",
- "2.Add at beginning\n",
- "3.Add after\n",
- "4.Delete\n",
- "5.Display\n",
- "6.Count\n",
- "7.Reverse\n",
- "8.Search\n",
- "9.Quit\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "\n",
- "How many nodes you want:\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the element: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the element: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the element: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "1.Create List\n",
- "2.Add at beginning\n",
- "3.Add after\n",
- "4.Delete\n",
- "5.Display\n",
- "6.Count\n",
- "7.Reverse\n",
- "8.Search\n",
- "9.Quit\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "\n",
- "List is : \n",
- "5 10 15 \n",
- "1.Create List\n",
- "2.Add at beginning\n",
- "3.Add after\n",
- "4.Delete\n",
- "5.Display\n",
- "6.Count\n",
- "7.Reverse\n",
- "8.Search\n",
- "9.Quit\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "6\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Number of elements are 3\n",
- "\n",
- "\n",
- "1.Create List\n",
- "2.Add at beginning\n",
- "3.Add after\n",
- "4.Delete\n",
- "5.Display\n",
- "6.Count\n",
- "7.Reverse\n",
- "8.Search\n",
- "9.Quit\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "9\n"
- ]
- },
- {
- "ename": "SystemExit",
- "evalue": "",
- "output_type": "pyerr",
- "traceback": [
- "An exception has occurred, use %tb to see the full traceback.\n",
- "\u001b[1;31mSystemExit\u001b[0m\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "To exit: use 'exit', 'quit', or Ctrl-D.\n"
- ]
- }
- ],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 3, page no. 109"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import sys\n",
- "\n",
- "class node:\n",
- " def __init__(self, link=None):\n",
- " self.data = None\n",
- " self.link = link\n",
- " \n",
- "start = None\n",
- "\n",
- "\n",
- "def push(top):\n",
- " new = node()\n",
- " print \"Enter element to be pushed: \",\n",
- " pushed_item = int(raw_input())\n",
- " new.data = pushed_item\n",
- " new.link = top\n",
- " top = new\n",
- " return top\n",
- "\n",
- "def pop(top):\n",
- " tmp = node()\n",
- " if(top == None):\n",
- " print \"Stack is empty...\" \n",
- " else:\n",
- " tmp = top\n",
- " print \"Popped item is: \", tmp.data\n",
- " top = top.link\n",
- " tmp.link = None\n",
- " return top\n",
- "\n",
- "def display(top):\n",
- " if(top == None):\n",
- " print \"Stack is empty...\"\n",
- " else:\n",
- " print \"Stack elements: \"\n",
- " while(top.link != None):\n",
- " print top.data,\n",
- " top = top.link\n",
- " \n",
- "Top = node()\n",
- "while(1):\n",
- " print \"\\n1.PUSH\"\n",
- " print \"2.POP\"\n",
- " print \"3.DISPLAY\"\n",
- " print \"4.EXIT\"\n",
- " print \"Enter your choice: \",\n",
- " choice = int(raw_input())\n",
- " if choice == 1:\n",
- " Top = push(Top)\n",
- " elif choice == 2:\n",
- " Top=pop(Top)\n",
- " elif choice == 3:\n",
- " display(Top)\n",
- " elif choice == 4:\n",
- " sys.exit() \n",
- " else:\n",
- " print \"Wrong choice\"\n",
- " print \"\\nDo you want to continue (Y/y) = \"\n",
- " ch = raw_input()\n",
- " if ch == 'Y' or ch == 'y':\n",
- " continue\n",
- " else:\n",
- " sys.exit()"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "1.PUSH\n",
- "2.POP\n",
- "3.DISPLAY\n",
- "4.EXIT\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element to be pushed: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.PUSH\n",
- "2.POP\n",
- "3.DISPLAY\n",
- "4.EXIT\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element to be pushed: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.PUSH\n",
- "2.POP\n",
- "3.DISPLAY\n",
- "4.EXIT\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Stack elements: \n",
- "10 5 \n",
- "1.PUSH\n",
- "2.POP\n",
- "3.DISPLAY\n",
- "4.EXIT\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "4\n"
- ]
- },
- {
- "ename": "SystemExit",
- "evalue": "",
- "output_type": "pyerr",
- "traceback": [
- "An exception has occurred, use %tb to see the full traceback.\n",
- "\u001b[1;31mSystemExit\u001b[0m\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "To exit: use 'exit', 'quit', or Ctrl-D.\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 4, page no. 111"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import sys\n",
- "\n",
- "class node:\n",
- " def __init__(self, link=None):\n",
- " self.data = None\n",
- " self.link = link\n",
- "\n",
- "\n",
- "class linkList:\n",
- " def push(self, top):\n",
- " new = node()\n",
- " print \"Enter element to be pushed: \",\n",
- " pushed_item = int(raw_input())\n",
- " new.data = pushed_item\n",
- " new.link = top\n",
- " top = new\n",
- " return top\n",
- "\n",
- " def pop(self, top):\n",
- " tmp = node()\n",
- " if(top == None):\n",
- " print \"Stack is empty...\" \n",
- " else:\n",
- " tmp = top\n",
- " print \"Popped item is: \", tmp.data\n",
- " top = top.link\n",
- " tmp.link = None\n",
- " return top\n",
- "\n",
- " def display(self, top):\n",
- " if(top == None):\n",
- " print \"Stack is empty...\"\n",
- " else:\n",
- " print \"Stack elements: \"\n",
- " while(top.link != None):\n",
- " print top.data,\n",
- " top = top.link\n",
- " \n",
- "Top = node()\n",
- "link_list = linkList()\n",
- "while(1):\n",
- " print \"\\n1.PUSH\"\n",
- " print \"2.POP\"\n",
- " print \"3.DISPLAY\"\n",
- " print \"4.EXIT\"\n",
- " print \"Enter your choice: \",\n",
- " choice = int(raw_input())\n",
- " if choice == 1:\n",
- " Top = link_list.push(Top)\n",
- " elif choice == 2:\n",
- " Top = link_list.pop(Top)\n",
- " elif choice == 3:\n",
- " link_list.display(Top)\n",
- " elif choice == 4:\n",
- " sys.exit() \n",
- " else:\n",
- " print \"Wrong choice\"\n",
- " print \"\\nDo you want to continue (Y/y) = \"\n",
- " ch = raw_input()\n",
- " if ch == 'Y' or ch == 'y':\n",
- " continue\n",
- " else:\n",
- " sys.exit()"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.PUSH\n",
- "2.POP\n",
- "3.DISPLAY\n",
- "4.EXIT\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element to be pushed: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.PUSH\n",
- "2.POP\n",
- "3.DISPLAY\n",
- "4.EXIT\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element to be pushed: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.PUSH\n",
- "2.POP\n",
- "3.DISPLAY\n",
- "4.EXIT\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Stack elements: \n",
- "10 5 None \n",
- "1.PUSH\n",
- "2.POP\n",
- "3.DISPLAY\n",
- "4.EXIT\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "4\n"
- ]
- },
- {
- "ename": "SystemExit",
- "evalue": "",
- "output_type": "pyerr",
- "traceback": [
- "An exception has occurred, use %tb to see the full traceback.\n",
- "\u001b[1;31mSystemExit\u001b[0m\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "To exit: use 'exit', 'quit', or Ctrl-D.\n"
- ]
- }
- ],
- "prompt_number": 6
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 5, page no. 116"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import sys\n",
- "\n",
- "class node:\n",
- " def __init__(self, link=None):\n",
- " self.data = None\n",
- " self.link = link\n",
- "\n",
- "def push(rear):\n",
- " new_node = node()\n",
- " print \"Enter the no. to be pushed: \",\n",
- " new_node.data = int(raw_input())\n",
- " new_node.link = None\n",
- " if (rear != None):\n",
- " rear.link = new_node\n",
- " rear = new_node\n",
- " return rear\n",
- "\n",
- "def pop(f, r):\n",
- " if f == None:\n",
- " print \"The Queue is empty\"\n",
- " else:\n",
- " print \"The poped element is: \", f.data\n",
- " if f != r:\n",
- " f = f.link\n",
- " else:\n",
- " f = None\n",
- " return f\n",
- "\n",
- "def traverse(fr, re):\n",
- " if fr == None:\n",
- " print \"The Queue is empty\"\n",
- " else:\n",
- " print \"The element(s) is/are: \"\n",
- " while fr != re:\n",
- " print fr.data,\n",
- " fr = fr.link\n",
- " print fr.data,\n",
- "\n",
- "rear = None\n",
- "front = None\n",
- "while(1):\n",
- " print \"\\n1.PUSH\"\n",
- " print \"2.POP\"\n",
- " print \"3.TRAVERSE\"\n",
- " print \"4.EXIT\"\n",
- " print \"Enter your choice: \",\n",
- " choice = int(raw_input())\n",
- " if choice == 1:\n",
- " rear = push(rear)\n",
- " if front == None:\n",
- " front = rear\n",
- " elif choice == 2:\n",
- " front = pop(front, rear)\n",
- " if front == None:\n",
- " rear = None\n",
- " elif choice == 3:\n",
- " traverse(front, rear)\n",
- " elif choice == 4:\n",
- " sys.exit() \n",
- " else:\n",
- " print \"Wrong choice\"\n",
- " print \"\\nDo you want to continue (Y/y) = \"\n",
- " ch = raw_input()\n",
- " if ch == 'Y' or ch == 'y':\n",
- " continue\n",
- " else:\n",
- " sys.exit()\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.PUSH\n",
- "2.POP\n",
- "3.TRAVERSE\n",
- "4.EXIT\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter the no. to be pushed: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.PUSH\n",
- "2.POP\n",
- "3.TRAVERSE\n",
- "4.EXIT\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter the no. to be pushed: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.PUSH\n",
- "2.POP\n",
- "3.TRAVERSE\n",
- "4.EXIT\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " The element(s) is/are: \n",
- "5 10 \n",
- "1.PUSH\n",
- "2.POP\n",
- "3.TRAVERSE\n",
- "4.EXIT\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "4\n"
- ]
- },
- {
- "ename": "SystemExit",
- "evalue": "",
- "output_type": "pyerr",
- "traceback": [
- "An exception has occurred, use %tb to see the full traceback.\n",
- "\u001b[1;31mSystemExit\u001b[0m\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "To exit: use 'exit', 'quit', or Ctrl-D.\n"
- ]
- }
- ],
- "prompt_number": 7
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 6, page no. 119"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import sys\n",
- "\n",
- "class node:\n",
- " def __init__(self, link=None):\n",
- " self.data = None\n",
- " self.link = link\n",
- "\n",
- "class linkList:\n",
- " def push(self, rear):\n",
- " new_node = node()\n",
- " print \"Enter the no. to be pushed: \",\n",
- " new_node.data = int(raw_input())\n",
- " new_node.link = None\n",
- " if (rear != None):\n",
- " rear.link = new_node\n",
- " rear = new_node\n",
- " return rear\n",
- "\n",
- " def pop(self, f, r):\n",
- " if f == None:\n",
- " print \"The Queue is empty\"\n",
- " else:\n",
- " print \"The poped element is: \", f.data\n",
- " if f != r:\n",
- " f = f.link\n",
- " else:\n",
- " f = None\n",
- " return f\n",
- "\n",
- " def traverse(self, fr, re):\n",
- " if fr == None:\n",
- " print \"The Queue is empty\"\n",
- " else:\n",
- " print \"The element(s) is/are: \"\n",
- " while fr != re:\n",
- " print fr.data,\n",
- " fr = fr.link\n",
- " print fr.data,\n",
- " \n",
- "rear = None\n",
- "front = None\n",
- "l = linkList()\n",
- "while(1):\n",
- " print \"\\n1.PUSH\"\n",
- " print \"2.POP\"\n",
- " print \"3.TRAVERSE\"\n",
- " print \"4.EXIT\"\n",
- " print \"Enter your choice: \",\n",
- " choice = int(raw_input())\n",
- " if choice == 1:\n",
- " rear = l.push(rear)\n",
- " if front == None:\n",
- " front = rear\n",
- " elif choice == 2:\n",
- " front = l.pop(front, rear)\n",
- " if front == None:\n",
- " rear = None\n",
- " elif choice == 3:\n",
- " l.traverse(front, rear)\n",
- " elif choice == 4:\n",
- " sys.exit() \n",
- " else:\n",
- " print \"Wrong choice\"\n",
- " print \"\\nDo you want to continue (Y/y) = \"\n",
- " ch = raw_input()\n",
- " if ch == 'Y' or ch == 'y':\n",
- " continue\n",
- " else:\n",
- " sys.exit()\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.PUSH\n",
- "2.POP\n",
- "3.TRAVERSE\n",
- "4.EXIT\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter the no. to be pushed: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.PUSH\n",
- "2.POP\n",
- "3.TRAVERSE\n",
- "4.EXIT\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter the no. to be pushed: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.PUSH\n",
- "2.POP\n",
- "3.TRAVERSE\n",
- "4.EXIT\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " The element(s) is/are: \n",
- "5 10 \n",
- "1.PUSH\n",
- "2.POP\n",
- "3.TRAVERSE\n",
- "4.EXIT\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Wrong choice\n",
- "\n",
- "Do you want to continue (Y/y) = \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "n\n"
- ]
- },
- {
- "ename": "SystemExit",
- "evalue": "",
- "output_type": "pyerr",
- "traceback": [
- "An exception has occurred, use %tb to see the full traceback.\n",
- "\u001b[1;31mSystemExit\u001b[0m\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "To exit: use 'exit', 'quit', or Ctrl-D.\n"
- ]
- }
- ],
- "prompt_number": 8
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 8, page no. 127"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "class node:\n",
- " \n",
- " def __init__(self):\n",
- " self.coef = 0.0\n",
- " self.expo = 0\n",
- " self.link = None\n",
- "\n",
- "def insert(start, co, ex):\n",
- " ptr = node()\n",
- " tmp = node()\n",
- " tmp.coef = co\n",
- " tmp.expo = ex\n",
- " if(start==None or ex>start.expo):\n",
- " tmp.link=start\n",
- " start = tmp\n",
- " else:\n",
- " ptr=start\n",
- " while(ptr.link != None and ptr.link.expo > ex):\n",
- " ptr = ptr.link\n",
- " tmp.link = ptr.link\n",
- " ptr.link = tmp\n",
- " if(ptr.link==None):\n",
- " tmp.link = None\n",
- " return start\n",
- "\n",
- "def poly_add(p1, p2):\n",
- " p3 = node()\n",
- " tmp = node()\n",
- " p3_start = None\n",
- " if(p1 == None and p2 == None):\n",
- " return p3_start\n",
- " while(p1 != None and p2 != None):\n",
- " if(p3_start == None):\n",
- " p3_start = tmp\n",
- " p3 = p3_start\n",
- " else:\n",
- " p3.link = tmp\n",
- " p3 = p3.link\n",
- " if(p1.expo > p2.expo):\n",
- " tmp.coef=p1.coef\n",
- " tmp.expo=p1.expo\n",
- " p1 = p1.link\n",
- " else:\n",
- " if(p2.expo > p1.expo):\n",
- " tmp.coef = p2.coef\n",
- " tmp.expo = p2.expo\n",
- " p2 = p2.link\n",
- " else:\n",
- " if(p1.expo == p2.expo):\n",
- " tmp.coef=p1.coef + p2.coef\n",
- " tmp.expo=p1.expo\n",
- " p1=p1.link\n",
- " p2=p2.link\n",
- " while(p1!=None):\n",
- " tmp.coef = p1.coef\n",
- " tmp.expo = p1.expo\n",
- " if (p3_start==None):\n",
- " p3_start=tmp\n",
- " p3=p3_start\n",
- " else:\n",
- " p3.link=tmp\n",
- " p3=p3.link\n",
- " p1=p1.link\n",
- " while(p2!=None):\n",
- " tmp.coef = p2.coef\n",
- " tmp.expo = p2.expo\n",
- " if (p3_start==None):\n",
- " p3_start = tmp\n",
- " p3 = p3_start\n",
- " else:\n",
- " p3.link = tmp\n",
- " p3 = p3.link\n",
- " p2 = p2.link\n",
- " p3.link = None\n",
- " return p3_start\n",
- "\n",
- "def enter(start):\n",
- " print \"How many terms u want to enter: \"\n",
- " n = int(raw_input())\n",
- " for i in range(n):\n",
- " print \"Enter coeficient for term %d:\" %i\n",
- " co = float(raw_input())\n",
- " print \"Enter exponent for term %d:\" %i\n",
- " ex = int(raw_input())\n",
- " start = insert(start,co,ex);\n",
- " return start\n",
- "\n",
- "def display(ptr):\n",
- " if (ptr==None):\n",
- " print \"Empty...\"\n",
- " return\n",
- " while(ptr!=None):\n",
- " print \"(%.1fx^%d) + \" %(ptr.coef, ptr.expo)\n",
- " ptr = ptr.link\n",
- " print \"\\b\\b \\n\"\n",
- "\n",
- "p1_start=None\n",
- "p2_start=None\n",
- "p3_start=None\n",
- "print \"\\nPolynomial 1 : \"\n",
- "p1_start = enter(p1_start)\n",
- "print \"\\nPolynomial 2 :\"\n",
- "p2_start = enter(p2_start)\n",
- "p3_start = poly_add(p1_start, p2_start)\n",
- "print \"\\nPolynomial 1 is: \"\n",
- "display(p1_start)\n",
- "print \"Polynomial 2 is: \"\n",
- "display(p2_start)\n",
- "print \"\\nAdded polynomial is: \"\n",
- "display (p3_start)"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "Polynomial 1 : \n",
- "How many terms u want to enter: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter coeficient for term 0:\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter exponent for term 0:\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter coeficient for term 1:\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "4\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter exponent for term 1:\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "Polynomial 2 :\n",
- "How many terms u want to enter: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter coeficient for term 0:\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter exponent for term 0:\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter coeficient for term 1:\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter exponent for term 1:\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "4\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "Polynomial 1 is: \n",
- "(4.0x^5) + \n",
- "(2.0x^3) + \n",
- "\b\b \n",
- "\n",
- "Polynomial 2 is: \n",
- "(3.0x^4) + \n",
- "(1.0x^2) + \n",
- "\b\b \n",
- "\n",
- "\n",
- "Added polynomial is: \n",
- "(1.0x^2) + \n",
- "\b\b \n",
- "\n"
- ]
- }
- ],
- "prompt_number": 9
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 9, page no. 134"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import sys\n",
- "\n",
- "class node:\n",
- " def __init__(self, info=0, next=None, prev=None):\n",
- " self.info = info\n",
- " self.next = next\n",
- " self.prev = prev\n",
- "\n",
- "start = node()\n",
- "\n",
- "def create_list(num):\n",
- " global start\n",
- " tmp = node()\n",
- " tmp.info = num\n",
- " q = node()\n",
- " if(start.next == None):\n",
- " tmp.prev = None\n",
- " start.prev = tmp\n",
- " start = tmp\n",
- " else:\n",
- " q = start\n",
- " while(q.next != None):\n",
- " q = q.next\n",
- " q.next = tmp\n",
- " tmp.prev = q\n",
- "\n",
- "def addatbeg(num):\n",
- " global start\n",
- " tmp = node()\n",
- " tmp.info = num\n",
- " tmp.next = start\n",
- " start.prev = tmp\n",
- " start = tmp\n",
- "\n",
- "def addafter(num, pos):\n",
- " global start\n",
- " q=start\n",
- " for i in range(0,pos-1):\n",
- " q=q.next\n",
- " if(q==None):\n",
- " print \"\\nThere are less than %d elements\\n\" %pos\n",
- " return\n",
- " tmp = node()\n",
- " tmp.info = num\n",
- " q.next.prev = tmp\n",
- " tmp.next = q.next\n",
- " tmp.prev = q\n",
- " q.next = tmp\n",
- "\n",
- "def my_del(num):\n",
- " global start\n",
- " if(start.info==num):\n",
- " tmp = start\n",
- " start = start.next\n",
- " start.prev = None\n",
- " return\n",
- " q = start;\n",
- " while(q.next.next != None):\n",
- " if(q.next.info==num):\n",
- " tmp=q.next\n",
- " q.next=tmp.next\n",
- " tmp.next.prev = q\n",
- " return\n",
- " q = q.next\n",
- " if (q.next.info==num):\n",
- " tmp = q.next\n",
- " q.next = None\n",
- " return\n",
- " print \"\\nElement %d not found\\n\" %num\n",
- "\n",
- "def display():\n",
- " global start\n",
- " if(start==None):\n",
- " print \"\\nList is empty\\n\"\n",
- " return\n",
- " q = start\n",
- " print \"\\nList is :\\n\"\n",
- " while(q!=None):\n",
- " print q.info,\n",
- " q = q.next\n",
- "\n",
- "def count():\n",
- " global start\n",
- " q=start\n",
- " cnt=0\n",
- " while(q!=None):\n",
- " q=q.next\n",
- " cnt+=1\n",
- " print \"\\nNumber of elements are \\n\", cnt\n",
- "\n",
- "def rev():\n",
- " global start\n",
- " p1=start\n",
- " p2=p1.next\n",
- " p1.next=None\n",
- " p1.prev=p2\n",
- " while(p2!=None):\n",
- " p2.prev=p2.next\n",
- " p2.next=p1\n",
- " p1=p2\n",
- " p2=p2.prev\n",
- " start=p1\n",
- "\n",
- "while(1):\n",
- " print \"\\n1.Create List\"\n",
- " print \"2.Add at begining\"\n",
- " print \"3.Add after\"\n",
- " print \"4.Delete\"\n",
- " print \"5.Display\"\n",
- " print \"6.Count\"\n",
- " print \"7.Reverse\"\n",
- " print \"8.exit\"\n",
- " print \"Enter your choice: \",\n",
- " choice = int(raw_input())\n",
- " if choice == 1:\n",
- " print \"\\nHow many nodes you want: \",\n",
- " n = int(raw_input())\n",
- " for i in range(n):\n",
- " print \"Enter the element: \",\n",
- " m = int(raw_input())\n",
- " create_list(m)\n",
- " elif choice == 2:\n",
- " print \"\\nEnter the element: \",\n",
- " m = int(raw_input())\n",
- " addatbeg(m)\n",
- " elif choice == 3:\n",
- " print \"\\nEnter the element: \",\n",
- " m = int(raw_input())\n",
- " print \"Enter the position after which this element is inserted: \",\n",
- " po = int(raw_input())\n",
- " addafter(m,po)\n",
- " elif choice == 4:\n",
- " print \"\\nEnter the element for deletion: \",\n",
- " m = int(raw_input())\n",
- " my_del(m);\n",
- " elif choice == 5:\n",
- " display()\n",
- " elif choice == 6:\n",
- " count()\n",
- " elif choice == 7:\n",
- " rev()\n",
- " elif choice == 8:\n",
- " sys.exit()\n",
- " else:\n",
- " print \"\\nWrong choice\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.Create List\n",
- "2.Add at begining\n",
- "3.Add after\n",
- "4.Delete\n",
- "5.Display\n",
- "6.Count\n",
- "7.Reverse\n",
- "8.exit\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "How many nodes you want: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter the element: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter the element: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter the element: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.Create List\n",
- "2.Add at begining\n",
- "3.Add after\n",
- "4.Delete\n",
- "5.Display\n",
- "6.Count\n",
- "7.Reverse\n",
- "8.exit\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "List is :\n",
- "\n",
- "15 \n",
- "1.Create List\n",
- "2.Add at begining\n",
- "3.Add after\n",
- "4.Delete\n",
- "5.Display\n",
- "6.Count\n",
- "7.Reverse\n",
- "8.exit\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "8\n"
- ]
- },
- {
- "ename": "SystemExit",
- "evalue": "",
- "output_type": "pyerr",
- "traceback": [
- "An exception has occurred, use %tb to see the full traceback.\n",
- "\u001b[1;31mSystemExit\u001b[0m\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "To exit: use 'exit', 'quit', or Ctrl-D.\n"
- ]
- }
- ],
- "prompt_number": 12
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 10, page no. 141"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import sys\n",
- "\n",
- "class node:\n",
- " def __init__(self, info=None, link=None):\n",
- " self.info = info\n",
- " self.link = link\n",
- "\n",
- "last = None\n",
- "class Circular_Linked:\n",
- " def create_list(self, num):\n",
- " global last\n",
- " q = node()\n",
- " tmp = node()\n",
- " tmp.info = num\n",
- " if (last == None):\n",
- " last = tmp\n",
- " tmp.link = last\n",
- " else:\n",
- " tmp.link = last.link\n",
- " last.link = tmp\n",
- " last = tmp\n",
- "\n",
- " def addatbeg(self, num):\n",
- " global last\n",
- " tmp = node()\n",
- " tmp.info = num\n",
- " tmp.link = last.link\n",
- " last.link = tmp\n",
- "\n",
- " def addafter(self, num, pos):\n",
- " global last\n",
- " q = node()\n",
- " tmp = node()\n",
- " q = last.link\n",
- " for i in range(0, pos-1):\n",
- " q = q.link\n",
- " if (q == last.link):\n",
- " print \"There are less than \", pos, \" elements\"\n",
- " return\n",
- " tmp.link = q.link\n",
- " tmp.info = num\n",
- " q.link = tmp\n",
- " if(q==last):\n",
- " last=tmp\n",
- "\n",
- " def my_del(self):\n",
- " global last\n",
- " if(last == None):\n",
- " print \"List underflow\"\n",
- " return\n",
- " print \"Enter the number for deletion:\"\n",
- " num = int(raw_input())\n",
- " q = node()\n",
- " tmp = node()\n",
- " if( last.link == last and last.info == num):\n",
- " tmp = last\n",
- " last = None\n",
- " return\n",
- " q = last.link\n",
- " if(q.info == num):\n",
- " tmp = q\n",
- " last.link = q.link\n",
- " return\n",
- " while(q.link != last):\n",
- " if(q.link.info == num):\n",
- " tmp = q.link\n",
- " q.link = tmp.link\n",
- " print num, \" deleted\"\n",
- " q = q.link\n",
- " if(q.link.info == num):\n",
- " tmp = q.link\n",
- " q.link = last.link\n",
- " last = q\n",
- " return\n",
- " print \"Element \",num,\" not found\"\n",
- "\n",
- " def display(self):\n",
- " global last\n",
- " q = node()\n",
- " if(last == None):\n",
- " print \"List is empty\"\n",
- " return\n",
- " q = last.link\n",
- " print \"List is:\"\n",
- " while(q != last):\n",
- " print q.info,\n",
- " q = q.link\n",
- " print last.info\n",
- " \n",
- "co = Circular_Linked()\n",
- "while(1):\n",
- " print \"\\n1.Create List\"\n",
- " print \"2.Add at begining\"\n",
- " print \"3.Add after\"\n",
- " print \"4.Delete\"\n",
- " print \"5.Display\"\n",
- " print \"6.Quit\"\n",
- " print \"Enter your choice:\"\n",
- " choice = int(raw_input())\n",
- " if choice == 1:\n",
- " print \"How many nodes you want:\",\n",
- " n = int(raw_input())\n",
- " for i in range(n):\n",
- " print \"\\nEnter the element:\",\n",
- " m = int(raw_input())\n",
- " co.create_list(m)\n",
- " elif choice == 2:\n",
- " print \"\\nEnter the element:\",\n",
- " m = int(raw_input())\n",
- " co.addatbeg(m)\n",
- " elif choice == 3:\n",
- " print \"\\nEnter the element:\",\n",
- " m = int(raw_input())\n",
- " print \"\\nEnter the position after which this element is inserted:\",\n",
- " po = int(raw_input())\n",
- " co.addafter(m,po)\n",
- " elif choice == 4:\n",
- " co.my_del()\n",
- " elif choice == 5:\n",
- " co.display()\n",
- " elif choice == 6:\n",
- " sys.exit()\n",
- " else:\n",
- " print \"Wrong choice\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.Create List\n",
- "2.Add at begining\n",
- "3.Add after\n",
- "4.Delete\n",
- "5.Display\n",
- "6.Quit\n",
- "Enter your choice:\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "How many nodes you want:"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Enter the element:"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Enter the element:"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Enter the element:"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.Create List\n",
- "2.Add at begining\n",
- "3.Add after\n",
- "4.Delete\n",
- "5.Display\n",
- "6.Quit\n",
- "Enter your choice:\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "List is:\n",
- "5 10 15\n",
- "\n",
- "1.Create List\n",
- "2.Add at begining\n",
- "3.Add after\n",
- "4.Delete\n",
- "5.Display\n",
- "6.Quit\n",
- "Enter your choice:\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "6\n"
- ]
- },
- {
- "ename": "SystemExit",
- "evalue": "",
- "output_type": "pyerr",
- "traceback": [
- "An exception has occurred, use %tb to see the full traceback.\n",
- "\u001b[1;31mSystemExit\u001b[0m\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "To exit: use 'exit', 'quit', or Ctrl-D.\n"
- ]
- }
- ],
- "prompt_number": 13
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 11, page no. 148"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import sys\n",
- "\n",
- "class node:\n",
- " def __init__(self, priority=None, info=None, link=None):\n",
- " self.priority = priority\n",
- " self.info = info\n",
- " self.link = link\n",
- "\n",
- "def insert(front):\n",
- " tmp = node()\n",
- " q = node()\n",
- " print \"Input the item value to be added in the queue:\"\n",
- " added_item = int(raw_input())\n",
- " print \"Enter its priority:\"\n",
- " item_priority = int(raw_input())\n",
- " tmp.info = added_item\n",
- " tmp.priority = item_priority\n",
- " if(front == None or item_priority < front.priority):\n",
- " tmp.link = front\n",
- " front = tmp\n",
- " else:\n",
- " q = front\n",
- " while(q.link != None and q.link.priority <= item_priority):\n",
- " q = q.link\n",
- " tmp.link = q.link\n",
- " q.link = tmp\n",
- " return front\n",
- "\n",
- "def my_del(front):\n",
- " tmp = node()\n",
- " if(front == None):\n",
- " print \"Queue Underflow\"\n",
- " else:\n",
- " tmp = front;\n",
- " print \"Deleted item is \", tmp.info\n",
- " front = front.link\n",
- " return front\n",
- "\n",
- "def display(front):\n",
- " ptr = node()\n",
- " ptr = front;\n",
- " if(front == None):\n",
- " print \"Queue is empty\"\n",
- " else:\n",
- " print \"Queue is: \"\n",
- " print \"Priority Item \"\n",
- " while(ptr != None):\n",
- " print \"%5d %5d \" %(ptr.priority,ptr.info)\n",
- " ptr = ptr.link\n",
- "\n",
- "front = None\n",
- "while(1):\n",
- " print \"\\n1.Insert\"\n",
- " print \"2.Delete\"\n",
- " print \"3.Display\"\n",
- " print \"4.Quit\"\n",
- " print \"Enter your choice\",\n",
- " choice = int(raw_input())\n",
- " if choice == 1:\n",
- " front = insert(front);\n",
- " elif choice == 2:\n",
- " front = my_del(front);\n",
- " elif choice == 3:\n",
- " display(front)\n",
- " elif choice == 4:\n",
- " sys.exit()\n",
- " else:\n",
- " print \"Wrong choice\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "1.Insert\n",
- "2.Delete\n",
- "3.Display\n",
- "4.Quit\n",
- "Enter your choice"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "4\n"
- ]
- },
- {
- "ename": "SystemExit",
- "evalue": "",
- "output_type": "pyerr",
- "traceback": [
- "An exception has occurred, use %tb to see the full traceback.\n",
- "\u001b[1;31mSystemExit\u001b[0m\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "To exit: use 'exit', 'quit', or Ctrl-D.\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [],
- "language": "python",
- "metadata": {},
- "outputs": []
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Principles_of_Data_structures_using_C_and_C++/chapter6.ipynb b/Principles_of_Data_structures_using_C_and_C++/chapter6.ipynb
deleted file mode 100755
index a11edf95..00000000
--- a/Principles_of_Data_structures_using_C_and_C++/chapter6.ipynb
+++ /dev/null
@@ -1,1682 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:aba1be8ae42bb18059b4160131b71a6cc6c951a9fe76f13e7e039fc1531e880b"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 6: Sorting Techniques"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 1, page no. 155"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "MAX = 20\n",
- "arr = []\n",
- "print \"Enter the number of elements : \",\n",
- "n = int(raw_input())\n",
- "print \"Enter %d elements: \" %n\n",
- "for i in range(n):\n",
- " arr.append(int(raw_input()))\n",
- "print \"Unsorted list is : \"\n",
- "for i in range(n):\n",
- " print arr[i],\n",
- "for i in range(n):\n",
- " xchanges=0\n",
- " for j in range(n-1-i):\n",
- " if (arr[j] > arr[j+1]):\n",
- " arr[j], arr[j+1] = arr[j+1],arr[j]\n",
- " xchanges+=1\n",
- " if (xchanges == 0):\n",
- " break\n",
- " print \"\\nAfter pass %d elements are : \" %(i+1)\n",
- " for k in range(n):\n",
- " print arr[k],\n",
- "print \"\\nSorted list is : \"\n",
- "for i in range(n):\n",
- " print arr[i],"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the number of elements : "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter 3 elements: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Unsorted list is : \n",
- "15 10 5 \n",
- "After pass 1 elements are : \n",
- "10 5 15 \n",
- "After pass 2 elements are : \n",
- "5 10 15 \n",
- "Sorted list is : \n",
- "5 10 15\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 2, page no. 157"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "def bubblesort(a, n):\n",
- " for i in range(1,n):\n",
- " for j in range(0,n-1):\n",
- " if (a[j] > a[j+1]):\n",
- " a[j], a[j+1] = a[j+1], a[j]\n",
- "\n",
- "a = []\n",
- "print \"\\nEnter the number of elements: \",\n",
- "n = int(raw_input())\n",
- "l = n;\n",
- "print \"\\nEnter the elements: \",\n",
- "while(l>0):\n",
- " a.append(int(raw_input()))\n",
- " l -= 1\n",
- "bubblesort(a,n);\n",
- "print \"\\nSorted array is: \",\n",
- "l = 0\n",
- "while(l < n):\n",
- " print a[l],\n",
- " l += 1"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Enter the number of elements: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Enter the elements: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Sorted array is: 5 10 15\n"
- ]
- }
- ],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 3, page no. 160"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "arr = []\n",
- "print \"\\nEnter the number of elements: \",\n",
- "n = int(raw_input())\n",
- "for i in range(n):\n",
- " print \"Enter element %d: \" %(i+1),\n",
- " arr.append(int(raw_input()))\n",
- "print \"\\nUnsorted list is: \",\n",
- "for i in range(n):\n",
- " print arr[i],\n",
- "\n",
- "for i in range(0,n-1):\n",
- " smallest = i\n",
- " for k in range(i+1,n):\n",
- " if (arr[smallest] > arr[k]):\n",
- " smallest = k\n",
- " if (i != smallest):\n",
- " arr[i], arr[smallest] = arr[smallest], arr[i]\n",
- " print \"\\nAfter pass %d elements are: \" %(i+1),\n",
- " for j in range(n):\n",
- " print arr[j],\n",
- "\n",
- "print \"\\nSorted list is: \",\n",
- "for i in range(n):\n",
- " print arr[i],"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "Enter the number of elements: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 1: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 2: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 3: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Unsorted list is: 15 10 5 \n",
- "After pass 1 elements are: 5 15 10 \n",
- "After pass 2 elements are: 5 10 15 \n",
- "Sorted list is: 5 10 15\n"
- ]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 4, page no. 161"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "def selectionsort(a, n):\n",
- " for i in range(n-1):\n",
- " for j in range(i+1, n):\n",
- " if (a[i]>a[j]):\n",
- " a[i], a[j] = a[j],a[i]\n",
- "\n",
- "a = []\n",
- "print \"\\nEnter the number of elements: \",\n",
- "n = int(raw_input())\n",
- "l = n\n",
- "print \"\\nEnter the elements: \",\n",
- "while(l > 0):\n",
- " a.append(int(raw_input()))\n",
- " l -= 1\n",
- "selectionsort(a, n)\n",
- "print \"\\nSorted array: \",\n",
- "l = 0\n",
- "while(l < n):\n",
- " print a[l],\n",
- " l += 1"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "Enter the number of elements: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Enter the elements: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Sorted array: 5 10 15\n"
- ]
- }
- ],
- "prompt_number": 6
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 5, page no. 166"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "arr = []\n",
- "print \"\\nEnter the number of elements: \",\n",
- "n = int(raw_input())\n",
- "for i in range(n):\n",
- " print \"Enter element %d: \" %(i+1),\n",
- " arr.append(int(raw_input()))\n",
- "print \"\\nUnsorted list is: \",\n",
- "for i in range(n):\n",
- " print arr[i],\n",
- "for j in range (1, n):\n",
- " k=arr[j]\n",
- " i = j-1\n",
- " while (i>=0):\n",
- " if k < arr[i]:\n",
- " arr[i+1]=arr[i]\n",
- " i-=1\n",
- " arr[i+1]=k\n",
- " print \"\\nPass %d, Element inserted in proper place: %d \" %(j,k),\n",
- " for i in range(n):\n",
- " print arr[i],\n",
- "\n",
- "print \"\\nSorted list is: \",\n",
- "for i in range(n):\n",
- " print arr[i],"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "Enter the number of elements: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 1: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 2: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 3: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Unsorted list is: 15 10 5 \n",
- "Pass 1, Element inserted in proper place: 10 10 15 5 \n",
- "Pass 2, Element inserted in proper place: 5 5 10 15 \n",
- "Sorted list is: 5 10 15\n"
- ]
- }
- ],
- "prompt_number": 7
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 6, page no. 169"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "arr = []\n",
- "print \"Enter the number of elements : \",\n",
- "n = int(raw_input())\n",
- "for i in range(n):\n",
- " print \"Enter element %d : \" %(i+1),\n",
- " arr.append(int(raw_input()))\n",
- "print \"Unsorted list is : \",\n",
- "for i in range(n):\n",
- " print arr[i],\n",
- "print \"\\nEnter maximum increment (odd value) : \",\n",
- "incr = int(raw_input())\n",
- "\n",
- "while(incr>=1):\n",
- " for j in range(incr,n):\n",
- " k = arr[j]\n",
- " i = j-incr\n",
- " while (i>=0 and k < arr[i]):\n",
- " arr[i+incr] = arr[i]\n",
- " i = i-incr\n",
- " arr[i+incr] = k\n",
- " print \"\\nIncrement=%d \" %incr\n",
- " for i in range(n):\n",
- " print arr[i],\n",
- " incr = incr-2\n",
- "print \"\\nSorted list is : \",\n",
- "for i in range(n):\n",
- " print arr[i],"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the number of elements : "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 1 : "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 2 : "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 3 : "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Unsorted list is : 15 10 5 \n",
- "Enter maximum increment (odd value) : "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Increment=3 \n",
- "15 10 5 \n",
- "Increment=1 \n",
- "5 10 15 \n",
- "Sorted list is : 5 10 15\n"
- ]
- }
- ],
- "prompt_number": 8
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 7, page no. 173"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "def display(arr, low, up):\n",
- " for i in range(low, up):\n",
- " print arr[i],\n",
- " \n",
- "def quick(arr, low, up):\n",
- " left = low\n",
- " right = up\n",
- " piv = low\n",
- " pivot_placed = False\n",
- " print low, up\n",
- " if (low>=up):\n",
- " return\n",
- " print \"\\nSublist: \",\n",
- " display(arr,low,up)\n",
- " while(pivot_placed == False):\n",
- " while(arr[piv] <= arr[right] and piv != right):\n",
- " right=right-1\n",
- " if (piv==right):\n",
- " pivot_placed = True\n",
- " if (arr[piv] > arr[right]):\n",
- " arr[piv], arr[right] = arr[right], arr[piv]\n",
- " piv=right\n",
- " while(arr[piv]>=arr[left] and left != piv):\n",
- " left=left+1\n",
- " if (piv==left):\n",
- " pivot_placed = True\n",
- " if (arr[piv] < arr[left]):\n",
- " arr[piv], arr[left] = arr[left], arr[piv]\n",
- " piv = left\n",
- " print \"\\n-> Pivot Placed is %d -> \" %arr[piv]\n",
- " display(arr,low,up)\n",
- " quick(arr,low,piv-1)\n",
- " quick(arr,piv+1,up)\n",
- "\n",
- "arr = []\n",
- "print \"\\nEnter the number of elements : \",\n",
- "n = int(raw_input())\n",
- "for i in range(n):\n",
- " print \"Enter element %d: \" %(i+1),\n",
- " arr.append(int(raw_input()))\n",
- "print \"\\nUnsorted list: \",\n",
- "display(arr, 0, n)\n",
- "quick(arr,0, n-1)\n",
- "print \"\\nSorted List: \",\n",
- "display(arr, 0, n)"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "Enter the number of elements : "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 1: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 2: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 3: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Unsorted list: 15 10 5 0 2\n",
- "\n",
- "Sublist: 15 10 \n",
- "-> Pivot Placed is 15 -> \n",
- "5 10 0 1\n",
- "\n",
- "Sublist: 5 \n",
- "-> Pivot Placed is 5 -> \n",
- "5 0 -1\n",
- "1 1\n",
- "3 2\n",
- "\n",
- "Sorted List: 5 10 15\n"
- ]
- }
- ],
- "prompt_number": 9
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 8, page no. 177"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "arr1 = []\n",
- "arr2 = []\n",
- "arr3 = []\n",
- "print \"\\nEnter the number of elements in list1: \", \n",
- "max1 = int(raw_input())\n",
- "print \"\\nTake the elements in sorted order \\n\",\n",
- "for i in range(max1):\n",
- " print \"Enter element %d : \" %(i+1),\n",
- " arr1.append(int(raw_input()))\n",
- "print \"\\nEnter the number of elements in list2: \"\n",
- "max2 = int(raw_input())\n",
- "print \"\\nTake the elements in sorted order :\\n\"\n",
- "for i in range(max2):\n",
- " print \"Enter element %d: \"%(i+1),\n",
- " arr2.append(int(raw_input()))\n",
- "i = 0\n",
- "j = 0\n",
- "while((i < max1) and (j < max2)):\n",
- " if (arr1[i] < arr2[j]):\n",
- " arr3.append(arr1[i])\n",
- " i += 1\n",
- " else:\n",
- " arr3.append(arr2[j])\n",
- " j += 1\n",
- "while(i < max1):\n",
- " arr3.append(arr1[i])\n",
- " i += 1\n",
- "while(j < max2):\n",
- " arr3.append(arr2[j])\n",
- " j += 1\n",
- "print \"\\nList 1: \",\n",
- "for i in range(max1):\n",
- " print arr1[i],\n",
- "print \"\\nList 2: \",\n",
- "for i in range(max2):\n",
- " print arr2[i],\n",
- "print \"\\nMerged list: \"\n",
- "for i in range(max1+max2):\n",
- " print arr3[i],"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Enter the number of elements in list1: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Take the elements in sorted order \n",
- "Enter element 1 : "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 2 : "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Enter the number of elements in list2: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "Take the elements in sorted order :\n",
- "\n",
- "Enter element 1: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 2: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 3: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 4: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "4\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 5: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "List 1: 10 15 \n",
- "List 2: 1 2 3 4 5 \n",
- "Merged list: \n",
- "1 2 3 4 5 10 15\n"
- ]
- }
- ],
- "prompt_number": 11
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 9, page no. 179"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "arr = []\n",
- "temp = []\n",
- "\n",
- "print \"\\nEnter the number of elements: \",\n",
- "n = int(raw_input())\n",
- "for i in range(n):\n",
- " print \"Enter element %d: \" %(i+1),\n",
- " arr.append(int(raw_input()))\n",
- "print \"\\nUnsorted list is: \",\n",
- "for i in range(n):\n",
- " print arr[i],\n",
- "\n",
- "size = 1\n",
- "\n",
- "while size < n:\n",
- " l1 = 0\n",
- " k = 0\n",
- " while(l1+size<n):\n",
- " h1 = l1 + (size - 1)\n",
- " l2 = h1 + 1\n",
- " h2 = l2 + (size - 1)\n",
- " if (h2>=n):\n",
- " h2 = n-1\n",
- " i=l1\n",
- " j=l2\n",
- " while(i<=h1 and j<=h2 ):\n",
- " if (arr[i]<=arr[j]):\n",
- " temp.append(arr[i])\n",
- " i += 1\n",
- " else:\n",
- " temp.append(arr[j])\n",
- " j += 1\n",
- " while(i<=h1):\n",
- " temp.append(arr[i])\n",
- " i += 1\n",
- " while(j<=h2):\n",
- " temp.append(arr[j])\n",
- " j += 1\n",
- " l1 = h2+1\n",
- " for i in range (l1, n):\n",
- " temp.append(arr[i])\n",
- " for i in range(0):\n",
- " arr[i]=temp[i]\n",
- " print \"\\nSize=%d \\nElements are: \" %size\n",
- " for i in range(n):\n",
- " print arr[i],\n",
- " size = size * 2\n",
- "arr = temp \n",
- "print \"\\nSorted list is:\",\n",
- "for i in range(n):\n",
- " print arr[i],"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "Enter the number of elements: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 1: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 2: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 3: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Unsorted list is: 15 10 5 \n",
- "Size=1 \n",
- "Elements are: \n",
- "15 10 5 \n",
- "Size=2 \n",
- "Elements are: \n",
- "15 10 5 \n",
- "Sorted list is: 10 15 5\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 10, page no. 181"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from numpy import zeros\n",
- "array = []\n",
- "def merge(low, mid, high):\n",
- " global array\n",
- " temp = zeros(len(array))\n",
- " i = low;\n",
- " j = mid +1 ;\n",
- " k = low ;\n",
- " print array\n",
- " while((i<=mid) and (j<=high)):\n",
- " if (array[i]<=array[j]):\n",
- " temp[k] = array[i]\n",
- " k += 1\n",
- " i += 1\n",
- " else:\n",
- " temp[k] = array[j]\n",
- " k += 1\n",
- " j += 1\n",
- " while(i<=mid):\n",
- " temp[k] = array[i]\n",
- " k += 1\n",
- " i += 1\n",
- " while(j<=high):\n",
- " temp[k] = array[j]\n",
- " k += 1\n",
- " j += 1\n",
- "\n",
- " for i in range(low,high+1):\n",
- " array[i] = temp[i]\n",
- "\n",
- "def merge_sort(low, high):\n",
- " if (low != high):\n",
- " mid = (low+high)/2;\n",
- " merge_sort(low , mid)\n",
- " merge_sort(mid+1, high)\n",
- " merge(low, mid, high)\n",
- " \n",
- "print \"\\nEnter the number of elements: \"\n",
- "n = int(raw_input())\n",
- "for i in range(n):\n",
- " print \"Enter element %d: \" %(i+1),\n",
- " array.append(int(raw_input()))\n",
- "print \"\\nUnsorted list is: \",\n",
- "for i in range(n):\n",
- " print array[i],\n",
- "merge_sort(0, n-1)\n",
- "print \"\\nSorted list is :\",\n",
- "for i in range(n):\n",
- " print array[i],"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "Enter the number of elements: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter element 1: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 2: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 3: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Unsorted list is: 15 10 5 [15, 10, 5]\n",
- "[10.0, 15.0, 5]\n",
- "\n",
- "Sorted list is : 5.0 10.0 15.0\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 11, page no. 184"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from numpy import zeros\n",
- "class node:\n",
- " def __init__(self, info=None, link=None):\n",
- " self.info = info\n",
- " self.link = link\n",
- "\n",
- "start = None\n",
- "\n",
- "\n",
- "def display():\n",
- " global start\n",
- " p = start\n",
- " while(p != None):\n",
- " print p.info,\n",
- " p = p.link\n",
- " print \"\"\n",
- " \n",
- "def large_dig(p):\n",
- " large = 0\n",
- " ndig = 0\n",
- " while (p!=None):\n",
- " if (p.info > large):\n",
- " large = p.info\n",
- " p = p.link\n",
- " print \"\\nLargest Element is %d\" %large\n",
- " while (large!=0):\n",
- " ndig += 1\n",
- " large = large/10\n",
- " print \"\\nNumber of digits in it are %d \" %ndig\n",
- " return ndig\n",
- "\n",
- "def digit(number, k):\n",
- " digit = 0\n",
- " for i in range (1, k+1):\n",
- " digit = number % 10 ;\n",
- " number = number /10 ;\n",
- " return digit\n",
- "\n",
- "def radix_sort():\n",
- " global start\n",
- " rear = []\n",
- " front = []\n",
- " least_sig=1;\n",
- " most_sig=large_dig(start);\n",
- " for k in range(least_sig, most_sig+1):\n",
- " print \"\\nPASS %d : Examining %dth digit from right\" %(k,k)\n",
- " for i in range(0,10):\n",
- " rear.append(None)\n",
- " front.append(None)\n",
- " maxdig=0\n",
- " mindig=9\n",
- " p = start\n",
- " while(p!=None):\n",
- " dig = digit(p.info, k)\n",
- " if (dig>maxdig):\n",
- " maxdig=dig\n",
- " if (dig<mindig):\n",
- " mindig=dig \n",
- " if (front[dig] == None):\n",
- " front[dig] = p\n",
- " else:\n",
- " rear[dig].link = p\n",
- " rear[dig] = p\n",
- " p = p.link\n",
- " print \"\\nmindig=%d maxdig=%d\\n\" %(mindig, maxdig)\n",
- " start = front[mindig]\n",
- " for i in range(mindig,maxdig):\n",
- " if (rear[i+1]!=None):\n",
- " rear[i].link = front[i+1]\n",
- " else:\n",
- " rear[i+1]=rear[i];\n",
- " rear[maxdig].link = None\n",
- " print \"\\nNew list : \",\n",
- " display()\n",
- "\n",
- "\n",
- "q = node()\n",
- "print \"Enter the number of elements in the list: \",\n",
- "n = int(raw_input())\n",
- "for i in range(n):\n",
- " print \"Enter element %d: \" %(i+1),\n",
- " item = int(raw_input())\n",
- " tmp = node()\n",
- " tmp.info = item\n",
- " tmp.link = None\n",
- " if (start == None):\n",
- " start = tmp\n",
- " print start.info\n",
- " else:\n",
- " q = start\n",
- " while(q.link != None):\n",
- " q = q.link\n",
- " print q.info\n",
- " q.link = tmp\n",
- "print \"\\nUnsorted list is: \",\n",
- "display()\n",
- "radix_sort()\n",
- "print \"\\nSorted list is: \"\n",
- "display ()"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the number of elements in the list: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 1: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " 15\n",
- "Enter element 2: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 3: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "12\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " 10\n",
- "\n",
- "Unsorted list is: 15 10 12 \n",
- "\n",
- "Largest Element is 15\n",
- "\n",
- "Number of digits in it are 2 \n",
- "\n",
- "PASS 1 : Examining 1th digit from right\n",
- "\n",
- "mindig=0 maxdig=5\n",
- "\n",
- "\n",
- "New list : 10 12 15 \n",
- "\n",
- "PASS 2 : Examining 2th digit from right\n",
- "\n",
- "mindig=1 maxdig=1\n",
- "\n",
- "\n",
- "New list : 10 12 15 \n",
- "\n",
- "Sorted list is: \n",
- "10 12 15 \n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 12, Page no. 197"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "arr = []\n",
- "n = None\n",
- "\n",
- "def display():\n",
- " global n\n",
- " for i in range(n):\n",
- " print arr[i],\n",
- "\n",
- "\n",
- "def insert(num, loc):\n",
- " while(loc>0):\n",
- " par = (loc-1)/2;\n",
- " if (num<=arr[par]):\n",
- " arr[loc] = num\n",
- " return\n",
- " arr[loc] = arr[par]\n",
- " loc=par\n",
- " arr[0] = num\n",
- "\n",
- "def create_heap():\n",
- " global n\n",
- " for i in range(n):\n",
- " arr.append(i)\n",
- "\n",
- "def del_root(last):\n",
- " i=0\n",
- " arr[i], arr[last] = arr[last], arr[i]\n",
- " left = 2*i+1\n",
- " right = 2*i+2\n",
- " while(right<last):\n",
- " if (arr[i]>=arr[left] and arr[i]>=arr[right]):\n",
- " return\n",
- " if (arr[right]<=arr[left]):\n",
- " arr[i], arr[left] = arr[left], arr[i]\n",
- " else:\n",
- " arr[i], arr[right] = arr[right], arr[i]\n",
- " i=right;\n",
- " left=2*i+1;\n",
- " right=2*i+2;\n",
- " if (left==last-1 and arr[i]<arr[left]):\n",
- " arr[i], arr[left] = arr[left], arr[i]\n",
- "\n",
- "def heap_sort():\n",
- " global n\n",
- " last = n-1\n",
- " while(last>0):\n",
- " del_root(last)\n",
- " last -= 1\n",
- "\n",
- "print \"Enter number of elements: \",\n",
- "n = int(raw_input())\n",
- "for i in range(n):\n",
- " print \"Enter element %d: \" %(i+1),\n",
- " arr.append(int(raw_input()))\n",
- "print \"\\nEntered list is: \",\n",
- "display()\n",
- "create_heap()\n",
- "print \"\\nHeap is: \",\n",
- "display()\n",
- "heap_sort()\n",
- "print \"\\nSorted list is: \",\n",
- "display()"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter number of elements: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 1: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 2: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 3: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Entered list is: 15 10 5 \n",
- "Heap is: 15 10 5 \n",
- "Sorted list is: 5 10 15\n"
- ]
- }
- ],
- "prompt_number": 15
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Principles_of_Data_structures_using_C_and_C++/chapter7.ipynb b/Principles_of_Data_structures_using_C_and_C++/chapter7.ipynb
deleted file mode 100755
index 94558c7a..00000000
--- a/Principles_of_Data_structures_using_C_and_C++/chapter7.ipynb
+++ /dev/null
@@ -1,688 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:c26c5d09848ed75dce1b0018e66d619a73d2133d6f4cf9d9908ab7addd4dbb8f"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 7: Searchin & Hashing"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 1, page no. 208"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import sys\n",
- "\n",
- "arr = []\n",
- "opt = 'y'\n",
- "print \"nHow many elements you want to enter in the array: \",\n",
- "n = int(raw_input())\n",
- "for i in range(n):\n",
- " print \"Enter element %d: \" %(i+1),\n",
- " arr.append(int(raw_input()))\n",
- "print \"\\n\\nPress any key to continue...\"\n",
- "raw_input()\n",
- "\n",
- "while (1):\n",
- " if opt == 'Y' or opt == 'y':\n",
- " print \"Enter the element to be searched: \",\n",
- " item = int(raw_input())\n",
- " found = False\n",
- " for i in range(n):\n",
- " if (item == arr[i]):\n",
- " print \"\\n%d found at position %d\" %(item,(i+1))\n",
- " found = True\n",
- " break\n",
- " if not found:\n",
- " print \"Item %d not found in array\" %item\n",
- " print \"Press (Y/y) to continue: \",\n",
- " opt = raw_input()\n",
- " else:\n",
- " sys.exit()"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "nHow many elements you want to enter in the array: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 1: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 2: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 3: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "\n",
- "Press any key to continue...\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the element to be searched: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "5 found at position 3\n",
- "Press (Y/y) to continue: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "n\n"
- ]
- },
- {
- "ename": "SystemExit",
- "evalue": "",
- "output_type": "pyerr",
- "traceback": [
- "An exception has occurred, use %tb to see the full traceback.\n",
- "\u001b[1;31mSystemExit\u001b[0m\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "To exit: use 'exit', 'quit', or Ctrl-D.\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 2, page no. 211"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import sys\n",
- "\n",
- "arr = []\n",
- "print \"How many elements you want to enter in the array ?: \",\n",
- "n = int(raw_input())\n",
- "for i in range(n):\n",
- " print \"Enter element %d: \" %(i+1),\n",
- " arr.append(int(raw_input()))\n",
- "print \"\\nPress any key to continue...\",\n",
- "raw_input()\n",
- "opt = 'y'\n",
- "while(1):\n",
- " if opt == \"Y\" or opt == \"y\":\n",
- " print \"Enter the element to be searched: \",\n",
- " item = int(raw_input())\n",
- " start = 0\n",
- " end = n - 1\n",
- " middle = (start + end)/2\n",
- " while(item != arr[middle] and start <= end):\n",
- " if (item > arr[middle]):\n",
- " start = middle+1\n",
- " else:\n",
- " end = middle-1\n",
- " middle = (start+end)/2\n",
- " if (item==arr[middle]):\n",
- " print \"%d found at position %d\" %(item,(middle + 1));\n",
- " if (start>end):\n",
- " print \"%d not found in array\" %item\n",
- " print \"Press (Y/y) to continue: \",\n",
- " opt = raw_input()\n",
- " else:\n",
- " sys.exit()"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " How many elements you want to enter in the array ?: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 1: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 2: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 3: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Press any key to continue..."
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter the element to be searched: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " 10 found at position 2\n",
- "Press (Y/y) to continue: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "n\n"
- ]
- },
- {
- "ename": "SystemExit",
- "evalue": "",
- "output_type": "pyerr",
- "traceback": [
- "An exception has occurred, use %tb to see the full traceback.\n",
- "\u001b[1;31mSystemExit\u001b[0m\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "To exit: use 'exit', 'quit', or Ctrl-D.\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 3, page no. 215"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "class interpolation:\n",
- " def InterSearch(self, arr, no):\n",
- " Low = 0\n",
- " High = no - 1\n",
- " print \"Enter the Number to be searched: \",\n",
- " key = int(raw_input())\n",
- " while(Low < High):\n",
- " Mid = (Low+(High-Low)) * ((key-arr[Low])/(arr[High]-arr[Low]))\n",
- " if (key < arr[Mid]):\n",
- " High = Mid-1\n",
- " elif (key > arr[Mid]):\n",
- " Low = Mid+1;\n",
- " else:\n",
- " print \"The key \", key, \" is found at the location \", Mid\n",
- " return\n",
- " print \"\\nThe Key \" , key, \" is NOT found\"\n",
- "\n",
- "\n",
- "ob = interpolation()\n",
- "print \"Enter the number of elements: \",\n",
- "n = int(raw_input())\n",
- "a = []\n",
- "for i in range(n):\n",
- " print \"Enter element %d: \" %(i+1),\n",
- " a.append(int(raw_input()))\n",
- "b = a\n",
- "ob.InterSearch(b,n);\n",
- "print \"Press any key to continue...\",\n",
- "raw_input()"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the number of elements: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 1: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 2: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter element 3: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter the Number to be searched: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " The key 15 is found at the location 2\n",
- "Press any key to continue..."
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n"
- ]
- },
- {
- "metadata": {},
- "output_type": "pyout",
- "prompt_number": 5,
- "text": [
- "''"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n"
- ]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 4, page no. 217"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "def fib(n):\n",
- " f1 = 0\n",
- " f2 = 1\n",
- " for i in range(n):\n",
- " temp = f2\n",
- " f2 = (f1+f2)\n",
- " f1 = temp\n",
- " return f2\n",
- "\n",
- "def fibonacci_search(lst, n, item):\n",
- " j = 1\n",
- " while(fib(j)<n):\n",
- " f1 = fib(j-2)\n",
- " j += 1\n",
- " f2 = fib(j-3)\n",
- " mid = n-(f1+1);\n",
- " while (item != lst[mid]):\n",
- " if(mid<0 or item > lst[mid]):\n",
- " if (f1==1):\n",
- " return -1\n",
- " mid = mid+f2\n",
- " f1 = f1-f2\n",
- " f2 = f2-f1\n",
- " else:\n",
- " if (f2==0):\n",
- " return -1\n",
- " mid = mid-f2\n",
- " t = f1-f2\n",
- " f1 = f2\n",
- " f2 = t\n",
- " return mid\n",
- " \n",
- "lst = []\n",
- "print \"Enter the total number of list: \",\n",
- "n = int(raw_input())\n",
- "print \"Enter the elements in the list \"\n",
- "for i in range(n):\n",
- " print \"Input number \", i+1, \": \",\n",
- " lst.append(int(raw_input()))\n",
- "print \"Enter the number to be searched: \",\n",
- "item = int(raw_input())\n",
- "loc = fibonacci_search(lst, n, item)\n",
- "if (loc != -1):\n",
- " print \"The number is in the list...\"\n",
- "else:\n",
- " print \"The number is not in the list...\"\n",
- "raw_input()"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the total number of list: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter the elements in the list \n",
- "Input number 1 : "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Input number 2 : "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Input number 3 : "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "15\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter the number to be searched: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " The number is in the list...\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n"
- ]
- },
- {
- "metadata": {},
- "output_type": "pyout",
- "prompt_number": 6,
- "text": [
- "''"
- ]
- }
- ],
- "prompt_number": 6
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Principles_of_Data_structures_using_C_and_C++/chapter8.ipynb b/Principles_of_Data_structures_using_C_and_C++/chapter8.ipynb
deleted file mode 100755
index fd46edee..00000000
--- a/Principles_of_Data_structures_using_C_and_C++/chapter8.ipynb
+++ /dev/null
@@ -1,1181 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:c27bccc21274b298c9a4e263b1bbc13e122672406a37889e0a2049a62b1aa98a"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 8: The Trees"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 1, page no. 238"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "class node:\n",
- " n = 0\n",
- " keys = []\n",
- " p = []\n",
- "\n",
- "root = None\n",
- "\n",
- "class KeyStatus:\n",
- " Duplicate = 0\n",
- " SearchFailure =1\n",
- " Success = 2 \n",
- " InsertIt = 3\n",
- " LessKeys = 4\n",
- "\n",
- "def insert(key):\n",
- " global root\n",
- " newnode = node()\n",
- " upKey = 0\n",
- " value, upKey, newnode = ins(root, key, upKey, newnode)\n",
- " if (value == KeyStatus.Duplicate):\n",
- " print \"Key already available\"\n",
- " if (value == KeyStatus.InsertIt):\n",
- " uproot = root\n",
- " root = node()\n",
- " root.n = 1\n",
- " root.keys.append(upKey)\n",
- " root.p.append(uproot)\n",
- " root.p.append(newnode)\n",
- "\n",
- "def ins(ptr, key, upKey, newnode):\n",
- " newPtr = node()\n",
- " lastPtr = node()\n",
- " newKey = 0\n",
- " if (ptr == None):\n",
- " newnode = None\n",
- " upKey = key\n",
- " return KeyStatus.InsertIt, upKey, newnode\n",
- " n = ptr.n\n",
- " pos = searchPos(key, ptr.keys, n)\n",
- " print pos\n",
- " if (pos < n and key == ptr.keys[pos]):\n",
- " return KeyStatus.Duplicate, upKey, newnode\n",
- " value, newKey, newPtr = ins(ptr.p[pos], key, newKey, newPtr);\n",
- " if (value != KeyStatus.InsertIt):\n",
- " return value\n",
- " if(n < (5-1)):\n",
- " pos = searchPos(newKey, ptr.keys, n)\n",
- " for i in range(pos, n, -1):\n",
- " ptr.keys[i] = ptr.keys[i-1]\n",
- " ptr.p.append(ptr.p[i])\n",
- " ptr.keys.append(newKey)\n",
- " ptr.p.append(newPtr)\n",
- " ptr.n += 1\n",
- " return KeyStatus.Success, upKey, newnode\n",
- " if (pos == 5 - 1):\n",
- " lastKey = newKey;\n",
- " lastPtr = newPtr;\n",
- " else:\n",
- " lastKey = ptr.keys[5-2];\n",
- " lastPtr = ptr.p[5-1];\n",
- " for i in range(pos, 5-2, -1):\n",
- " ptr.keys[i] = ptr.keys[i-1]\n",
- " ptr.p.append(ptr.p[i])\n",
- " ptr.keys.append(newKey)\n",
- " ptr.p.append(newPtr)\n",
- " splitPos = (5 - 1)/2\n",
- " upKey = ptr.keys[splitPos]\n",
- " newnode = node()\n",
- " ptr.n = splitPos\n",
- " newnode.n = 5-1-splitPos\n",
- " for i in range(newnode.n):\n",
- " newnode.p[i] = ptr.p[i + splitPos + 1]\n",
- " if(i < newnode.n - 1):\n",
- " newnode.keys[i] = ptr.keys[i + splitPos + 1]\n",
- " else:\n",
- " newnode.keys[i] = lastKey\n",
- " newnode.p[newnode.n] = lastPtr\n",
- " return KeyStatus.InsertIt, upKey, newnode\n",
- "\n",
- "def display(ptr, blanks):\n",
- " if (ptr):\n",
- " for i in range(blanks):\n",
- " print \" \"\n",
- " for i in range(ptr.n):\n",
- " print \"%d \" %ptr.keys[i],\n",
- " print \"\\n\"\n",
- " for i in range(ptr.n):\n",
- " display(ptr.p[i], blanks+10)\n",
- "\n",
- "def searchPos(key, key_arr, n):\n",
- " pos = 0\n",
- " while(pos < n and key > key_arr[pos]):\n",
- " pos += 1\n",
- " return pos\n",
- "\n",
- "def search(key):\n",
- " global root\n",
- " ptr = root\n",
- " print \"Search path: \"\n",
- " while(ptr):\n",
- " n = ptr.n\n",
- " for i in range(ptr.n):\n",
- " print \"%d\" %ptr.keys[i]\n",
- " print \"\\n\"\n",
- " pos = searchPos(key, ptr.keys, n);\n",
- " if (pos < n and key == ptr.keys[pos]):\n",
- " print \"\\nKey %d found in position %d of last dispalyed node\\n\" %(key,i)\n",
- " return\n",
- " ptr = ptr.p[pos]\n",
- " print \"Key %d is not available\\n\" %key\n",
- "\n",
- "def my_del(ptr, key):\n",
- " p = node()\n",
- " lptr = node()\n",
- " rptr = node()\n",
- " if(ptr == None):\n",
- " return SearchFailure;\n",
- " n=ptr.n\n",
- " key_arr = ptr.keys\n",
- " p = ptr.p\n",
- " min = (5 - 1)/2\n",
- " pos = searchPos(key, key_arr, n)\n",
- " if(p[0] == None):\n",
- " if (pos == n or key < key_arr[pos]):\n",
- " return KeyStatus.SearchFailure\n",
- " for i in range(pos+1, n):\n",
- " key_arr[i-1] = key_arr[i]\n",
- " p[i] = p[i+1]\n",
- " ptr.n -= 1\n",
- " temp = 0\n",
- " if(ptr == root):\n",
- " temp = 1\n",
- " else:\n",
- " temp = min\n",
- " if(ptr.n >= temp):\n",
- " return KeyStatus.Success\n",
- " else:\n",
- " return KeyStatus.LessKeys\n",
- " if (pos < n and key == key_arr[pos]):\n",
- " qp = p[pos]\n",
- " while(True):\n",
- " nkey = qp.n\n",
- " qp1 = qp.p[nkey]\n",
- " if (qp1 == None):\n",
- " break\n",
- " qp = qp1\n",
- " key_arr[pos] = qp.keys[nkey-1]\n",
- " qp.keys[nkey - 1] = key\n",
- " value = my_del(p[pos], key)\n",
- " if (value != KeyStatus.LessKeys):\n",
- " return value\n",
- " if (pos > 0 and p[pos-1].n > min):\n",
- " pivot = pos - 1\n",
- " lptr = p[pivot]\n",
- " rptr = p[pos]\n",
- " rptr.p[rptr.n + 1] = rptr.p[rptr.n]\n",
- " for i in range(0, ptr.n, -1):\n",
- " rptr.keys[i] = rptr.keys[i-1];\n",
- " rptr.p[i] = rptr.p[i-1];\n",
- " rptr.n += 1\n",
- " rptr.keys[0] = key_arr[pivot]\n",
- " rptr.p[0] = lptr.p[lptr.n]\n",
- " key_arr[pivot] = lptr .keys[--lptr.n];\n",
- " return KeyStatus.Success\n",
- " if (pos<n and p[pos+1].n > min):\n",
- " pivot = pos\n",
- " lptr = p[pivot]\n",
- " rptr = p[pivot+1]\n",
- " lptr.keys[lptr.n] = key_arr[pivot]\n",
- " lptr.p[lptr.n + 1] = rptr.p[0]\n",
- " key_arr[pivot] = rptr.keys[0]\n",
- " lptr.n += 1\n",
- " rptr.n -= 1\n",
- " for i in range(rptr.n):\n",
- " rptr.keys[i] = rptr.keys[i+1]\n",
- " rptr.p[i] = rptr.p[i+1]\n",
- " rptr .p[rptr.n] = rptr.p[rptr.n + 1]\n",
- " return KeyStatus.Success\n",
- " if(pos == n):\n",
- " pivot = pos-1\n",
- " else:\n",
- " pivot = pos\n",
- " lptr = p[pivot]\n",
- " rptr = p[pivot+1]\n",
- " lptr.keys[lptr.n] = key_arr[pivot]\n",
- " lptr.p[lptr.n + 1] = rptr.p[0]\n",
- " for i in range(rptr.n):\n",
- " lptr.keys[lptr .n + 1 + i] = rptr.keys[i]\n",
- " lptr.p[lptr.n + 2 + i] = rptr.p[i+1]\n",
- " lptr.n = lptr.n + rptr.n +1\n",
- " for i in range(pos+1, n):\n",
- " key_arr[i-1] = key_arr[i]\n",
- " p[i] = p[i+1]\n",
- " ptr -= 1\n",
- " temp = 0\n",
- " if(ptr == root):\n",
- " temp = 1\n",
- " else:\n",
- " temp = min\n",
- " if(ptr.n >= temp):\n",
- " return KeyStatus.Success\n",
- " else:\n",
- " return KeyStatus.LessKeys\n",
- "\n",
- "def DelNode(key):\n",
- " global root\n",
- " uproot = node()\n",
- " value = my_del(root,key)\n",
- " if value == KeyStatus.SearchFailure:\n",
- " print \"Key %d is not available\" %key\n",
- " return\n",
- " if value == KeyStatus.LessKeys:\n",
- " uproot = root\n",
- " root = root.p[0]\n",
- " return\n",
- "\n",
- "\n",
- "while(True):\n",
- " print \"1.Insert\"\n",
- " print \"2.Delete\"\n",
- " print \"3.Search\"\n",
- " print \"4.Display\"\n",
- " print \"5.Quit\"\n",
- " print \"Enter your choice : \",\n",
- " choice = int(raw_input())\n",
- " if choice == 1:\n",
- " print \"\\nEnter the key : \",\n",
- " key = int(raw_input())\n",
- " insert(key)\n",
- " elif choice == 2:\n",
- " print \"\\nEnter the key : \",\n",
- " key = int(raw_input())\n",
- " DelNode(key)\n",
- " elif choice == 3:\n",
- " print \"\\nEnter the key : \",\n",
- " key = int(raw_input())\n",
- " search(key)\n",
- " elif choice == 4:\n",
- " print \"\\nBtree is :\\n\"\n",
- " display(root,0)\n",
- " elif choice == 5:\n",
- " import sys\n",
- " sys.exit()\n",
- " else:\n",
- " print \"Wrong choice\"\n",
- " break"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1.Insert\n",
- "2.Delete\n",
- "3.Search\n",
- "4.Display\n",
- "5.Quit\n",
- "Enter your choice : "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Enter the key : "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " 1.Insert\n",
- "2.Delete\n",
- "3.Search\n",
- "4.Display\n",
- "5.Quit\n",
- "Enter your choice : "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Enter the key : "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " 1\n",
- "1.Insert\n",
- "2.Delete\n",
- "3.Search\n",
- "4.Display\n",
- "5.Quit\n",
- "Enter your choice : "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "4\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Btree is :\n",
- "\n",
- "5 10 \n",
- "\n",
- "1.Insert\n",
- "2.Delete\n",
- "3.Search\n",
- "4.Display\n",
- "5.Quit\n",
- "Enter your choice : "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "ename": "SystemExit",
- "evalue": "",
- "output_type": "pyerr",
- "traceback": [
- "An exception has occurred, use %tb to see the full traceback.\n",
- "\u001b[1;31mSystemExit\u001b[0m\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "To exit: use 'exit', 'quit', or Ctrl-D.\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 2, page no. 250"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "def preorder(p):\n",
- " stack = []\n",
- " top = -1\n",
- " if(p != None):\n",
- " print p.info\n",
- " if(p.rchild != None):\n",
- " top += 1\n",
- " stack[top] = p.rchild\n",
- " p = p.lchild\n",
- " while(top >= -1):\n",
- " while ( p!= None):\n",
- " print p.data\n",
- " if(p.rchild != None):\n",
- " top += 1\n",
- " stack[top] = p.rchild\n",
- " p = p.lchild\n",
- " p = stack[top]\n",
- " top -= 1"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Eample 3, page no. 253"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "def inorder(p):\n",
- " stack = []\n",
- " top = -1;\n",
- " if(p != None):\n",
- " top += 1\n",
- " stack[top] = p\n",
- " p = p.lchild\n",
- " while(top >= 0):\n",
- " while ( p!= None):\n",
- " top += 1\n",
- " stack[top] = p\n",
- " p = p.lchild\n",
- " p = stack[top]\n",
- " top -= 1\n",
- " print p.data\n",
- " p = p.rchild\n",
- " if ( p != None):\n",
- " top += 1\n",
- " stack[top] = p\n",
- " p = p.lchild"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 4, page no. 257"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "def postorder(p):\n",
- " stack = []\n",
- " sig = 0\n",
- " sign = []\n",
- " top = -1\n",
- " if(p != None):\n",
- " top += 1\n",
- " stack[top] = p\n",
- " sign[top] = 1\n",
- " if(p.rchild != None):\n",
- " top += 1\n",
- " stack[top] = p.rchild\n",
- " sign[top] = -1\n",
- " p = p.lchild\n",
- " while(top >= 0):\n",
- " while(p != None):\n",
- " top += 1\n",
- " stack[top] = p\n",
- " sign[top] = 1\n",
- " if(p.rchild != None):\n",
- " top += 1\n",
- " stack[top] = p.rchild\n",
- " sign[top] = -1\n",
- " p = p.lchild\n",
- " p = stack[top]\n",
- " sig = sign[top]\n",
- " top -= 1\n",
- " while((sig > 0) and (top >= -1)):\n",
- " print p.info\n",
- " p = stack[top]\n",
- " sig = sign[top]\n",
- " top -= 1"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 5, page no. 264"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import sys\n",
- "\n",
- "class BST:\n",
- " class node:\n",
- " info = None\n",
- " lchild = None\n",
- " rchild = None\n",
- " def __init__(self):\n",
- " self.root = self.node()\n",
- "\n",
- " def find(self, item, par, loc):\n",
- " ptr = self.node()\n",
- " ptrsave = self.node()\n",
- " if(self.root==None):\n",
- " loc = None\n",
- " par = None\n",
- " return\n",
- " if(item == self.root.info):\n",
- " loc = self.root\n",
- " par = None\n",
- " return\n",
- " if(item < self.root.info):\n",
- " ptr = self.root.lchild\n",
- " else:\n",
- " ptr = self.root.rchild\n",
- " ptrsave = self.root\n",
- " while(ptr!=None):\n",
- " if(item == ptr.info):\n",
- " loc = ptr\n",
- " par = ptrsave\n",
- " return\n",
- " ptrsave = ptr\n",
- " if(item<ptr.info):\n",
- " ptr = ptr.lchild\n",
- " else:\n",
- " ptr = ptr.rchild\n",
- " loc = None\n",
- " par = ptrsave\n",
- " return par,loc\n",
- " \n",
- " def case_a(self, par, loc):\n",
- " if(par == None):\n",
- " self.root = None\n",
- " else:\n",
- " if(loc == par.lchild):\n",
- " par.lchild = None\n",
- " else:\n",
- " par.rchild = None\n",
- " \n",
- " def case_b(self, par, loc):\n",
- " child = self.node()\n",
- " if(loc.lchild != None):\n",
- " chile = loc.lchild\n",
- " else:\n",
- " child = loc.rchild\n",
- " if(par == None):\n",
- " self.root = None\n",
- " else:\n",
- " if(loc == par.lchild):\n",
- " par.lchild = child\n",
- " else:\n",
- " par.rchid = child\n",
- " \n",
- " def case_c(self, par, loc):\n",
- " ptr = self.node()\n",
- " ptrsave = self.node()\n",
- " suc = self.node()\n",
- " parsuc = self.node()\n",
- " ptrsave = loc\n",
- " ptr = loc.lchild\n",
- " while(ptr.lchild != None):\n",
- " ptrsave = ptr\n",
- " ptr = ptr.lchild\n",
- " suc = ptr\n",
- " parsuc = ptrsave\n",
- " if(suc.lchild == None and suc.rchild == None):\n",
- " self.case_a(parsuc, suc)\n",
- " else:\n",
- " self.case_b(parsuc, suc)\n",
- " if(par==None):\n",
- " self.root = suc\n",
- " else: \n",
- " if(loc==par.lchild):\n",
- " par.lchild = suc\n",
- " else:\n",
- " par.rchild = suc\n",
- " suc.lchild = loc.lchild\n",
- " suc.rchild = loc.rchild\n",
- " \n",
- " def insert(self, item):\n",
- " tmp = self.node()\n",
- " parent = self.node()\n",
- " location = self.node()\n",
- " parent,location = self.find(item, parent, location)\n",
- " if(location != None):\n",
- " print \"Item already present\"\n",
- " raw_input()\n",
- " return\n",
- " tmp.info = item\n",
- " tmp.lchild = None\n",
- " tmp.rchild = None\n",
- " if(parent.info==None):\n",
- " self.root = tmp\n",
- " else:\n",
- " if(item<parent.info):\n",
- " parent.lchild=tmp\n",
- " else:\n",
- " parent.rchild=tmp\n",
- " \n",
- " def my_del(self, item):\n",
- " parent = self.node()\n",
- " location = self.node()\n",
- " if(self.root==None):\n",
- " print \"Tree is empty\"\n",
- " raw_input()\n",
- " return\n",
- " self.find(item, parent, location)\n",
- " if(location==None):\n",
- " print \"Item not present in tree\"\n",
- " return\n",
- " if(location.lchild==None and location.rchild==None):\n",
- " self.case_a(parent,location)\n",
- " if(location.lchild!=None and location.rchild==None):\n",
- " self.case_b(parent,location)\n",
- " if(location.lchild==None and location.rchild!=None):\n",
- " self.case_b(parent,location)\n",
- " if(location.lchild!=None and location.rchild!=None):\n",
- " self.case_c(parent,location)\n",
- " delete(location)\n",
- " \n",
- " def preorder(self, ptr):\n",
- " if(self.root==None):\n",
- " print \"Tree is empty\"\n",
- " raw_input()\n",
- " return\n",
- " if(ptr!=None):\n",
- " print ptr.info\n",
- " self.preorder(ptr.lchild)\n",
- " self.preorder(ptr.rchild)\n",
- " \n",
- " def inorder(self, ptr):\n",
- " if(self.root==None):\n",
- " print \"Tree is empty\"\n",
- " raw_input()\n",
- " return\n",
- " if(ptr!=None):\n",
- " self.inorder(ptr.lchild)\n",
- " print ptr.info\n",
- " self.inorder(ptr.rchild)\n",
- " \n",
- " def postorder(self, ptr):\n",
- " if(self.root==None):\n",
- " print \"Tree is empty\"\n",
- " raw_input()\n",
- " return\n",
- " if(ptr!=None):\n",
- " self.postorder(ptr.lchild)\n",
- " self.postorder(ptr.rchild)\n",
- " print ptr.info\n",
- " \n",
- " def display(self, ptr, level):\n",
- " #print ptr.info\n",
- " if (ptr!=None):\n",
- " self.display(ptr.rchild, level+1);\n",
- " for i in range(level):\n",
- " print \" \"\n",
- " print ptr.info\n",
- " self.display(ptr.lchild, level+1)\n",
- "\n",
- "bo = BST()\n",
- "while(1):\n",
- " print \"\\n1.Insert\"\n",
- " print \"2.Delete\"\n",
- " print \"3.Inorder Traversal\"\n",
- " print \"4.Preorder Traversal\"\n",
- " print \"5.Postorder Traversal\"\n",
- " print \"6.Display\"\n",
- " print \"7.Quit\"\n",
- " print \"\\nEnter your choice: \",\n",
- " choice = int(raw_input())\n",
- " if choice == 1:\n",
- " print \"Enter the number to be inserted: \",\n",
- " num = int(raw_input())\n",
- " bo.insert(num)\n",
- " elif choice == 2:\n",
- " print \"Enter the number to be deleted: \",\n",
- " num = int(raw_input())\n",
- " bo.my_del(num)\n",
- " elif choice == 3:\n",
- " bo.inorder(bo.root)\n",
- " raw_input()\n",
- " elif choice == 4:\n",
- " bo.preorder(bo.root)\n",
- " raw_input()\n",
- " elif choice == 5:\n",
- " bo.postorder(bo.root);\n",
- " raw_input()\n",
- " elif choice == 6:\n",
- " bo.display(bo.root,1);\n",
- " raw_input()\n",
- " elif choice == 7:\n",
- " sys.exit()\n",
- " else:\n",
- " print \"Wrong choice...\"\n",
- " raw_input()"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "1.Insert\n",
- "2.Delete\n",
- "3.Inorder Traversal\n",
- "4.Preorder Traversal\n",
- "5.Postorder Traversal\n",
- "6.Display\n",
- "7.Quit\n",
- "\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter the number to be inserted: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.Insert\n",
- "2.Delete\n",
- "3.Inorder Traversal\n",
- "4.Preorder Traversal\n",
- "5.Postorder Traversal\n",
- "6.Display\n",
- "7.Quit\n",
- "\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter the number to be inserted: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.Insert\n",
- "2.Delete\n",
- "3.Inorder Traversal\n",
- "4.Preorder Traversal\n",
- "5.Postorder Traversal\n",
- "6.Display\n",
- "7.Quit\n",
- "\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter the number to be inserted: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "6\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.Insert\n",
- "2.Delete\n",
- "3.Inorder Traversal\n",
- "4.Preorder Traversal\n",
- "5.Postorder Traversal\n",
- "6.Display\n",
- "7.Quit\n",
- "\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter the number to be inserted: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.Insert\n",
- "2.Delete\n",
- "3.Inorder Traversal\n",
- "4.Preorder Traversal\n",
- "5.Postorder Traversal\n",
- "6.Display\n",
- "7.Quit\n",
- "\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter the number to be inserted: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "7\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.Insert\n",
- "2.Delete\n",
- "3.Inorder Traversal\n",
- "4.Preorder Traversal\n",
- "5.Postorder Traversal\n",
- "6.Display\n",
- "7.Quit\n",
- "\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter the number to be inserted: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "4\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.Insert\n",
- "2.Delete\n",
- "3.Inorder Traversal\n",
- "4.Preorder Traversal\n",
- "5.Postorder Traversal\n",
- "6.Display\n",
- "7.Quit\n",
- "\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter the number to be inserted: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "8\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "1.Insert\n",
- "2.Delete\n",
- "3.Inorder Traversal\n",
- "4.Preorder Traversal\n",
- "5.Postorder Traversal\n",
- "6.Display\n",
- "7.Quit\n",
- "\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " 2\n",
- "3\n",
- "4\n",
- "5\n",
- "6\n",
- "7\n",
- "8\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "1.Insert\n",
- "2.Delete\n",
- "3.Inorder Traversal\n",
- "4.Preorder Traversal\n",
- "5.Postorder Traversal\n",
- "6.Display\n",
- "7.Quit\n",
- "\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " 4\n",
- "3\n",
- "2\n",
- "8\n",
- "7\n",
- "6\n",
- "5\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "1.Insert\n",
- "2.Delete\n",
- "3.Inorder Traversal\n",
- "4.Preorder Traversal\n",
- "5.Postorder Traversal\n",
- "6.Display\n",
- "7.Quit\n",
- "\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "7\n"
- ]
- },
- {
- "ename": "SystemExit",
- "evalue": "",
- "output_type": "pyerr",
- "traceback": [
- "An exception has occurred, use %tb to see the full traceback.\n",
- "\u001b[1;31mSystemExit\u001b[0m\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "To exit: use 'exit', 'quit', or Ctrl-D.\n"
- ]
- }
- ],
- "prompt_number": 5
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Principles_of_Data_structures_using_C_and_C++/chapter9.ipynb b/Principles_of_Data_structures_using_C_and_C++/chapter9.ipynb
deleted file mode 100755
index a76b358b..00000000
--- a/Principles_of_Data_structures_using_C_and_C++/chapter9.ipynb
+++ /dev/null
@@ -1,1894 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:3af0c5b7e2b3e44b42e6890fde587cb6dc8ea3cb552c17bf7bd33e8216829d14"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 9: Graphs"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 1, page no. 314"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import sys\n",
- "adj =[]\n",
- "n = None\n",
- "\n",
- "for i in range(20):\n",
- " a = []\n",
- " for j in range(20):\n",
- " a.append(-1)\n",
- " adj.append(a)\n",
- "\n",
- "def create_graph():\n",
- " global n\n",
- " print \"Enter number of nodes: \",\n",
- " n = int(raw_input())\n",
- " max_edges = n*(n-1)\n",
- " for i in range(1,max_edges):\n",
- " print \"Enter edge %d(0 0) to quit: \" %i\n",
- " origin = int(raw_input())\n",
- " destination = int(raw_input())\n",
- " if ((origin==0) and (destination==0)):\n",
- " break\n",
- " if ( origin > n or destination > n or origin<=0 or destination<=0):\n",
- " print \"Invalid edge! \"\n",
- " i -= 1 \n",
- " else:\n",
- " adj[origin][destination] = 1\n",
- "\n",
- "def display():\n",
- " global n\n",
- " for i in range(1,n+1):\n",
- " for j in range(1,n+1):\n",
- " print \"%4d\" %(adj[i][j]),\n",
- " print \"\"\n",
- "\n",
- "def insert_node():\n",
- " global n\n",
- " n += 1\n",
- " print \"The inserted node is %d \" %n\n",
- " for i in range(1,n+1):\n",
- " adj[i][n] = 0\n",
- " adj[n][i] = 0\n",
- "\n",
- "def delete_node(u):\n",
- " global n\n",
- " if(n == 0):\n",
- " print \"Graph is empty \"\n",
- " return\n",
- " if ( u>n ):\n",
- " print \"This node is not present in the graph \"\n",
- " return\n",
- " for i in range(u, n):\n",
- " for j in range(1, n+1):\n",
- " adj[j][i]=adj[j][i+1]\n",
- " adj[i][j]=adj[i+1][j]\n",
- " n -= 1\n",
- "\n",
- "def insert_edge(u, v):\n",
- " global n\n",
- " if (u > n):\n",
- " print \"Source node does not exist\"\n",
- " return\n",
- " if(v > n):\n",
- " print \"Destination node does not exist\"\n",
- " return\n",
- " adj[u][v] = 1\n",
- "\n",
- "def del_edge(u,v):\n",
- " global n\n",
- " if (u>n or v>n or adj[u][v]==0):\n",
- " print \"This edge does not exist\"\n",
- " return\n",
- " adj[u][v] = 0\n",
- "\n",
- "create_graph()\n",
- "while(1):\n",
- " print \"1.Insert a node\"\n",
- " print \"2.Insert an edge\"\n",
- " print \"3.Delete a node\"\n",
- " print \"4.Delete an edge\"\n",
- " print \"5.Dispaly\"\n",
- " print \"6.Exit\"\n",
- " print \"Enter your choice: \",\n",
- " choice = int(raw_input())\n",
- " if choice == 1:\n",
- " insert_node()\n",
- " elif choice == 2:\n",
- " print \"Enter an edge to be inserted: \",\n",
- " origin = int(raw_input())\n",
- " destin = int(raw_input())\n",
- " insert_edge(origin, destin)\n",
- " elif choice == 3:\n",
- " print \"\\nEnter a node to be deleted: \",\n",
- " node = int(raw_input())\n",
- " delete_node(node)\n",
- " elif choice == 4:\n",
- " print \"Enter an edge to be deleted: \",\n",
- " origin = int(raw_input())\n",
- " destin = int(raw_input())\n",
- " del_edge(origin,destin)\n",
- " elif choice == 5:\n",
- " display()\n",
- " elif choice == 6:\n",
- " sys.exit()\n",
- " else:\n",
- " print \"Wrong choice \""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter number of nodes: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edge 1(0 0) to quit: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter edge 2(0 0) to quit: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter edge 3(0 0) to quit: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter edge 4(0 0) to quit: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1.Insert a node\n",
- "2.Insert an edge\n",
- "3.Delete a node\n",
- "4.Delete an edge\n",
- "5.Dispaly\n",
- "6.Exit\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " -1 1 -1 \n",
- " -1 -1 1 \n",
- " 1 -1 -1 \n",
- "1.Insert a node\n",
- "2.Insert an edge\n",
- "3.Delete a node\n",
- "4.Delete an edge\n",
- "5.Dispaly\n",
- "6.Exit\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " The inserted node is 4 \n",
- "1.Insert a node\n",
- "2.Insert an edge\n",
- "3.Delete a node\n",
- "4.Delete an edge\n",
- "5.Dispaly\n",
- "6.Exit\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " -1 1 -1 0 \n",
- " -1 -1 1 0 \n",
- " 1 -1 -1 0 \n",
- " 0 0 0 0 \n",
- "1.Insert a node\n",
- "2.Insert an edge\n",
- "3.Delete a node\n",
- "4.Delete an edge\n",
- "5.Dispaly\n",
- "6.Exit\n",
- "Enter your choice: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "6\n"
- ]
- },
- {
- "ename": "SystemExit",
- "evalue": "",
- "output_type": "pyerr",
- "traceback": [
- "An exception has occurred, use %tb to see the full traceback.\n",
- "\u001b[1;31mSystemExit\u001b[0m\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "To exit: use 'exit', 'quit', or Ctrl-D.\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 2, page no. 321"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from collections import deque\n",
- "\n",
- "class MyBFS:\n",
- " def __init__(self, n, e, src):\n",
- " self.node = n\n",
- " self.edges = e\n",
- " self.source = src\n",
- " self.color = ['W' for i in range(0,n)]\n",
- " self.graph = color= [[False for i in range(0,n)] for j in range(0,n)]\n",
- " self.queue = deque()\n",
- " self.parent = [-1 for u in range(0,n)]\n",
- "\n",
- " self.create_graph()\n",
- " self.traversal()\n",
- "\n",
- " def create_graph(self):\n",
- " for u,v in self.edges:\n",
- " self.graph[u][v], self.graph[v][u] = True, True\n",
- "\n",
- " def traversal(self):\n",
- "\n",
- " self.queue.append(self.source)\n",
- " self.color[self.source] = 'B'\n",
- "\n",
- " while len(self.queue):\n",
- " u = self.queue.popleft()\n",
- " for v in range(0,self.node):\n",
- " if self.graph[u][v] == True and self.color[v]=='W':\n",
- " self.color[v]='B'\n",
- " self.queue.append(v)\n",
- " self.parent[v]=u\n",
- "\n",
- " def show_path(self, destin):\n",
- " if destin == self.source:\n",
- " print destin,\n",
- " elif self.parent[destin] == -1:\n",
- " print \"No Path\"\n",
- " else:\n",
- " self.show_path(self.parent[destin])\n",
- " print \"-> \",destin,\n",
- "\n",
- "\n",
- "e = []\n",
- "print \"Enter Number of nodes: \", \n",
- "n = int(raw_input())\n",
- "for i in range(n):\n",
- " print \"Enter edges (0 0) to quit: \",\n",
- " origin = int(raw_input())\n",
- " destin = int(raw_input())\n",
- " if(origin == 0 and destin == 0):\n",
- " break\n",
- " temp = [origin, destin]\n",
- " e.append(temp)\n",
- " \n",
- "print \"Enter source: \"\n",
- "src = int(raw_input())\n",
- "print \"Enter destination to be searched: \"\n",
- "destin = int(raw_input())\n",
- "#sample [(0,1),(0,3),(1,2),(1,5),(2,7),(3,4),(3,6),(4,5),(5,7)]\n",
- "bfs = MyBFS(n, e, src)\n",
- "print \"BFS Traversal\"\n",
- "bfs.show_path(destin)"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter Number of nodes: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "10\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edges (0 0) to quit: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edges (0 0) to quit: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edges (0 0) to quit: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edges (0 0) to quit: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "4\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edges (0 0) to quit: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edges (0 0) to quit: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "6\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edges (0 0) to quit: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "7\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edges (0 0) to quit: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "4\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "9\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edges (0 0) to quit: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "7\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "8\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edges (0 0) to quit: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter source: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter destination to be searched: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "9\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "BFS Traversal\n",
- "0 -> 1 -> 4 -> 9\n"
- ]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 3, page no. 326"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "adj =[]\n",
- "n = None\n",
- "\n",
- "for i in range(10):\n",
- " a = []\n",
- " for j in range(10):\n",
- " a.append(-1)\n",
- " adj.append(a)\n",
- " \n",
- "def buildadjm(adj, n):\n",
- " for i in range(n):\n",
- " for j in range(n):\n",
- " print \"Enter 1 if there is an edge from %d to %d, otherwise enter 0 \" %(i,j),\n",
- " adj[i][j] = int(raw_input())\n",
- " \n",
- "def dfs(x, visited, adj, n):\n",
- " visited[x] = 1\n",
- " print \"The node visited is %d\\n\" %x\n",
- " for j in range(n):\n",
- " if (adj[x][j] ==1 and visited[j] ==0):\n",
- " dfs(j,visited,adj,n);\n",
- "\n",
- "visited = []\n",
- "print \"Enter the number of nodes in graph maximum = 10: \"\n",
- "n = int(raw_input())\n",
- "buildadjm(adj, n);\n",
- "for i in range(n):\n",
- " visited.append(0)\n",
- "for i in range(n):\n",
- " if(visited[i] == 0):\n",
- " dfs(i,visited,adj,n);"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter the number of nodes in graph maximum = 10: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter 1 if there is an edge from 0 to 0, otherwise enter 0 "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter 1 if there is an edge from 0 to 1, otherwise enter 0 "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter 1 if there is an edge from 0 to 2, otherwise enter 0 "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter 1 if there is an edge from 1 to 0, otherwise enter 0 "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter 1 if there is an edge from 1 to 1, otherwise enter 0 "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter 1 if there is an edge from 1 to 2, otherwise enter 0 "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter 1 if there is an edge from 2 to 0, otherwise enter 0 "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter 1 if there is an edge from 2 to 1, otherwise enter 0 "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter 1 if there is an edge from 2 to 2, otherwise enter 0 "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " The node visited is 0\n",
- "\n",
- "The node visited is 2\n",
- "\n",
- "The node visited is 1\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 4, page no. 332"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import sys\n",
- "\n",
- "class edge:\n",
- " u = 0\n",
- " v = 0\n",
- " weight = 0\n",
- " link = None\n",
- "\n",
- "front = None\n",
- "\n",
- "father = []\n",
- "tree = []\n",
- "n = 0\n",
- "wt_tree = 0\n",
- "count = 0\n",
- "\n",
- "def create_graph():\n",
- " global n\n",
- " print \"Enter number of nodes: \",\n",
- " n = int(raw_input())\n",
- " max_edges = n*(n-1)/2\n",
- " for i in range(1, max_edges+1):\n",
- " print \"Enter edge %d (0 0) to quit: \" %i\n",
- " origin = int(raw_input())\n",
- " destin = int(raw_input())\n",
- " if (origin==0 and destin == 0):\n",
- " break\n",
- " print \"Enter weight for this edge: \",\n",
- " wt = int(raw_input())\n",
- " if(origin > n or destin> n or origin < 0 or destin < 0):\n",
- " print \"Invalid edge...\"\n",
- " i -= 1\n",
- " else:\n",
- " insert_pque(origin, destin, wt)\n",
- " if(i<n-1):\n",
- " print \"Spanning tree is not possible...\"\n",
- " sys.exit()\n",
- "\n",
- "def insert_pque(i, j, wt):\n",
- " global front\n",
- " tmp = edge()\n",
- " tmp.u = i\n",
- " tmp.v = j\n",
- " tmp.weight = wt\n",
- " if(front == None or tmp.weight < front.weight):\n",
- " tmp.link = front\n",
- " front = tmp\n",
- " else:\n",
- " q = front\n",
- " while(q.link != None and q.link.weight <= tmp.weight):\n",
- " q = q.link\n",
- " tmp.link = q.link\n",
- " q.link = tmp\n",
- " if(q.link == None):\n",
- " tmp.link = None\n",
- "\n",
- "def make_tree():\n",
- " global n\n",
- " global wt_tree\n",
- " global count\n",
- " global father\n",
- " for i in range(n):\n",
- " father.append(0)\n",
- " temp = edge()\n",
- " root_n1 = 0\n",
- " root_n2 = 0\n",
- " while(count<n-1):\n",
- " print count\n",
- " temp = del_pque()\n",
- " node1 = temp.u\n",
- " node2 = temp.v\n",
- " print \"n1 = %d\" %node1\n",
- " print \"n2 = %d\" %node2\n",
- " while(node1>0):\n",
- " root_n1 = node1\n",
- " node1 = father[node1]\n",
- " while(node2>0):\n",
- " root_n2 = node2\n",
- " node2 = father[node2]\n",
- " print \"root_n1=%d\" %root_n1\n",
- " print \"root_n2=%d\" %root_n2\n",
- " if(root_n1!=root_n2):\n",
- " insert_tree(temp.u, temp.v, temp.weight)\n",
- " wt_tree = wt_tree + temp.weight\n",
- " father[root_n2] = root_n1\n",
- "\n",
- "def insert_tree(i, j, wt):\n",
- " global count\n",
- " global tree\n",
- " print \"This edge inserted in the spanning tree: \",\n",
- " print count\n",
- " count += 1\n",
- " ob = edge()\n",
- " ob.u = i\n",
- " ob.v = j\n",
- " ob.weight = wt\n",
- " tree.append(ob)\n",
- "\n",
- "def del_pque():\n",
- " global front\n",
- " tmp = edge()\n",
- " tmp = front\n",
- " print \"Edge processed is %d->%d %d\" %(tmp.u, tmp.v, tmp.weight)\n",
- " front = front.link\n",
- " return tmp\n",
- " \n",
- "\n",
- "create_graph()\n",
- "make_tree()\n",
- "print \"Edges to be included in spanning tree are: \",\n",
- "print count\n",
- "for i in range(0, count):\n",
- " print tree[i].u, tree[i].v\n",
- "print \"Weight of the minimum spanning tree is: \", wt_tree"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter number of nodes: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edge 1 (0 0) to quit: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter weight for this edge: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edge 2 (0 0) to quit: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter weight for this edge: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "7\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edge 3 (0 0) to quit: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter weight for this edge: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "8\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " 0\n",
- "Edge processed is 0->1 5\n",
- "n1 = 0\n",
- "n2 = 1\n",
- "root_n1=0\n",
- "root_n2=1\n",
- "This edge inserted in the spanning tree: 0\n",
- "1\n",
- "Edge processed is 1->2 7\n",
- "n1 = 1\n",
- "n2 = 2\n",
- "root_n1=1\n",
- "root_n2=2\n",
- "This edge inserted in the spanning tree: 1\n",
- "Edges to be included in spanning tree are: 2\n",
- "0 1\n",
- "1 2\n",
- "Weight of the minimum spanning tree is: 12\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 5, page no. 341"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import sys\n",
- "from numpy import *\n",
- "\n",
- "class node:\n",
- " predecessor = 0\n",
- " dist = 0\n",
- " status = 0\n",
- "\n",
- "class edge:\n",
- " u = 0\n",
- " v = 0\n",
- "\n",
- "adj = []\n",
- "n = 0\n",
- "TEMP = 0\n",
- "PERM = 1\n",
- "FALSE = 0\n",
- "TRUE = 1\n",
- "infinity = 9999\n",
- "\n",
- "for i in range(10):\n",
- " a = []\n",
- " for j in range(10):\n",
- " a.append(-1)\n",
- " adj.append(a)\n",
- " \n",
- "def create_graph():\n",
- " global n\n",
- " global TEMP\n",
- " global PERM\n",
- " global FALSE\n",
- " global TRUE\n",
- " global infinity\n",
- " print \"Enter number of vertices: \",\n",
- " n = int(raw_input())\n",
- " max_edges=n*(n-1)/2\n",
- " for i in range(1, max_edges+1):\n",
- " print \"Enter edge %d(0 0 to quit): \" %i\n",
- " origin = int(raw_input())\n",
- " destin = int(raw_input())\n",
- " if((origin==0) and (destin==0)):\n",
- " break\n",
- " print \"Enter weight for this edge: \",\n",
- " wt = int(raw_input())\n",
- " if( origin > n or destin > n or origin<=0 or destin<=0):\n",
- " print \"Invalid edge! \"\n",
- " i -= 1\n",
- " else:\n",
- " adj[origin][destin]=wt\n",
- " adj[destin][origin]=wt\n",
- " if(i<n-1):\n",
- " print \"Spanning tree is not possible...\"\n",
- " sys.exit()\n",
- "\n",
- "def display():\n",
- " global n\n",
- " for i in range(1, n+1):\n",
- " for j in range(1, n+1):\n",
- " print \"%3d\" %(adj[i][j]),\n",
- " print \"\"\n",
- "\n",
- "def all_perm(state):\n",
- " global n\n",
- " global n\n",
- " global TEMP\n",
- " global PERM\n",
- " global FALSE\n",
- " global TRUE\n",
- " global infinity\n",
- " for i in range(1, n+1):\n",
- " if( state[i].status == TEMP ):\n",
- " return FALSE\n",
- " return TRUE\n",
- "\n",
- "def maketree(tree):\n",
- " global n\n",
- " global TEMP\n",
- " global PERM\n",
- " global FALSE\n",
- " global TRUE\n",
- " global infinity\n",
- " state = []\n",
- " for i in range(n+1):\n",
- " state.append(0)\n",
- " weight=0\n",
- " for i in range(1, n+1):\n",
- " ob = node()\n",
- " ob.predecessor=0\n",
- " ob.dist = infinity\n",
- " ob.status = TEMP\n",
- " state[i] = ob\n",
- " state[1].predecessor = 0\n",
- " state[1].dist = 0\n",
- " state[1].status = PERM\n",
- " current = 1\n",
- " count = 0\n",
- " while( all_perm(state) != TRUE ):\n",
- " for i in range(1, n+1):\n",
- " if(adj[current][i] > 0 and state[i].status == TEMP):\n",
- " if(adj[current][i] < state[i].dist):\n",
- " state[i].predecessor = current\n",
- " state[i].dist = adj[current][i]\n",
- " min = infinity;\n",
- " for i in range(1, n+1):\n",
- " if (state[i].status == TEMP and state[i].dist < min):\n",
- " min = state[i].dist\n",
- " current = i\n",
- " state[current].status = PERM\n",
- " u1 = state[current].predecessor\n",
- " v1 = current\n",
- " count += 1\n",
- " tree[count].u=u1\n",
- " tree[count].v=v1\n",
- " weight = weight+adj[u1][v1]\n",
- " return count, weight\n",
- "\n",
- "path = []\n",
- "\n",
- "tree = []\n",
- "for i in range(10):\n",
- " ob = edge()\n",
- " ob.u = 0\n",
- " ob.v = 0\n",
- " tree.append(ob)\n",
- "create_graph()\n",
- "print \"Adjacency matrix is: \"\n",
- "display()\n",
- "count, weight = maketree(tree)\n",
- "print \"Weight of spanning tree is: %d\" %weight\n",
- "print \"Edges to be included in spanning tree are: \"\n",
- "for i in range(1, count+1):\n",
- " print tree[i].u, tree[i].v"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter number of vertices: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edge 1(0 0 to quit): \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter weight for this edge: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "7\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edge 2(0 0 to quit): \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter weight for this edge: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "6\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edge 3(0 0 to quit): \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter weight for this edge: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Adjacency matrix is: \n",
- " -1 7 5 \n",
- " 7 -1 6 \n",
- " 5 6 -1 \n",
- "Weight of spanning tree is: 11\n",
- "Edges to be included in spanning tree are: \n",
- "1 3\n",
- "3 2\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 6, page no. 351"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import sys\n",
- "\n",
- "TEMP = 0\n",
- "PERM = 1\n",
- "infinity = 9999\n",
- "adj = [[0 for i in range(100)] for j in range(100)]\n",
- "n = 0 \n",
- "\n",
- "\n",
- "class node:\n",
- " predecessor = 0\n",
- " dist = 0\n",
- " status = 0\n",
- " \n",
- "for i in range(10):\n",
- " ob = node()\n",
- " adj.append(ob)\n",
- "\n",
- "def create_graph():\n",
- " global TEMP\n",
- " global PERM\n",
- " global infinity\n",
- " global n\n",
- " print \"Enter number of vertices: \",\n",
- " n = int(raw_input())\n",
- " max_edges = n*(n-1)\n",
- " for i in range (1, max_edges+1):\n",
- " print \"Enter edge %d(0 0 to quit): \" %i\n",
- " origin = int(raw_input())\n",
- " destin = int(raw_input())\n",
- " if((origin==0) and (destin==0)):\n",
- " break\n",
- " print \"Enter weight for this edge: \",\n",
- " wt = int(raw_input())\n",
- " if ( origin > n or destin > n or origin<=0 or destin<=0):\n",
- " print \"Invalid edge! \"\n",
- " i -= 1\n",
- " else:\n",
- " adj[origin][destin] = wt\n",
- "\n",
- "def display():\n",
- " for i in range(1, n+1):\n",
- " for j in range(1, n+1):\n",
- " print \"%3d\" %(adj[i][j]),\n",
- " print \"\"\n",
- "def findpath(s, d, path, sdist):\n",
- " global TEMP\n",
- " global PERM\n",
- " global infinity\n",
- " global n\n",
- " state = []\n",
- " count = 0\n",
- " sdist = 0\n",
- " for i in range(1, n+1):\n",
- " temp = node()\n",
- " temp.predecessor = 0\n",
- " temp.dist = infinity\n",
- " temp.status = TEMP\n",
- " state.append(temp)\n",
- " state[s-1].predecessor = 0\n",
- " state[s-1].dist = 0\n",
- " state[s-1].status = PERM\n",
- " current = s\n",
- " while(current-1 != d):\n",
- " for i in range(1, n+1):\n",
- " if (adj[current-1][i-1] > 0 and state[i-1].status == TEMP):\n",
- " newdist = state[current-1].dist + adj[current-1][i-1]\n",
- " if ( newdist < state[i-1].dist ):\n",
- " state[i-1].predecessor = current-1\n",
- " state[i-1].dist = newdist\n",
- " min = infinity\n",
- " current = 0\n",
- " for i in range(1, n+1):\n",
- " if(state[i-1].status == TEMP and state[i-1].dist < min):\n",
- " min = state[i-1].dist\n",
- " current = i-1\n",
- " if(current==0):\n",
- " return 0\n",
- " state[current].status=PERM\n",
- " while( current!=0 ):\n",
- " count += 1\n",
- " path[count] = current\n",
- " current=state[current-1].predecessor\n",
- " for i in range(count, -1, -1):\n",
- " u = path[i]\n",
- " v = path[i-1]\n",
- " sdist += adj[u][v]\n",
- " return count\n",
- "\n",
- "path = []\n",
- "create_graph()\n",
- "print \"The adjacency matrix is: \"\n",
- "display()\n",
- "shortdist = 0\n",
- "while(1):\n",
- " print \"\\nEnter source node(0 to quit): \",\n",
- " source = int(raw_input())\n",
- " print \"\\nEnter destination node(0 to quit): \",\n",
- " dest = int(raw_input())\n",
- " if(source==0 or dest==0):\n",
- " sys.exit()\n",
- " count = findpath(source,dest,path,shortdist);\n",
- " if(shortdist!=0):\n",
- " print \"\\nShortest distance is: \", shortdist\n",
- " print \"\\nShortest Path is: \"\n",
- " for i in range(count, 1, -1):\n",
- " print path[i]\n",
- " print path[i]\n",
- " print \"\"\n",
- " else:\n",
- " print \"There is no path from source to destination node\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter number of vertices: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edge 1(0 0 to quit): \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter weight for this edge: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "8\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edge 2(0 0 to quit): \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter weight for this edge: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "7\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edge 3(0 0 to quit): \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enter weight for this edge: "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "5\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " Enter edge 4(0 0 to quit): \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The adjacency matrix is: \n",
- " 0 8 0 \n",
- " 0 0 7 \n",
- " 5 0 0 \n",
- "\n",
- "Enter source node(0 to quit): "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Enter destination node(0 to quit): "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " 2\n",
- "There is no path from source to destination node\n",
- "\n",
- "Enter source node(0 to quit): "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " \n",
- "Enter destination node(0 to quit): "
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0\n"
- ]
- },
- {
- "ename": "SystemExit",
- "evalue": "",
- "output_type": "pyerr",
- "traceback": [
- "An exception has occurred, use %tb to see the full traceback.\n",
- "\u001b[1;31mSystemExit\u001b[0m\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "To exit: use 'exit', 'quit', or Ctrl-D.\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [],
- "language": "python",
- "metadata": {},
- "outputs": []
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Principles_of_Data_structures_using_C_and_C++/screenshots/graph.png b/Principles_of_Data_structures_using_C_and_C++/screenshots/graph.png
deleted file mode 100755
index a1112571..00000000
--- a/Principles_of_Data_structures_using_C_and_C++/screenshots/graph.png
+++ /dev/null
Binary files differ
diff --git a/Principles_of_Data_structures_using_C_and_C++/screenshots/queue.png b/Principles_of_Data_structures_using_C_and_C++/screenshots/queue.png
deleted file mode 100755
index 5e19e23a..00000000
--- a/Principles_of_Data_structures_using_C_and_C++/screenshots/queue.png
+++ /dev/null
Binary files differ
diff --git a/Principles_of_Data_structures_using_C_and_C++/screenshots/stack.png b/Principles_of_Data_structures_using_C_and_C++/screenshots/stack.png
deleted file mode 100755
index 0324ae7d..00000000
--- a/Principles_of_Data_structures_using_C_and_C++/screenshots/stack.png
+++ /dev/null
Binary files differ