Re: Applying the Integration Function to a List Of Regions
- To: mathgroup at smc.vnet.net
- Subject: [mg88799] Re: Applying the Integration Function to a List Of Regions
- From: Szabolcs Horvát <szhorvat at gmail.com>
- Date: Fri, 16 May 2008 05:36:53 -0400 (EDT)
- Organization: University of Bergen
- References: <g0h4me$lbl$1@smc.vnet.net>
John Snyder wrote: > Assume that I have already determined a list of 4 dimensional regions as > follows: > > regions={{{x,0,a},{cx,0,a+x},{y,0,Sqrt[a^2-cx^2+2 cx > x-x^2]},{cy,0,Sqrt[a^2-cx^2+2 cx > x-x^2]+y}},{{x,0,a},{cx,0,a+x},{y,Sqrt[a^2-cx^2+2 cx x-x^2],2 > a-Sqrt[a^2-cx^2+2 cx x-x^2]},{cy,-Sqrt[a^2-cx^2+2 cx > x-x^2]+y,Sqrt[a^2-cx^2+2 cx x-x^2]+y}},{{x,0,a},{cx,0,a+x},{y,2 > a-Sqrt[a^2-cx^2+2 cx x-x^2],2 a},{cy,-Sqrt[a^2-cx^2+2 cx x-x^2]+y,2 > a}},{{x,a,2 a},{cx,-a+x,2 a},{y,0,Sqrt[a^2-cx^2+2 cx > x-x^2]},{cy,0,Sqrt[a^2-cx^2+2 cx x-x^2]+y}},{{x,a,2 a},{cx,-a+x,2 > a},{y,Sqrt[a^2-cx^2+2 cx x-x^2],2 a-Sqrt[a^2-cx^2+2 cx > x-x^2]},{cy,-Sqrt[a^2-cx^2+2 cx x-x^2]+y,Sqrt[a^2-cx^2+2 cx > x-x^2]+y}},{{x,a,2 a},{cx,-a+x,2 a},{y,2 a-Sqrt[a^2-cx^2+2 cx x-x^2],2 > a},{cy,-Sqrt[a^2-cx^2+2 cx x-x^2]+y,2 a}}}; > > I want to integrate over each of these regions using an integrand of 1. I > want my output to be as follows: > > {Integrate[1,{x,0,a},{cx,0,a+x},{y,0,Sqrt[a^2-cx^2+2 cx > x-x^2]},{cy,0,Sqrt[a^2-cx^2+2 cx > x-x^2]+y}],Integrate[1,{x,0,a},{cx,0,a+x},{y,Sqrt[a^2-cx^2+2 cx x-x^2],2 > a-Sqrt[a^2-cx^2+2 cx x-x^2]},{cy,-Sqrt[a^2-cx^2+2 cx > x-x^2]+y,Sqrt[a^2-cx^2+2 cx x-x^2]+y}],Integrate[1,{x,0,a},{cx,0,a+x},{y,2 > a-Sqrt[a^2-cx^2+2 cx x-x^2],2 a},{cy,-Sqrt[a^2-cx^2+2 cx x-x^2]+y,2 > a}],Integrate[1,{x,a,2 a},{cx,-a+x,2 a},{y,0,Sqrt[a^2-cx^2+2 cx > x-x^2]},{cy,0,Sqrt[a^2-cx^2+2 cx x-x^2]+y}],Integrate[1,{x,a,2 a},{cx,-a+x,2 > a},{y,Sqrt[a^2-cx^2+2 cx x-x^2],2 a-Sqrt[a^2-cx^2+2 cx > x-x^2]},{cy,-Sqrt[a^2-cx^2+2 cx x-x^2]+y,Sqrt[a^2-cx^2+2 cx > x-x^2]+y}],Integrate[1,{x,a,2 a},{cx,-a+x,2 a},{y,2 a-Sqrt[a^2-cx^2+2 cx > x-x^2],2 a},{cy,-Sqrt[a^2-cx^2+2 cx x-x^2]+y,2 a}]} > > How can I do that without having to set up each of the integrals manually? > I am looking for some way to do something like: > > Integrate @@ regions > > or > > Integrate @@@ regions > > But I can't figure out how to incorporate the 1 as the integrand when I try > to set this up automatically. > > There must be a way? Yes, this can be easily done with inline functions (look up Function): Integrate[1, ##] & @@@ regions ## stands for all the arguments that the function receives. You may want to consider giving Mathematica some information about the variables, e.g. if all of them are reals then use Assuming[(a|x|y|cx|cy) \[Element] Reals, Integrate[1, ##] & @@@ regions]