Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the rank-math domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home1/mbithide/public_html/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ultimate-addons-for-gutenberg domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home1/mbithide/public_html/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the blogus domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home1/mbithide/public_html/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the blogus domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home1/mbithide/public_html/wp-includes/functions.php on line 6114
How to Compute Numerical Integration in R - Mbithi Guide
How to Compute Numerical Integration in R
How to Compute Numerical Integration in R

Introduction

Numerical integration is a powerful tool for data analysis that involves approximating the integral of a function by breaking it into smaller segments and calculating the area under each segment. This technique is widely used in various fields, including finance, physics, and engineering, enabling researchers to analyze complex datasets and make informed decisions. R is a popular programming language for data analysis that provides various tools for numerical integration.

With its extensive library of functions and packages, R offers researchers a flexible and efficient way to perform numerical integration on large datasets.

This article aims to provide readers with a comprehensive understanding of numerical integration in R and equip them with the necessary skills to perform accurate and efficient numerical integration on their datasets.

Theoretical Background

Numerical integration is a technique for approximating the value of a definite integral using numerical methods. The definite integral represents the area under a function over a given interval, and numerical integration estimates this area. This technique is widely used in various fields, including finance, physics, and engineering, where it is used to analyze complex datasets and make informed decisions.

There are several numerical integration techniques, each with advantages and disadvantages. The Newton-Cotes method is the simplest, which involves approximating the area under a curve using a series of straight-line segments. The Trapezoidal rule and Simpson’s rule are two examples of Newton-Cotes methods. However, these techniques may not provide accurate results for highly oscillatory or irregular functions.

Gaussian quadrature is another method for numerical integration that uses a weighted sum of function values at specific points within the interval to estimate the integral. This technique provides more accurate results than Newton-Cotes, especially for highly oscillatory functions. However, Gaussian quadrature requires the evaluation of the function at specific points within the interval, which can be computationally expensive for some functions.

Monte Carlo integration is a statistical method for numerical integration that involves generating random points within the integration interval and using these points to estimate the integral. This technique is highly flexible and can be used for any function, but it requires many random points to obtain accurate results.

Numerical integration is a powerful technique for data analysis that enables researchers to estimate the area under a function over a given interval. R provides various tools for performing numerical integration using different techniques, and researchers can choose the appropriate technique based on their data and research needs.

Types of numerical integration

Numerical integration is a technique used to approximate the value of a definite integral using numerical methods. There are several numerical integration techniques, each with strengths and weaknesses. This section will review some of the most common types of numerical integration.

1. Trapezoidal Rule

The trapezoidal rule is one of the simplest numerical integration techniques. It approximates the integral by approximating the function with a series of trapezoids and then summing the areas of those trapezoids. The trapezoidal rule is relatively easy to use and is suitable for integrating functions with few or no inflection points.

2. Simpson’s Rule

Simpson’s rule is a more accurate numerical integration technique than the trapezoidal rule. It approximates the function with a series of parabolic curves and then sums the areas of those curves. Simpson’s rule fits functions with one or two inflection points.

3. Gaussian Quadrature

Gaussian quadrature is a numerical integration technique using a weighted sum of function evaluations at predetermined points to approximate the integral. This highly accurate technique can integrate functions with high degrees of smoothness.

4. Monte Carlo Integration

Monte Carlo integration is a numerical integration technique that uses random sampling to estimate the value of the integral. This technique is suitable for integrating functions with high dimensionality or functions that are difficult to integrate using other techniques.

5. Adaptive Quadrature

Adaptive quadrature is a technique that adapts the size of the integration intervals based on the estimate’s accuracy. This technique is useful for integrating functions with unknown characteristics, as it adjusts the integration intervals based on the function’s behavior.

These are just a few of the most common types of numerical integration techniques. Choosing the appropriate technique depends on the integrated function and the accuracy level required.

Examples of numeral integration in R

Example 1

To integrate a one-dimensional integral over a finite or infinite interval, use R function
integrate. For example, find out

\int_0^{\infty}\frac{1}{\left(x+2\right)\sqrt{x}}dx

#define the integrated function
integrand <- function(x) {1/((x+2)*sqrt(x))}
#integrate the function from 0 to infinity
integrate(integrand, lower = 0, upper = Inf)

Output

2.221441 with absolute error < 8.7e-08

The numerical answer is 2.221441 up to a small error 8.7\times10^{-8}

Example 2

Find out \int_{-1.96}^{1.96}\frac{1}{\sqrt{2\pi}}e^{-\frac{x}{2}^2dx}

f <- function(x) {1/sqrt(2*pi)*exp(-x^2/2)}
integrate(f, lower = -1.96, upper = 1.96)

Output

0.9500042 with absolute error < 1e-11

Example 3

To integrate a scalar function over a multidimensional rectangle, use R function adaptIntegrate.
To use adaptIntegrate, you need to install the R package cubature first:

\int_0^{\frac{1}{2}}\int_0^{\frac{1}{2}}\int_0^{\frac{1}{2}}\frac{2}{3}\left(x_1+x_2+x_3\right)dx_1dx_2dx_3

library(cubature) # load the package "cubature"
f <- function(x) { 2/3 * (x[1] + x[2] + x[3]) } # "x" is vector
adaptIntegrate(f, lowerLimit = c(0, 0, 0), upperLimit = c(0.5, 0.5, 0.5))

Output

$integral
[1] 0.0625

$error
[1] 1.387779e-17

$functionEvaluations
[1] 33

$returnCode
[1] 0

So the numerical answer for the 3-dimensional integral is 0.0625 with estimated realtive error 1.666961e^{-18}

Example 4

library(cubature)

# Define the function to integrate
f <- function(x) exp(-sum(x^2))

# Integrate the function over a 2-dimensional hypercube
result <- adaptIntegrate(f, lowerLimit = c(-1,-1), upperLimit = c(1,1))

# Print the result
print(result$integral)

Output

[1] 2.230986

Formula for Numerical Integration

The formula for numerical integration varies depending on the specific numerical method used. However, in general, numerical integration involves approximating the area under a curve by dividing it into smaller sub-intervals and approximating the area of each sub-interval.

One common formula used in numerical integration is the trapezoidal rule, which approximates the area under the curve as the sum of the areas of trapezoids formed by connecting adjacent points on the curve. The formula for the trapezoidal rule is:

Area = (h/2)[y0+yn+2(y1+y2+y3+…..+yn-1)]

where,

  • y0, y1,y2…. are the values of function at x = 1, 2, 3….. respectively.
  • h = small interval (x1- x0)

Other methods, such as Simpson’s rule or Gaussian quadrature, have different formulas that are specific to their respective techniques.

Conclusion

Numerical integration is an essential tool for approximating definite integrals and has a wide range of applications in many fields, including mathematics, physics, engineering, and finance.

R provides several packages for numerical integration, such as quadpack, pracma, and cubature, offering different integration techniques and options for users. The choice of integration technique depends on the function’s complexity, smoothness, and desired level of accuracy.

Using these R packages, users can integrate functions efficiently and accurately, saving time and reducing errors. As with any numerical method, it is important to check the accuracy and precision of the results, especially when using approximations for more complex functions.

Overall, numerical integration in R provides a powerful toolset for researchers, students, and practitioners to solve complex integration problems in various fields.

By Benard Mbithi

A statistics graduate with a knack for crafting data-powered business solutions. I assist businesses in overcoming challenges and achieving their goals through strategic data analysis and problem-solving expertise.