summaryrefslogtreecommitdiff
path: root/Numerical_Methods_Principles_by_Analysis/14-Numerical_Integration.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Numerical_Methods_Principles_by_Analysis/14-Numerical_Integration.ipynb')
-rw-r--r--Numerical_Methods_Principles_by_Analysis/14-Numerical_Integration.ipynb587
1 files changed, 587 insertions, 0 deletions
diff --git a/Numerical_Methods_Principles_by_Analysis/14-Numerical_Integration.ipynb b/Numerical_Methods_Principles_by_Analysis/14-Numerical_Integration.ipynb
new file mode 100644
index 0000000..a8bb9cc
--- /dev/null
+++ b/Numerical_Methods_Principles_by_Analysis/14-Numerical_Integration.ipynb
@@ -0,0 +1,587 @@
+{
+"cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 14: Numerical Integration"
+ ]
+ },
+{
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.10: Spline_Integration_Method.sce"
+ ]
+ },
+ {
+"cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+"source": [
+"//Example 14.10\n",
+"//Spline Integration Method\n",
+"//Page no. 478\n",
+"clc;close;clear;\n",
+"\n",
+"deff('y=f(x)','y=sind(%pi*x)')\n",
+"deff('y=f1(x,h)','y=(f(x+h)-f(x))/h')\n",
+"h=0.01;\n",
+"n=2;h=0.5;a=0;b=1;\n",
+"disp(integrate('f(x)','x',0,1),'I = ')"
+ ]
+ }
+,
+{
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.11: Trapezoidal_Rule.sce"
+ ]
+ },
+ {
+"cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+"source": [
+"//Example 14.1\n",
+"//Trapezoidal Rule\n",
+"//Page no 440\n",
+"clc;clear;close;\n",
+"x1=1.46\n",
+"for i=1:6\n",
+" x(1,i)=x1+i/100\n",
+"end\n",
+"y=[3.86,3.90,3.96,4.02,4.06,4.12]\n",
+"\n",
+"//trapezoidal rule\n",
+"S=0;\n",
+"h=(x(6)-x1)/6\n",
+"for i=1:6\n",
+" if(i==1 | i==6)\n",
+" S=S+y(i)\n",
+" else\n",
+" S=S+2*y(i)\n",
+" end\n",
+"end\n",
+"S=S*h/2\n",
+"printf('\n I = %g',S)"
+ ]
+ }
+,
+{
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.14: Trapezoidal_and_Simpsons_Rule.sce"
+ ]
+ },
+ {
+"cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+"source": [
+"//Example 14.14\n",
+"//Trapezoidal and Simpsons Rule\n",
+"//Page no. 486\n",
+"clc;close;clear;\n",
+"\n",
+"x(1)=0.5;y(1)=0.5;h=0.25\n",
+"for i=2:3\n",
+" x(i)=x(i-1)+h\n",
+" y(i)=y(i-1)+h\n",
+"end\n",
+"printf(' y/x\t|\t%g\t%g\t%g',x(1),x(2),x(3))\n",
+"printf('\n--------|---------------------------')\n",
+"for i=1:3\n",
+" printf('\n%g\t|\t',y(i))\n",
+" for j=1:3\n",
+" z(i,j)=x(j)*y(i)\n",
+" printf('%g\t',z(i,j))\n",
+" end\n",
+"end\n",
+"\n",
+"//trapezoidal rule\n",
+"s=0;\n",
+"for i=1:3\n",
+" for j=1:3\n",
+" if i==1 & j==1 then\n",
+" s=s+z(i,j)\n",
+" elseif i==3 & j==3\n",
+" s=s+z(i,j)\n",
+" else\n",
+" s=s+2*z(i,j)\n",
+" end\n",
+" end\n",
+"end\n",
+"s=(s*(h^2))/4\n",
+"printf('\n\n')\n",
+"disp(s,'Trapezoidal Rule Sum = ')\n",
+"printf('\n\n')\n",
+"//simpsons rule\n",
+"s=0;\n",
+"for i=1:3\n",
+" for j=1:3\n",
+" if i/2-int(i/2)==0 & j/2-int(j/2)==0 then\n",
+" s=s+16*z(i,j)\n",
+" elseif i/2-int(i/2)~=0 & j/2-int(j/2)~=0\n",
+" s=s+z(i,j)\n",
+" else\n",
+" s=s+4*z(i,j)\n",
+" end\n",
+" end\n",
+"end\n",
+"s=(s*(h^2))/9\n",
+"disp(s,'Simpsons Rule Sum = ')"
+ ]
+ }
+,
+{
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.15: Trapezoidal_and_Simpsons_Rule.sce"
+ ]
+ },
+ {
+"cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+"source": [
+"//Example 14.15\n",
+"//Trapezoidal and Simpsons Rule\n",
+"//Page no. 487\n",
+"clc;close;clear;\n",
+"\n",
+"x(1)=0;y(1)=0;h=0.25\n",
+"for i=2:5\n",
+" x(i)=x(i-1)+h\n",
+" y(i)=y(i-1)+h\n",
+"end\n",
+"printf(' y/x\t|\t%g\t%g\t%g\t%g\t%g',x(1),x(2),x(3),x(4),x(5))\n",
+"printf('\n--------|-------------------------------------------')\n",
+"for i=1:5\n",
+" printf('\n%g\t|\t',y(i))\n",
+" for j=1:5\n",
+" z(i,j)=x(j)*y(i)\n",
+" printf('%g\t',z(i,j))\n",
+" end\n",
+"end\n",
+"\n",
+"//trapezoidal rule\n",
+"s=0;\n",
+"for i=1:5\n",
+" for j=1:5\n",
+" if i==1 & j==1 then\n",
+" s=s+z(i,j)\n",
+" elseif i==5 & j==5\n",
+" s=s+z(i,j)\n",
+" else\n",
+" s=s+2*z(i,j)\n",
+" end\n",
+" end\n",
+"end\n",
+"s=(s*(h^2))/4\n",
+"printf('\n\n')\n",
+"disp(s,'Trapezoidal Rule Sum = ')\n",
+"printf('\n\n')\n",
+"\n",
+"//simpsons rule\n",
+"s=0;\n",
+"for i=1:5\n",
+" for j=1:5\n",
+" if i/2-int(i/2)==0 & j/2-int(j/2)==0 then\n",
+" if i==j then\n",
+" s=s+16*z(i,j)\n",
+" else\n",
+" s=s+4*z(i,j)\n",
+" end\n",
+" \n",
+" elseif i/2-int(i/2)~=0 & j/2-int(j/2)~=0\n",
+" s=s+z(i,j)\n",
+" else\n",
+" s=s+4*z(i,j)\n",
+" end\n",
+" end\n",
+"end\n",
+"s=(s*(h^2))/9\n",
+"disp(s,'Simpsons Rule Sum = ')"
+ ]
+ }
+,
+{
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.16: Multiple_Integration_with_Variable_Limits.sce"
+ ]
+ },
+ {
+"cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+"source": [
+"//Example 14.16\n",
+"//Multiple Integration with Variable Limits\n",
+"//Page no. 491\n",
+"clc;close;clear;\n",
+"\n",
+"deff('z=f(x)','z=x+1')\n",
+"deff('z=f1(y)','z=(y+1)^3*(y+3)^2')\n",
+"s=5/9*f(-sqrt(3/5))+8/9*f(0)+5/9*f(sqrt(3/5))\n",
+"s=s*5/9*f1(-sqrt(3/5))+8/9*f1(0)+5/9*f1(sqrt(3/5))\n",
+"s=s/256;\n",
+"disp(s,'I = ')"
+ ]
+ }
+,
+{
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.18: Integration.sce"
+ ]
+ },
+ {
+"cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+"source": [
+"//Example 14.18\n",
+"//Integration\n",
+"//Page no. 494\n",
+"clc;close;clear;\n",
+"\n",
+"s=integrate('x^2*sin(x^2)','x',0,1)\n",
+"disp(s,'I = ')"
+ ]
+ }
+,
+{
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.19: Integration.sce"
+ ]
+ },
+ {
+"cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+"source": [
+"//Example 14.19\n",
+"//Integration\n",
+"//Page no. 494\n",
+"clc;close;clear;\n",
+"\n",
+"s=integrate('sin(t)/t','t',1,999)\n",
+"disp(s,'I = ')"
+ ]
+ }
+,
+{
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.2: Simpsons_1_3rd_Rule.sce"
+ ]
+ },
+ {
+"cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+"source": [
+"//Example 14.2\n",
+"//Simpsons 1/3rd Rule\n",
+"//Page no 442\n",
+"clc;clear;close;\n",
+"x(1,1)=0\n",
+"for i=2:9\n",
+"\n",
+" x(1,i)=x(1,1)+(i-1)*10\n",
+"end\n",
+"y=[30,31.63,33.44,35.47,37.75,40.33,43.29,46.69,50.67]\n",
+"\n",
+"//trapezoidal rule\n",
+"S=0;\n",
+"h=(x(9)-x(1))/8\n",
+"for j=1:9\n",
+" S=0;\n",
+" for i=1:j\n",
+" if(i==1 | i==j)\n",
+" S=S+y(i)\n",
+" else\n",
+" S=S+2*y(i)\n",
+" end\n",
+" end\n",
+" S=S*h/2\n",
+" printf('\n Velocity at t (%i) = %.2f',x(j),S)\n",
+" y1(j)=S\n",
+"end\n",
+"\n",
+"y1(1)=0;\n",
+"//Simpsons 1/3rd Rule\n",
+"S=0;\n",
+"h=(x(9)-x(1))/8\n",
+"for i=1:9\n",
+" if(i==1 | i==9)\n",
+" S=S+y1(i)\n",
+" elseif(((i)/2)-fix((i)/2)==0)\n",
+" S=S+4*y1(i)\n",
+" else\n",
+" S=S+2*y1(i)\n",
+" end\n",
+"end\n",
+"S=S*h/3;\n",
+"S=S/1000\n",
+"printf('\n\nSimpsons 1/3rd Rule Sum = %g km',S)"
+ ]
+ }
+,
+{
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.3: Trapezoidal_Rule_and_Simpsons_Rule.sce"
+ ]
+ },
+ {
+"cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+"source": [
+"//Example 14.3\n",
+"//Trapezoidal Rule and Simpsons Rule\n",
+"//Page no. 442\n",
+"clc;close;clear;\n",
+"n=2;a=0;b=1;\n",
+"h=(b-a)/n\n",
+"deff('y=f(x)','y=1/(1+x)')\n",
+"for i=0:2\n",
+" x(i+1)=i/2;\n",
+" y(i+1)=f(x(i+1))\n",
+"end\n",
+"printf('xi\t ')\n",
+"for i=1:3\n",
+" printf('%g\t ',x(i))\n",
+"end\n",
+"printf('\n yi\t')\n",
+"for i=1:3\n",
+" printf('1/%g\t',1+(i-1)/2)\n",
+"end\n",
+"\n",
+"//trapezoidal rule\n",
+"S=0;\n",
+"for i=1:3\n",
+" if(i==1 | i==3)\n",
+" S=S+y(i)\n",
+" else\n",
+" S=S+2*y(i)\n",
+" end\n",
+"end\n",
+"S=S*h/2\n",
+"printf('\n\nTrapezoidal Rule Sum = %g',S)\n",
+"\n",
+"//Simpsons 1/3rd Rule\n",
+"S=0;\n",
+"for i=1:3\n",
+" if(i==1 | i==3)\n",
+" S=S+y(i)\n",
+" elseif(((i)/2)-fix((i)/2)==0)\n",
+" S=S+4*y(i)\n",
+" else\n",
+" S=S+2*y(i)\n",
+" end\n",
+"end\n",
+"S=S*h/3\n",
+"printf('\n\nSimpsons 1/3rd Rule Sum = %g',S)"
+ ]
+ }
+,
+{
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.5: Romberg_Method.sce"
+ ]
+ },
+ {
+"cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+"source": [
+"//Example 14.5\n",
+"//Romberg Method\n",
+"//Page no. 457\n",
+"clc;close;clear;\n",
+"\n",
+"deff('y=f(x)','y=1/(1+x)')\n",
+"\n",
+"h=[0.5,0.25,0.125]\n",
+"for k=1:3\n",
+" for i=0:h(k):1\n",
+" x(i/h(k)+1)=i;\n",
+" y(i/h(k)+1)=f(x(i/h(k)+1))\n",
+" end\n",
+" n=1+(1/h(k))\n",
+" //trapezoidal rule\n",
+" S=0;\n",
+" for i=1:n\n",
+" if(i==1 | i==n)\n",
+" S=S+y(i)\n",
+" else\n",
+" S=S+2*y(i)\n",
+" end\n",
+" end\n",
+" S=S*h(k)/2\n",
+" printf('\n\nI(%g) = %g',h(k),S)\n",
+" z(2*k-1,1)=S\n",
+"end\n",
+"for i=2:3\n",
+" for k=1:4-i\n",
+" z(k*2+i-2,i)=z(2*k-1+i,i-1)+(z(2*k-1+i,i-1)-z(2*k-3+i,i-1))/3\n",
+"end\n",
+"end\n",
+"\n",
+"printf('\n\n')\n",
+"disp(z,'The Table of values:')"
+ ]
+ }
+,
+{
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.7: Gaussian_Quadrature_Formula.sce"
+ ]
+ },
+ {
+"cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+"source": [
+"//Example 14.7\n",
+"//Gaussian Quadrature Formula\n",
+"//Page no. 463\n",
+"clc;close;clear;\n",
+"\n",
+"deff('y=f(x)','y=cos(x)*log(x)')\n",
+"s=0;\n",
+"for i=0:2:2000\n",
+" s=s+integrate('((-1)^(i/2))*(x^i)/factorial(i)*log(x)','x',0,1)\n",
+"end\n",
+"disp(s,'Till 1000 terms .... I =')"
+ ]
+ }
+,
+{
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.8: Gauss_Legendre_Two_Point_Rule.sce"
+ ]
+ },
+ {
+"cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+"source": [
+"//Example 14.8\n",
+"//Gauss Legendre Two Point Rule\n",
+"//Page no. 472\n",
+"clc;close;clear;\n",
+"\n",
+"deff('y=f(x)','y=1/(x+3)')\n",
+"s=integrate('f(x)','x',-1,1)\n",
+"printf('By Direct Method, I = %g',s)\n",
+"s=f(-1/sqrt(3))+f(1/sqrt(3))\n",
+"printf('\n\n By Gauss-Legendre 2 point rule, I = %g',s)"
+ ]
+ }
+,
+{
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.9: Gauss_Legendre_Three_Point_Rule.sce"
+ ]
+ },
+ {
+"cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+"source": [
+"//Example 14.9\n",
+"//Gauss Legendre Three Point Rule\n",
+"//Page no. 473\n",
+"clc;close;clear;\n",
+"\n",
+"deff('y=f(x)','y=1/(x+3)')\n",
+"s=integrate('f(x)','x',-1,1)\n",
+"printf('By Direct Method, I = %g',s)\n",
+"s=5/9*f(-sqrt(3/5))+8/9*f(0)+5/9*f(sqrt(3/5))\n",
+"printf('\n\n By Gauss-Legendre 3 point rule, I = %g',s)"
+ ]
+ }
+],
+"metadata": {
+ "kernelspec": {
+ "display_name": "Scilab",
+ "language": "scilab",
+ "name": "scilab"
+ },
+ "language_info": {
+ "file_extension": ".sce",
+ "help_links": [
+ {
+ "text": "MetaKernel Magics",
+ "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md"
+ }
+ ],
+ "mimetype": "text/x-octave",
+ "name": "scilab",
+ "version": "0.7.1"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}