For example, is an improper integral which can be calculated exactly as .
Can we solve this integral by multiple segment Trapezoidal rule when we already know that the upper limit is infinity?
Yes, we can solve it in spite of the upper limit being infinity. We first need to make a change of variables such as , then giving
But even for this integral we have issues as the integrand gives division by zero problems at t=0 (although the limit itself is zero at t=0).
The MATLAB program that can be downloaded at http://numericalmethods.eng.usf.edu/blog/trapezoidal_improper.m (better to download it as the single quotes do not translate well with matlab editor) shows that we get accurate results for transformed integral with 256 segments.
% Simulation : Can I use Trapezoidal rule for an improper integral?
% Language : Matlab 2007a
% Authors : Autar Kaw, http://numericalmethods.eng.usf.edu
% mfile available at
% Last Revised : July 15, 2008
% Abstract: This program shows use of multiple segment Trapezoidal
% rule to integrate exp(-x) from x=a to infinity, where a>0.
disp(‘This program shows the convergence of getting the value of ‘)
disp(‘an improper integral using multiple segment Trapezoidal rule’)
disp(‘Author: Autar K Kaw. autarkaw.wordpress.com’)
%INPUTS. If you want to experiment, these are the only variables
% you should and can change.
% a = Lower limit of integration
fprintf(‘\nFinding the integral of exp(-x) from a to infinity where a=%g’,a)
% integrand exp(-x)
fprintf(‘\n\nExact value of integral = %f’,valexact)
disp( ‘ ‘)
% Transformed integrand by change of variables
% Limits of integration
%finding value of the integral using 16, 32, 64, 128 and 256 segments
% See how f(b) is not added as f(b)=infinity. But
% using a different value of the function at one point or
% finite number of points does not change the value of the
% integral. We are substituting f(b)=0
fprintf(‘\nApproximate value of integral =%f with %g segments’,sum,n)
This program shows the convergence of getting the value of
an improper integral using multiple segment Trapezoidal rule
Author: Autar K Kaw. autarkaw.wordpress.com
Finding the integral of exp(-x) from a to infinity where a=0.5
Exact value of integral = 0.606531
Approximate value of integral =0.605971 with 16 segments
Approximate value of integral =0.606496 with 32 segments
Approximate value of integral =0.606521 with 64 segments
Approximate value of integral =0.606528 with 128 segments
Approximate value of integral =0.606530 with 256 segments
Published with MATLAB® 7.3
Now someone may rightly point out that it works well because the limit of the integrand is zero at the lower limit of integration for the above mentioned integral.
So go ahead, modify the program for doing this improper integral and see how well it works. In this case the integrand is singular at and one would have to assume the function to be a number other than infinity at for applying the multiple segment Trapezoidal rule.
How many segments do you need to get an accurate answer for this integral?
This post is brought to you by Holistic Numerical Methods: Numerical Methods for the STEM undergraduate at http://numericalmethods.eng.usf.edu
Subscribe to the blog via a reader or email to stay updated with this blog. Let the information follow you.
3 thoughts on “Can I use Trapezoidal rule to calculate an improper integral?”
Of course the calculation of improper integral of a function becomes more easy after using an appropriate change variable. Hence we can calculate it by simple integration scheme such as trapedzoidal rule or both of simpson 1/3 and 2/3 rules. But, suppose INT[exp(-x)dx] is still calculated with lower and upper limit of integrations 0 and infinity respectively, I am sure we need Laguerre-Gauss quadrature’s scheme that it’s accuracy depends on the order of Laguerre polynomial. The next question, what’s Gauss quadrature’s scheme that suitable for calculating the above improper integral if the lower and upper limits of integration are a and infinity respectively.
Excellent site, keep up the good work