PROGRAMMING Lab Programs Write a program to solve first order ordinary differential equations (initial value problem) using adaptive Runge- Kutta method . Jun 26 Posted by jaisha57 #include<stdio.h> #include<conio.h> #include<math.h> #include<stdlib.h> float fun(float x,float y) { return(x*y); } void main() { float y,x,h,e,k1,k2,k3,k4,k5,k; int n,i; clrscr(); printf(\n enter the value of x0:); scanf(%f,&x); printf(\n enter the value of y0:); scanf(%f,&y); printf(\n enter step length h: ); scanf(%f,&h); printf(\n enter the vlaue of x at which y is needed :); scanf(%f,&e); n=(e-x)/h; for(i=1;i<=n;i++) { k1=h*fun(x,y); k2=h*fun(x+h/4,y+k1/4); k3=h*fun(x+(3*h)/8,y+(3*k1)/32+(9*k2)/32); k4=h*fun(x+(12*h)/13,y+(1932*k1/21971)+(7200*k2/2197)+(7296*k3/2197)); k5=h*fun(x+h,y+(439*k1/216)-8*k2+(3600*k3/513)-(845*k4/4104)); k=((25*k1/216)+(1048*k3/2565)+(2197*k4/4104)-k5/5); y=y+k; x=x+h; printf(the value of y at x=%f is %f ,x,y); } getch(); } Posted in NUMERICAL ANALYSIS and LINEAR PROGRAMMING Lab Programs Leave a comment Write a program to solve first and second order ordinary differential equations (initial value problem) using Runge- Kutta fourth order method. Jun 26 Posted by jaisha57 #include<stdio.h> #include<conio.h> #include<math.h> #include<stdlib.h> float fun(float x,float y) { return(x+fabs(sqrt(y))); } void main() { float y,x,h,e,k1,k2,k3,k4,k; int n,i; clrscr(); printf(\n enter the value of x0:); scanf(%f,&x); printf(\n enter the value of y0:); scanf(%f,&y); printf(\n enter step length h: ); scanf(%f,&h); printf(\n enter the vlaue of x at which y is needed :); scanf(%f,&e); n=(e-x)/h; for(i=1;i<=n;i++) { printf(%d the iteration \n,i); k1=h*fun(x,y); k2=h*fun(x+h/2,y+k1/2); k3=h*fun(x+h/2,y+k2/2); k4=h*fun(x+h,y+k3); k=(k1+2*k2+2*k3+k4)/6; y=y+k; x=x+h; printf(\n the value of y at x=%f is %f,x,y); } getch(); } Posted in NUMERICAL ANALYSIS and LINEAR PROGRAMMING Lab Programs Leave a comment Write a program to solve the system of equations Ax = b using Gauss-Seidel method Jun 26 Posted by jaisha57 #include<stdio.h> #include<conio.h> #include<math.h> #include<stdlib.h> void main() { float a[20][20],x[20],e,big,temp,relerror,sum; int n,i,j,maxit,itr; char ch; clrscr(); printf(enter the size of the equation:); scanf(%d,&n); top:for(i=1;i<=n;i++) { printf(\n enter the co-efficient of the equation %d and rhs:\n,i); for(j=1;j<=n+1;j++) scanf(%f,&a[i][j]); } printf(\n enter the relative error and number of iteration:); scanf(%f%d,&e,&maxit); for(i=1;i<=n;i++) x[i]=0; for(itr=1;itr<=maxit;itr++) { big=0; for(i=1;i<=n;i++) { sum=0; for(j=1;j<=n;j++) { if(j!=i) sum=sum+a[i][j]*x[j]; } temp=(a[i][n+1]-sum)/a[i][i]; relerror=fabs((x[i]-temp)/temp); if(relerror>big) big=relerror; x[i]=temp; } if(big<=e) { printf(\n converges to a solution \n); for(i=1;i<=n;i++) printf(%f\t,x[i]); getch(); exit(1); } } printf(\n does not converge is %d iteration \n,maxit); printf(\n please try by interchanging any two equation \n); printf(make diagonal entries pivotal \n ); printf(\n do you want to try(y/n):); fflush(stdin); ch=getchar(); if(ch==y) goto top; for(i=1;i<=n;i++) printf(%f\t,x[i]); getch(); } Posted in NUMERICAL ANALYSIS and LINEAR PROGRAMMING Lab Programs Leave a comment Write a program to solve the system of equations Ax = b using Gauss elimination method. Jun 26 Posted by jaisha57 #include<stdio.h> #include<conio.h> #include<math.h> #include<stdlib.h> void main() { float u,e,z,a[20][20],temp,x[20],sum,max; int m,n,j,i,p,k,q; clrscr(); printf(enter the size of the equation); scanf(%d,&n); for(i=1;i<=n;i++) { printf(\n enter the co-eficient of the equation %d and RHS:\n,i); for(j=1;j<=n+1;j++) scanf(%f,&a[i][j]); } printf(\n enter the error allowed : \n); scanf(%f,&e); for(k=1;k<=n-1;k++) { max=abs(a[k][k]); p=k; for(m=k+1;m<=n;m++) { z=fabs(a[m][k]); if(z>max) { max=abs(a[m][k]); p=m; } } if(max<=e) { printf(ill conditional equation:); getch(); exit(1); } if(p==k)goto cont; for(q=k;q<=n+1;q++) { temp=a[k][q]; a[k][q]=a[p][q]; a[p][q]=temp; } cont:for(i=k+1;i<=n;i++) { u=a[i][k]/a[k][k]; for(j=k;j<=n+1;j++) a[i][j]=a[i][j]-u*a[k][j]; } } x[n]=a[n][n+1]/a[n][n]; printf(\nthe value of x%d is %f \n,n,x[n]); for(i=n-1;i>=1;i) { sum=0; for(j=i+1;j<=n;j++) { sum=sum+a[i][j]*x[j]; } x[i]=(a[i][n+1]-sum)/a[i][i]; printf(\nthe value of x%2d is %f\n,i,x[i]); } getch(); } Posted in NUMERICAL ANALYSIS and LINEAR PROGRAMMING Lab Programs Leave a comment Write a program to solve the system of equations Ax = b in tridiagonal form using Thomas Algorithm. Jun 26 Posted by jaisha57 #include<stdio.h> #include<conio.h> #include<math.h> #define MAX_N 20 void tridge(float a[],float b[],float c[],float f[],int i,int iflag); void main() { float a[MAX_N+1],b[MAX_N+1],c[MAX_N+1],f[MAX_N+1]; int n,i,j,iflag; clrscr(); printf(\n what is the order n of system ?); scanf(%d,&n); printf(\n give b[1],c[1],rhs[1] for equation 1:); scanf(%f%f%f,&b[1],&c[1],&f[1]); for(i=2;i<=n-1;i++) { printf(\n give a[%d],b[%d],c[%d],rhs[%d] for the equation %d\n,i,i,i,i,i); scanf(%f%f%f%f,&a[i],&b[i],&c[i],&f[i]); } printf(\n give a[n],b[n],rhs[n] for equation %d:,n); scanf(%f%f%f,&a[n],&b[n],&f[n]); iflag=0; tridge(a,b,c,f,n,iflag); printf(solution); printf(\ni a[i]); for(j=1;j<=n;j++) printf(\n%d\t%f,j,f[j]); printf(\n); getch(); return; } void tridge(float a[],float b[],float c[],float f[],int n,int iflag) { const float zero=0.0; int j; if(iflag==0) { for(j=2;j<=n;j++) { if(b[j-1]==zero) { return; } a[j]=a[j]/b[j-1]; b[j]=b[j]-a[j]*c[j-1]; } if(b[n]==zero) { return; } } for(j=2;j<=n;j++) f[j]=f[j]-a[j]*f[j-1]; f[n]=f[n]/b[n]; for(j=n-1;j>=1;j) f[j]=(f[j]-c[j]*f[j+1])/b[j]; return; } Posted in NUMERICAL ANALYSIS and LINEAR PROGRAMMING Lab Programs Leave a comment Write a program to find the integral of a function using Simpsons 1/3rd and 3/8th rule using switch case. Jun 26 Posted by jaisha57 #include<stdio.h> #include<conio.h> #include<math.h> float sim_1(float,float,int); float sim_2(float,float,int); int i; float sum; float fun(float x) { return(1/(1+pow(x,2))); } void main() { float x0,x1,sum,result; int n,cho=0; clrscr(); printf(enter the lower and upper limit \n); scanf(%f%f,&x0,&x1); printf(enter number of intervals:\n); scan:scanf(%d,&n); if(cho==0) { top:printf(\t enter choice \n); printf(\n 1.for simpsons 1/3 rule\n); printf(\n 2.for simpsons 3/8 rule\n); scanf(%d,&cho); } switch(cho) { case 1:if(n%2==0) result=sim_1(x0,x1,n); else { printf(wrong choice of interval); printf(please enter even number); goto scan; } break; case 2:if(n%3==0) result=sim_2(x0,x1,n); else { printf(wrong choice of intervals \n ); printf(\n please enter a multiple of 3 \n); goto scan; } break; default:printf(\n wrong choice enter again:); goto top; } printf(\n the result=%f,result); getch(); } float sim_1(float x0,float x1,int n) { float result,h; h=(x1-x0)/n; sum=fun(x0)+fun(x1); for(i=1;i<n;i++) { if(i%2==0) sum=sum+2*fun(x0+i*h); else sum=sum+4*fun(x0+i*h); } result=sum*(h/3); return(result); } float sim_2(float x0,float x1,int n) { float result,h; h=(x1-x0)/n; sum=fun(x0)+fun(x1); for(i=1;i<n;i++) { if(i%3==0) sum=sum+2*fun(x0+i*h); else sum=sum+3*fun(x0+i*h); } result=sum*(3*h/8); return(result); } Posted in NUMERICAL ANALYSIS and LINEAR PROGRAMMING Lab Programs Leave a comment Write a program to find the integral of a function using Trapezoidal rule. Jun 26 Posted by jaisha57 #include<stdio.h> #include<conio.h> #include<math.h> float trap(float,float,int); int i; float sum; float fun(float); void main() { float x0,x1,res; int n; clrscr(); printf(\n enter the lower and upper limits :); scanf(%f%f,&x0,&x1); printf(\n enter the number of intervals :); scanf(%d,&n); res=trap(x0,x1,n); printf(\n TRAPEZOIDAL RULE =%f \n,res); getch(); } float trap(float x0,float x1,int n) { float h,result; h=(x1-x0)/n; sum=fun(x0)+fun(x1); for(i=1;i<n;i++) sum=sum+2*fun(i*h); result=(sum*h)/2; return(result); } float fun(float x) { return(1/(1+pow(x,2))); } Posted in NUMERICAL ANALYSIS and LINEAR PROGRAMMING Lab Programs Leave a comment Write a program to find the simple/multiple roots of f (x) = 0 using Newton Raphson method. Jun 26 Posted by jaisha57 #include<stdio.h> #include<conio.h> #include<math.h> main() { float a,x1,x2; int i; float func(float); float func1(float); clrscr(); printf(\n enter the initial value); scanf(%f,&a); x1=a; printf(a=%f,x1); x2=(x1-(func(x1)/func1(x1))); printf(\nx2=%f,x2); for(i=1;x1!=x2;i++) { printf(\n(%d)%f,i,x2); x1=x2; x2=x1-(func(x1)/func1(x1)); } printf(\n the root is %f converge is %d approximately,x2,i); getch(); return(0); } float func(float x) { return(pow(x,3)+(-2*x-5)); } float func1(float x) { return((3*pow(x,2)-2)); } Posted in NUMERICAL ANALYSIS and LINEAR PROGRAMMING Lab Programs Leave a comment Write a program to find the roots of an equation f (x) = 0 using Bisection method. Jun 26 Posted by jaisha57 #include<stdio.h> #include<conio.h> #include<math.h> float fun(float x) { return(pow(x,3)-x-1); } void main() { float a,b,eps,x; int i=0; clrscr(); printf(\n enter the lower and upper limit ); scanf(%f%f,&a,&b); printf(\n enter the epsilon value); scanf(%f,&eps); if((fun(a)*fun(b))>0) printf(\n starting value is unsuitable ); else while(fabs((b-a)/b)>eps) { x=(a+b)/2; i++; if((fun(x)*fun(a))>0) a=x; else b=x; } printf(\n solution converges to a root \n); printf(\n number of iterationo=%d\n,i); printf(%f\n,x); getch(); } Posted in NUMERICAL ANALYSIS and LINEAR PROGRAMMING Lab Programs