# Numerical Integration Report

Extracts from this document...

Introduction

Ali Adnan Ahmed

Numerical Integration

08-01-2007

Numerical Integration

Ali Adnan Ahmed

08-01-2007

Abstract:

For functions in Physics that cannot be integrated exactly, it is appropriate to use alternative, numerical techniques to calculate the integral. I examined two of these methods. The Trapezium Rule and Simpson’s Rule. By using the given relationship of the error being inversely proportional to the number of strips to the power of another number, m, I plotted a log-log graph thus calculating that the power when using the Trapezium rule is 1, and the power when using the Simpson’s rule is approximately 3.75. This proves that the Simpson’s rule is a far more accurate way of carrying out numerical integration.

Introduction:

The trapezium rule is a way of estimating the area under a curve. We know that the area under a curve is also given by integration, therefore the trapezium rule can also be used to estimating integrals. This comes in use when it is difficult to find the integral of a function. The Simpson’s Rule works in a similar way to the Trapezium Rule; however it uses polynomials to split the curve rather than just straight lines. Theoretically this should make it a more accurate approximation. To find out to what degree this is true,I a computer program was designed which carried out the Trapezium Rule and Simpson’s Rule, for a given integral, for a specified number of strips.

Middle

For Simpson’s Rule, the main body where the integral was calculated presented more of a challenge.

In principle, as you can see from the formula

I = dx/3 x (y0 + yn + 4(y1 + y3 +….. + yn-1)+ 2(y2 + y4 +…..+ yn-2)

The Simpson’s Rule operates by calculating the sum of the first and last ordinates, y0 and yn, added to FOUR times the sum of the odd ordinates, plus TWICE the sum of the even ordinates.

Therefore two independent loops were used.

do// loop to calculate sum of all the odd ordinates

{

y = 4*(1/x);

sum1 += y;

x += 2*dx; // ensures that the next x value used remains odd

c++;

}

while (x<b);

Above is the first loop, which calculated the sum of the odd ordinates, and stores them into sum1.

The integer variable, c , is an integer counter which has no effect on the calculation in the loop. It is purely present as a ‘’check’’ to ensure that the loop is carried out the correct number of times.

The loop is done until x reaches the upper limit of integration, b.

The second loop looks distinctly similar, however the following is added before it starts, to ensure that the first ordinate used is even.

x1 = a+dx+dx; //ensures only even ordinates are used

The loop that follows is

do// loop to calculate sum of all the even ordinates

{

z = 2*(1/x1);

sum2 += z;

x1 += 2*dx; // ensures that the next x value used remains even

d++;

}

while (x1<b);

Conclusion

int main ()

{

ofstream simpsons("simpsons rule.txt");

simpsons.precision(20);//make precision to 20digits

double sum1 = 0.0;

double sum2 = 0.0;

double a, b,dx, x, I,nmax,y,x1, z,error;

int n,c,d;

cout <<"Enter the Lower limit"<<endl;

cin >> a;

cout <<"Enter the upper limit"<<endl;

cin >> b;

cout <<"Enter the max number of strips"<<endl;

cin >> nmax;

n= 4; // start with n=4 strips

do//loop for continuing number of strips up to N, max number of strips

{

dx = (b-a)/(n); //strip height

x=a+dx;

c=0; //integer counter check. to see if it is taking the right number of ODD ordinates

do// loop to calculate sum of all the odd ordinates

{

y = 4*(1/x);

sum1 += y;

x += 2*dx; // ensures that the next x value used remains odd

c++;

}

while (x<b);

x1 = a+dx+dx; //ensures only even ordinates are used

d = 0; ////integer counter check. to see if it is taking the right number of EVEN ordinates

do// loop to calculate sum of all the even ordinates

{

z = 2*(1/x1);

sum2 += z;

x1 += 2*dx; // ensures that the next x value used remains even

d++;

}

while (x1<b);

I = (dx/3)* ((1/a) + sum1 + sum2 + (1/b)); //Intergral, I

error = I - log(10.0); //error calculation

//cout << c << "\t"<<d<<endl; // cout to see if the right number of ordinates are used

simpsons <<n<<"\t"<< I<<"\t"<<error<<endl;

sum1 = 0.0;//reset sum1

sum2 = 0.0;//reset sum2

n+=10; // add ten strips each time

}

while (n<=nmax);

return 0;

}

}

Trapezium Rule Flowchart

Simpson’s Rule

Flowchart

This student written piece of work is one of many that can be found in our GCSE Gradient Function section.

## Found what you're looking for?

- Start learning 29% faster today
- 150,000+ documents available
- Just £6.99 a month