A double integration of the tabulated data. f(x,y) may be generated in terms of meshgrid. Double integral computes simply by approximation of the integral for f(x,y) via the trapezoidal method.
Firstly, an integration loop within inner integral over X is performed obtaining the function of area A(y). Secondly, outer loop integration is performed for A(y) over y limits
Q = dblquad(inline('y*sin(x)+x*cos(y)'), pi, 2*pi, 0, pi);
Q = -9.8696
[X,Y] = meshgrid(pi:pi/100:2*pi, 0:pi/100:pi );
int_2D_tabulated(X,Y, Z )
ans = -9.8688
Robertas balevicius (2021). A double integration of the tabulated data. (https://www.mathworks.com/matlabcentral/fileexchange/13644-a-double-integration-of-the-tabulated-data), MATLAB Central File Exchange. Retrieved .
If you want to see this code without downloading it, here you go:
function V = int_2D_tabulated(X, Y, Z )
V = trapz( Y(:,1), (trapz(X(1,:),Z, 2)) );
Sorry, there is no need for the return statement. This is essentially a one liner with a name that is harder to remember than 'trapz' in the first place. This is cumbersome!
But I can call trapz twice with no more effort. Why bother with a special function for something this trivial, since all it does is call trapz twice anyway?
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!