0% found this document useful (0 votes)
43 views

Case Study: Fig. 9.18 Area Under A Curve

This document describes a method for calculating the area under a curve numerically using trapezoids. It breaks the area into trapezoids of equal width, calculates the area of each trapezoid using a formula, and sums them. It provides an example of calculating the area under the curve of f(x)=x^2+1 between limits of 0 and 3. With more trapezoids, the calculation converges to the actual area of 12 as obtained by analytical methods. A C program is given that implements this trapezoid method in a modular way to calculate the area.

Uploaded by

brain stome
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views

Case Study: Fig. 9.18 Area Under A Curve

This document describes a method for calculating the area under a curve numerically using trapezoids. It breaks the area into trapezoids of equal width, calculates the area of each trapezoid using a formula, and sums them. It provides an example of calculating the area under the curve of f(x)=x^2+1 between limits of 0 and 3. With more trapezoids, the calculation converges to the actual area of 12 as obtained by analytical methods. A C program is given that implements this trapezoid method in a modular way to calculate the area.

Uploaded by

brain stome
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 4

Case Study

Calculation of Area Under a Curve

One of the applications of computers in numerical analysis is computing the area under a curve.
One simple method of calculating the area under a curve is to divide the area into a number of
trapezoids of same width and summing up the area of individual trapezoids. The area of a
trapezoid is given by

Area = 0.5 * (h1 + h2) * b

Where h1 and h2 are the heights of two sides and b is the width as shown in Fib 9.18.

curve

f(x) b

h1 h2

A x B

Fig. 9.18 Area under a curve

The program in Fig 9.20 calculates the area for a curve of the function

f(x) = x2 + 1

between any two given limits, say, A and B.

Input

Lower limit (A)


Upper limit (B)
Number of trapezoids

Output

Total area under the curve between the given limits.

Algorithm

1. Input the lower and upper limits and the number of trapezoids.
2. Calculate the width of trapezoids.
3. Initialize the total area.
4. Calculate the area of trapezoid and add to the total area.
5. Repeat step-4 until all the trapezoids are completed.
6. Print total area.

The algorithm is implemented in top-down modular form as in Fig. 9.19.

main

input find_area

function_x trap_area

Fig 9.19 Modular Chart

The evaluation of f(x) has been done using a separate function so that it can be easily modified to
allow other functions to be evaluated.

The output for two runs shows that better accuracy is achieved with larger number of trapezoids.
The actual area for the limits 0 and 3 is 12 units (by analytical method)
AREA UNDER A CURVE
Program

#include <stdio.h>
float start_point, /* GLOBAL VARIABLES */
end_point,
total_area;
int numtraps;
main( )
{
void input(void);
float find_area(float a,float b,int n); /* prototype */

print(“AREA UNDER A CURVE”);


input( );
total_area = find_area(start_point, end_point, numtraps);
printf(“TOTAL AREA = %f”, total_area);
}
void input(void)
{
printf(“\n Enter lower limit:”);
scanf(“%f”, &start_point);
printf(“Enter upper limit:”);
scanf(“%f”, &end_point);
printf(“Enter number of trapezoids:”);
scanf(“%d”, &numtraps);
}
float find_area(float a, float b, int n)
{
float base, lower, h1, h2; /* LOCAL VARIABLES */
float function_x(float x); /* prototype */
float trap_area(float h1,float h2,float base);/*prototype*/
base = (b-1)/n;
lower = a;
for(lower =a; lower <= b-base; lower = lower + base)
{
h1 = function_x(lower);
h1 = function_x(lower + base);
total_area += trap_area(h1, h2, base);
}
return(total_area);
float trap_area(float height_1,float height_2,float base)
{
float area; /* LOCAL VARIABLE */
area = 0.5 * (height_1 + height_2) * base;
return(area);
}
float function_x(float x)
{
/* F(X) = X * X + 1 */

return(x*x + 1);
}
Output

AREA UNDER A CURVE


Enter lower limit: 0
Enter upper limit: 3
Enter number of trapezoids: 30
TOTAL AREA = 12.005000

AREA UNDER A CURVE


Enter lower limit: 0
Enter upper limit: 3
Enter number of trapezoids: 100
TOTAL AREA = 12.000438

Fig. 9.20 Computing area under a curve

You might also like