Hi Muhammad,
To create a function to numerically integrate equation using the newton-cotes composite boole’s rule, you can perform the following steps:
- Create a function that takes in 4 inputs: the function that is the integrand, the lower limit ‘a’, the upper limit ‘b’ and the number of panels ‘n’.
- Calculate the width of each subinterval.
- Initialize the integral result ‘r’, calculate the first point calculation by setting the first evaluation point ‘x’ to the first subinterval endpoint.
- Iterate through each panel and accumulate the integral contributions. Once the main loop is done, evaluate the last few points and add the contribution from the right endpoint.
- The accumulated result is then scald by the factor h*2/45 to finalize the integral value according to Boole’s rule.
A sample MATLAB code for the same is as follows:
function r = compositeboole(f,a,b,n)
h = (b - a) / (n * 4);
r = 7 * f(a);
x = a + h;
for i = 1 : n-1
r = r + 32 * f(x);
x = x + h;
r = r + 12 * f(x);
x = x + h;
r = r + 32 * f(x);
x = x + h;
r = r + 14 * f(x);
x = x + h;
end
r = r + 32 * f(x);
x = x + h;
r = r + 12 * f(x);
x = x + h;
r = r + 32 * f(x);
r = r + 7 * f(b);
r = r * h*2/45;
end
The function can then be called with the corresponding values for a,b, and n with the function f integrand as the following:
f = @(x) 2 * x .* exp(-x.^2);
For more information regarding Boole’s rule, refer the following resource:
- Composite Boole's rule: https://www.mathworks.com/matlabcentral/answers/515177-composite-boole-s-rule
Hope this helps!