Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Of Numerical Method Deenbandhu Chhotu Ram University of Sciences & Technology Murthal, Sonepat,
SUBMITTED TO:
Dr. Vijay Tomar 1
SUBMITTED BY :
I n d e x
Sl. No. 01 Name of Experiment To find the roots of non linear equation using Bisection Method. To find the roots of non linear equation using
Regula falsi Method.
Date of Submission
Teachers Sign.
02
21/01/2012
03
28/01/2012
04
28/01/2012
05
04/02/2012
06 07 08
To integrate numerically using Simpsons rule. To integrate numerically using trapezoidal rule. To find numerical solution of ordinary differential equation by Euler's method To find numerical solution of ordinary differential equation by Lagrange's Interpolation To find numerical solution of ordinary differential equation by Runge Kutta Method
8 9 10
09
11
25/02/2012
10
12
01/03/2012
SUBMITTED TO:
Dr. Vijay Tomar 2
SUBMITTED BY :
Practical = 1
/*Bisection Method*/ #include <stdio.h> #include<math.h> float f(float x) { return (x*x*x - 4*x -9); } void bisect(float *x,float a,float b, int *itr) { *x = (a + b)/2; ++(*itr); printf("iteration no. %3d x = %7.5f\n",*itr,*x); } main() { int itr = 0, maxitr; float x, a, b, aerr, x1; printf("enter the value of a,b" "allowed error, maximum iteration\n"); scanf ("%f %f %f %d", &a, &b, &aerr, &maxitr); bisect (&x, a, b , & itr); do { if (f(a)*f(x)<0) b=+x; else a=x; bisect (&x1,a,b,&itr); if (fabs(x1-x) < aerr) { printf ("after %d iteration,root<169> = %6.4f\n",itr,x1); return 0; } x=x1; } while (itr < maxitr); printf ("solution does not coverg," "iteration not sufficient "); return 1; }
SUBMITTED TO:
Dr. Vijay Tomar 3
SUBMITTED BY :
Practical = 2
/* regula falsi method*/ #include<stdio.h> #include<conio.h> #include<iomanip.h> #include<math.h> float f (float x) { return cos(x)-x*exp(x); } void regula (float *x,float x0,float x1, floatfx0,floatfx1,int *itr) { *x=x0-((x1-x0)/(fx1-fx0))*fx0; ++(*itr); cout<<"iteration no."<<setw(3)<<*itr <<"x="<<setw(7)<<setprecision(5) <<*x<<end1; } int main() { int itr =0, maxitr; floatx0,x1,x2,x3,aerr;
<<"allowed error, maximum iteration "<<end1; cin>>x0>>x1>>aerr>> maxitr; regula (&x2,x0,x1,f(x0),f(X1),& itr); cout << fixed; do { if (f(x0)*f(X2)<0) x1=x2; else x0=x2; regula(&x3,x0,x1,f(x0),f(x1),& itr); if(fabs(x3-x2)< aerr) { cout << "after" <<itr<< " iterations," << "root="<<setw(6)<<setprecision(4) <<x3<<end1; return 0; } x2=x3; } while (itr < maxitr); cout <<" solution does not coverage," <<" iteration not sufficient"<<end; return 1; }
SUBMITTED TO:
Dr. Vijay Tomar 4
SUBMITTED BY :
Practical = 3
/* Newton Raphson Method */ #include <stdio.h> #include <math.h> float f (float x) { return x*log10(x)-1.2; } float df (float x) { return log10(x) + 0.43429; } main() { int itr,maxitr; float h,x0,x1,aerr; printf("Enter x0,allowed error," "maximum iteration\n"); scanf ("%f %f %d", &x0 , &aerr, &maxitr); for (itr=1;itr<=maxitr;itr++) { h = f(x0)/df(x0); x1 = x0-h; printf("Iteration no. %3d," "x = %9.6f\n",itr,x1); if (fabs(h) < aerr) { printf("After %3d iteration," "root = %8.6f\n", itr,x1); return 0; } x0 = x1; } printf("Iteration not sufficient," "solution does not converge\n"); return 1; }
SUBMITTED TO:
Dr. Vijay Tomar 5
SUBMITTED BY :
Practical = 4
/*Gauss elimination method*/ #include <stdio.h> #define N 4 void main() { float a[N][N+1],x[N],t,s; int i,j,k; printf(" Enter the elements of the" "augmented matrix rowwise"); for (i=0;i<N;i++) for (j=0;j<N+1;j++) scanf ("%f",&a[i][j]); for (j=0;j<N-1;j++) for (i=j+1;i<N;i++) { t=a[i][j]/a[j][j]; for (k=0;k<N+1;k++) a[i][k]=a[j][k]*t; } /* now printing the upper triangular matrix */ printf("The upper triangular matrix" "is :-\n"); for (i=0;i<N;i++) { for (j=0;j<N+1;j++) printf("%8.4f",a[i][j]); printf("\n"); } /* now performing back subsitution */ for (i=N-1;i>=0;i--) { s = 0; for (j=i+1;j<N;j++) s += a [i][j]*x[j]; x[i] = (a[i][N]-s)/a[i][i]; } /* now printing the results */ printf("The solution is :- \n"); for (i=0;i<N;i++) printf("x[3%d] = %7.4f\n",i+1,x[i]); }
SUBMITTED TO:
Dr. Vijay Tomar 6
SUBMITTED BY :
Practical = 5
/* Gauss jordan method */ #include<iostream.h> #include<iomanip.h> #define N 4 int main() { float a[N][N+1],t; int i,j,k,end1,end,fixed; cout<<"Enter the element of the" <<"augmented matrix rowwise" << end1; for (i=0;i<N;i++) for (j=0;j<N+1;j++) cin>>a[i][j]; /* now calculating the values of x1,x2,......,xn */ cout<<fixed; for (j=0;j<N;j++) for (i=0;i<N;i++) if (i!=j) { t=a[i][j]/a[j][j]; } } /* now printing the diagonal matrix */ cout<< "The diagnol matrix is :-"<< end1; for (i=0;i<N;i++) { for (j=0;j<N;j++) cout<< setw(9) << setprecision(4) << a[i][j]; cout << end1; } /* now printing the results */ cout<< "The solutin is:-" << end; for (i=0;i<N;i++) cout<< "x[" <<setw(3)<< i+1<<"] =" << setw(7)<< setprecision(4) << a[i][N]/a[i][i]<< end; return 0; for (k=0;k<N+1;k++) a[i][j] -=a[j][k]*t;
SUBMITTED TO:
Dr. Vijay Tomar 7
SUBMITTED BY :
Practical = 6
/*simposon's rule*/ #include<stdio.h> float y(float x) { return 1/(1+x*x); } main() { float x0,xn,h,s; int i,n; puts("enter x0,xn,no. of subintervals"); scanf("%f %f %d ", &x0,&xn,&n); h=(xn-x0)/n; s=y(x0)+y(xn)+4*y(x0+h); for (i=3;i<n-1;i+=2) s+=4*y(x0+i*h)+2*y(x0+(i-1)*h); printf("value of integral is %6.4f\n", (h/3)*s); }
SUBMITTED TO:
Dr. Vijay Tomar 8
SUBMITTED BY :
Practical = 7
/*trapezoidal rule*/ #include<stdio.h> float y(float x) { return 1/(1+x*x); } main() { float x0,xn,h,s; int i,n; puts("enter x0,xn,no. of subintervals"); scanf ("%f %f %d",&x0,&xn,&n); h=(xn-x0)/n; s=y(x0)+y(xn); for (i=1;i<n-1;i++) s+=2*y(x0+i*h); printf ("value of integral is % 6.4f\n", (h/2)*s); }
SUBMITTED TO:
Dr. Vijay Tomar 9
SUBMITTED BY :
Practical = 8
/*Euler's method*/ #include<stdio.h> #include<conio.h> #include<iostream.h> #include<iomanip.h> float df(float x,float y) { return x+y; } int main() { float x0,y0,h,x,x1,y1,end1,fixed; cout << "Enter the values of x0,y0,h,x" << end1; cin >> x0 >> y0 >> h >> x; cout << fixed; x1=x0;y1=y0; while(1) { if(x1>x) return 0; } y1+=h*df(x1,y1); x1+=h; cout << "when x=" << setw(3) << setprecision(1) << x1 << "y=" << setw(4) << setprecision(2) << y1 << end1;
SUBMITTED TO:
Dr. Vijay Tomar 10
SUBMITTED BY :
Practical = 9
/*Lagrange's Interpolation*/ #include<iostream.h> #include<iomanip.h> #define MAX 100 int main() { float ax [MAX+1],ay[MAX+1],nr,dr,x,y=0,end1,fixed; int i,j,n; cout << "Enter the value of n" << end1; cin >> n; cout << "Enter the set of values" << end1; for (i=0;i<=n;i++) cin >> ax[i] >> ay[i]; cout << "Enter the value of x for which" << "Value of y is wanted" << end1; cin >> x; cout << fixed; { nr=dr=1; for(j=0;j<=n;j++) if (j!=i) { nr *=x-ax[j]; dr *=ax[i]-ax[j]; } y+= (nr/dr)*ay[i]; } cout << "when x=" << setw(4) << setprecision(1) << x << "y=" << setw(7) << setprecision(1) << y << end1; return 0; }
SUBMITTED TO:
Dr. Vijay Tomar 11
SUBMITTED BY :
Practical = 10
/*Runge Kutta Method*/ #include<iostream.h> #include<iomanip.h> float f(float x,float y) { return x+y*y; } int main() { float x0,y0,h,xn,x,y,k1,k2,k3,k4,k,end1,fixed; cout << "Enter the value of x0,y0," << "h,xn" << end1; cin >> x0 >> y0 >> h >> xn; x=x0; y=y0; cout << fixed; while (1) { if (x == xn) break; k1=h*f(x,y); k2=h*f(x+h/2,y+k1/2); } return 0; } k3=h*f(x+h/2,y+k2/2); k4=h*f(x+h,y+k3); k=(k1+(k2+k3)*2+k4)/6; x+=h; y+=k; cout << "when x=" << setprecision(4) << setw(8) << x << "y=" << setw(8) << y << end1;
SUBMITTED TO:
Dr. Vijay Tomar 12
SUBMITTED BY :