Note: This page has been translated by MathWorks. Click here to see

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

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?