Hi, thanks for the guys who help me last time
I have been given other task to do which I need help again. the task is this :
Consider Y = F(x) over (a,
/>/>/>. Suppose that the interval (a,
/>/>/> is subdivided into 2m subintervals
of equal width h = (b-a)/2m by using the equally spaced sample points
,![Posted Image]()
. The composite Simpson's rule for 2, subintervals is
![Posted Image]()
![Posted Image]()
![Posted Image]()
Write a program (function) which deliver a numerical approximation of
by the composite Simpson rule.
Compare the implementation of the composite Simpson rule with the rectangle and trapezoidal approximations of a definite integral.
This is what I got so far which I search over the internet to find some code to help to do this task
thanks for the help
I have been given other task to do which I need help again. the task is this :
Consider Y = F(x) over (a,
of equal width h = (b-a)/2m by using the equally spaced sample points
,
. The composite Simpson's rule for 2, subintervals is 


Write a program (function) which deliver a numerical approximation of
b
(Integrate sign)---> { F(x) dx
a
by the composite Simpson rule.
Compare the implementation of the composite Simpson rule with the rectangle and trapezoidal approximations of a definite integral.
This is what I got so far which I search over the internet to find some code to help to do this task
/* definite integral numerically */
#include <stdio.h>
#include <math.h>
#include "my_lib.h"
#ifndef M_PI
#define M_PI 3.1415926535897932384626433832795
#endif
/*this part is the task give me*/
double f(double x)
{
return sin(x);
}
/* this part is what I wrote by myself which I'm not really sure is my code right*/
double simp(double a, double b, double f(double), int n)
{
double h, sum, sum2, t =0;
int i;
h = (b-a)/ (2*n);
for ( i = 1 ; i < n-1; i++)
{
sum += f(a + h * i );
}
for ( i = 1 ; i <= n ; i++)
{
sum2 += f( (a + h) * (2 * i - 1 ));
}
t = (h/3) * ( f(a) + f(B)/>/>/>/> + (2 * sum) + (4 * sum2) ) ;
return t;
}
/*this part is the task give me*/
double mid_rect(double a, double b, double f(double), int n)
{
double h, sum=0;
int i;
h = (b-a)/n;
for( i = 0 ; i < n ; i++)
sum += f(a + (i+0.5)*h);
return sum*h;
}
/*this part is the task give me*/
double trapezoid(double a, double b, double f(double), int n)
{
double h, sum=0;
int i;
h = (b-a)/n;
for ( i = 0 ; i < n ; i++)
sum += 0.5*(f(a + i*h) + f(a + i*h + h));
return sum*h;
}
/*this part is the task give me*/
int main()
{
int N;
printf("N = ");
scanf("%d",&N);
printf("Simpson' rule Approximation = %f\n", simp(0, 0.5*M_PI, f, N)); /* Wrote by myself */
printf("Mid Rule Approximation = %f\n", mid_rect(0, 0.5*M_PI, f, N));
printf("Trapezoid Approximation = %f\n", trapezoid(0, 0.5*M_PI, f, N));
printf("\n");
system("pause");
}
thanks for the help