```Path: news.mathworks.com!not-for-mail
From: <HIDDEN>
Newsgroups: comp.soft-sys.matlab
Subject: Re: help on triple integral
Date: Sun, 4 Jul 2010 02:13:04 +0000 (UTC)
Organization: The MathWorks, Inc.
Lines: 19
Message-ID: <i0oqng\$lm1\$1@fred.mathworks.com>
References: <i0amlt\$e1b\$1@fred.mathworks.com>
Reply-To: <HIDDEN>
NNTP-Posting-Host: webapp-03-blr.mathworks.com
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: fred.mathworks.com 1278209584 22209 172.30.248.38 (4 Jul 2010 02:13:04 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Sun, 4 Jul 2010 02:13:04 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 1187260
Xref: news.mathworks.com comp.soft-sys.matlab:650189

"Carla Soares" <carla.soares@gmail.com> wrote in message <i0amlt\$e1b\$1@fred.mathworks.com>...
> Hi! Can someone help me on a triple integral?
> I have something like this:
> integrand is f(x,y,z)
> int over z from a to g(x,y)
> int over y from b to f(x)
> int over x from c to d
> I've tried using triplequad and quad2d but always get error messages.
> Thanks a lot in advance!
- - - - - - - - -
I can think of a way of using quad2d for finding two-dimensional integrals of cross sections for fixed x values and then using a one-dimensional quadrature routine (quad, quadgk, or quadl) for integrating over these cross sections from x=c to x=d.

You would need to write a function F(x), which accepts x as a vector, to act as the integrand of the 1d quadrature routine.  Using a for-loop, for each element xi of the vector, F(xi) would be the value given by quad2d for the integral of f(xi,y,z) over the cross section b<=y<=f(xi) and a<=z<=g(xi,y).  As long as guad2d is being called on with a single fixed xi, it can solve such a cross section integral if it is called in a correct manner.

Admittedly this won't be as efficient as a routine that is specifically designed for triple integration, but I see no reason why it shouldn't work.

Another possibility is to find an appropriate change of variables that would change your region of integration into a three-dimensional rectangle and then use triplequad.  Being able to do that would depend on the nature of your y and z upper limit functions, f(x) and g(x,y).  (Your f(x) upper limit function is different from your f(x,y,z).)

Roger Stafford
```