Computes the definite integral of a function using the Gauss quadrature for 3 points.

You're viewing an older version of this page (#388). View the current version.

View versions (1)

Interface

#include <codecogs/maths/calculus/quadrature/gauss.h>

using namespace Maths::Calculus::Quadrature;

This module computes the area beneath a user supplied function using an approximation given by a certain weighted sum of function values.

Consider a function f:I \subset \mathbb{R} \rightarrow \mathbb{R} and two distinct abscissas a < b \in I. In order to compute an approximation of the definite integral:

I = \int_a^b f(x) \mathrm{d}x
(1)

we will use the Gauss-Legendre quadrature formula for 3 points:

I \approx \frac{b-a}{18} \left[5f\left(\frac{b+a}{2} + \frac{a-b}{2}\sqrt{\frac{3}{5}}\right) + 8f\left(\frac{b+a}{2}\right) + 5f\left(\frac{b+a}{2} + \frac{b-a}{2}\sqrt{\frac{3}{5}}\right)\right].
(2)

For fixed \displaystyle \xi \in (a, b) the error of this approximation is given by

\epsilon = \frac{(b-a)^7}{31500} \frac{d^6}{dx^6} f(\xi).
(3)

Example 1

In what follows an approximation is found for the definite integral

\int_2^3 \sin x \,dx
(4)

and the absolute error from its actual value is estimated.

#include <codecogs/maths/calculus/quadrature/gauss.h>
#include <stdio.h>
#include <math.h>

// function to integrate
double f(double x)
{
  return sin(x);
}

// the primitive of f, to estimate errors
double pf(double x)
{
  return -cos(x);
}

int main()
{
  // compute the approximate area
  double fi = Maths::Calculus::Quadrature::gauss(f, 2, 3),

  // use the Leibniz-Newton formula to find a more precise estimate
  realfi = pf(3) - pf(2);

  // display the result and error estimate
  printf("      f(x) = sin(x)\n");
  printf("   I(2, 3) = %.15lf\n", fi);
  printf("real value = %.15lf\n", realfi);
  printf("     error = %.15lf\n\n", fabs(fi - realfi));
 
  return 0;
}

Output

f(x) = sin(x)
   I(2, 3) = 0.573845954654464
real value = 0.573845660053303
     error = 0.000000294601161

Parameters

f
the function to integrate
a
the inferior limit of integration
b
the superior limit of integration

Returns

The definite integral of the given function from a to b.

References

Mihai Postolache - "Metode Numerice", Editura Sirius

GPL Licence — free for non commercial use. See Licence details.