Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<math.h>
- #define f(x) sin(x) - log(x) + exp(x)
- int main(){
- int n,i;
- float x[15],sum_ex=0,a,b,h;
- float sum_mid=0,ans_tre; // trapezoildal
- float sum_even =0 , sum_odd = 0,ans_simp_13; // simpson 1/3
- float sum_3div = 0 , sum_3nondiv = 0,ans_simp_38; // simpson 3/8
- printf("Enter the value of lower and upper limit and h\n");
- scanf("%f %f %f",&a,&b,&h);
- n = ceil(((b-a)/h));
- for(i=0 ; i<=n ; i++){
- x[i] = a + (h*i);
- }
- sum_ex = f(x[0]) + f(x[n]);
- // trapezoildal start here ---------------------------
- for(i=1 ; i<n ; i++){
- sum_mid +=(f(x[i]));
- }
- ans_tre = (h/2) * ( sum_ex + (2*sum_mid) ) ;
- printf("ans trapezoildal %f\n",ans_tre);
- // trapezoildal end here ---------------------------
- // simpson 1/3 start here ---------------------------
- for(i=1 ; i<n ; i++){
- if(i%2 == 0)
- sum_even += f(x[i]);
- else
- sum_odd += f(x[i]);
- }
- ans_simp_13 = (h/3) * (sum_ex + (4*sum_odd) + (2*sum_even));
- printf("ans simpson 1/3 rd %f\n",ans_simp_13);
- // simpson 1/3 end here ---------------------------
- // simpson 3/8 start here ---------------------------
- for(i=1 ; i<n ; i++){
- if(i%3 == 0)
- sum_3div += f(x[i]);
- else
- sum_3nondiv += f(x[i]);
- }
- ans_simp_38 = (3*h)/8 * (sum_ex + (3*sum_3nondiv) + (2*sum_3div));
- printf("ans simpson 3/8 rd %f\n",ans_simp_38);
- // simpson 3/8 end here ---------------------------
- return 0;
- }
- /*
- Output
- Enter the value of lower and upper limit and h
- 0.2 1.4 0.1
- ans trapezoildal 4.056173
- ans simpson 1/3 rd 4.051058
- ans simpson 3/8 rd 4.051161
- */
Add Comment
Please, Sign In to add comment