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 $$a\le x\le b$$ and $$c(x)\le y\le d(x)$$. `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.

Was this topic helpful?