Numerically evaluate double integral, tiled method
q = quad2d(fun,a,b,c,d)
[q,errbnd] = quad2d(...)
q = quad2d(fun,a,b,c,d,param1,val1,param2,val2,...)
q = quad2d(fun,a,b,c,d)
approximates the
integral of fun(x,y)
over the planar region and . fun
is a
function handle, c
and d
may
each be a scalar or a function handle.
All input functions must be vectorized. The function Z=fun(X,Y)
must
accept 2-D matrices X
and Y
of
the same size and return a matrix Z
of corresponding
values. The functions ymin=c(X)
and ymax=d(X)
must
accept matrices and return matrices of the same size with corresponding
values.
[q,errbnd] = quad2d(...)
. errbnd
is
an approximate upper bound on the absolute error, |Q - I|
,
where I
denotes the exact value of the integral.
q = quad2d(fun,a,b,c,d,param1,val1,param2,val2,...)
performs
the integration as above with specified values of optional parameters:
AbsTol | absolute error tolerance |
RelTol | relative error tolerance |
quad2d
attempts to satisfy ERRBND
<= max(AbsTol,RelTol*|Q|)
. This is absolute error control
when |Q|
is sufficiently small and relative error
control when |Q|
is larger. A default tolerance
value is used when a tolerance is not specified. The default value
of AbsTol
is 1e-5. The default value of RelTol
is 100*eps(class(Q))
.
This is also the minimum value of RelTol
. Smaller RelTol
values
are automatically increased to the default value.
MaxFunEvals | Maximum allowed number of evaluations of fun reached. |
The MaxFunEvals
parameter limits the number
of vectorized calls to fun
. The default is 2000.
FailurePlot | Generate a plot if MaxFunEvals is reached. |
Setting FailurePlot
to true
generates
a graphical representation of the regions needing further refinement
when MaxFunEvals
is reached. No plot is generated
if the integration succeeds before reaching MaxFunEvals
.
These (generally) 4-sided regions are mapped to rectangles internally.
Clusters of small regions indicate the areas of difficulty. The default
is false
.
Singular | Problem may have boundary singularities |
With Singular
set to true
, quad2d
will employ transformations to
weaken boundary singularities for better performance. The default
is true
. Setting Singular
to false
will
turn these transformations off, which may provide a performance benefit
on some smooth problems.
[1] L.F. Shampine, "Matlab Program for Quadrature in 2D." Applied Mathematics and Computation. Vol. 202, Issue 1, 2008, pp. 266–274.