Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have four equations, $$ z = xy \\ z=0 \\ y=x^2 \\ x=y^2$$ I would like to integrate the region bounded by them.

Before this, I would like to plot the region they bound, but I cannot seem to find any documentation on how to do this with Plot3D or RegionPlot3D

share|improve this question
Try ContourPlot3D. – Kuba Jan 27 '14 at 15:03
These surfaces partition space into several segments. To select the one you need, you must rewrite them as inequalities, not as equations. Then it's trivial to plot the region using RegionPlot3D. – Szabolcs Jan 27 '14 at 16:01
Maybe a duplicate of (39161)? – Silvia Jan 27 '14 at 19:49
@Mr.Wizard Maybe a duplicate, but I don't think it is unclear. In this case it seems there is one region bounded (with finite volume) by those surfaces. I mean, region bouded by x^2+y^2=1 is a sphere, while x^2+y^2<=1 is a sphere. – Kuba Jan 29 '14 at 12:52
@Kuba Most people seemed to feel that it was ambiguous, and I tended to agree. Since you disagree please vote to reopen. – Mr.Wizard Jan 29 '14 at 12:57
up vote 7 down vote accepted

I dont know how to do this automatically, to find bouded region given with those surfaces. I guess ou could take each three and check if there is a finite intersection and then combine the result.

Meanwhile you can plot it as I've suggested and as Nasser has shown to get an idea what to loog for:

ContourPlot3D[{z==x y, z==0, y==x^2, x==y^2}, {x, #, #2}, {y, #3, #4}, {z, #5, #6},
    Mesh -> 1, ImageSize -> 500, BaseStyle -> 18, ViewPoint -> {5, 1, 2},
    ContourStyle -> (Directive @@@ {{Red}, {Green}, {Blue, Opacity@.3}, {Yellow}}),  
    Lighting -> "Neutral", AxesLabel -> {"x", "y", "z"}
] & @@@ {{-2, 2, -2, 2, -2, 2}, {0, 1, 0, 1, -.1, 1.1}} // Row

enter image description here

Ok, now we know:

RegionPlot3D[And @@ {z <= x y, z >= 0, y > x^2, x > y^2},
             {x, -.02, 1.1}, {y, -.02, 1.1}, {z, -.02, 1.02}, 
             Mesh -> 50, ImageSize -> 500, PlotPoints -> 100, MaxRecursion -> 10, 
             PlotStyle -> None]

enter image description here

Hard to get that tip in {0,0,0} :/. Ok, copy and paste first part of former code:

NIntegrate[ Boole[And @@ {z <= x y, z >= 0, y > x^2, x > y^2}], 
           {x, -.02, 1.1}, {y, -.02, 1.1}, {z, -.02, 1.02}]
share|improve this answer

Your question, in its current form, is ambiguous and cannot be answered. Your equations don't bound a region, i.e. they only define surfaces. It is clear what you mean, but important information is missing.

If you want to use RegionPlot3D, you have to decide which side of the surface of each equation you consider to be inside. For your first equation, this could be $z\leq x y$ or $z\geq x y$. One way to find out which combination of inequalities you want is to make all combinations and look at them

eqs = {z == x y, z == 0, y == x^2, x == y^2};
With[{possibilities = (Apply @@@ Transpose[{#, eqs}]) & /@ 
    Tuples[{GreaterEqual, LessEqual}, 4]},
 RegionPlot3D[And @@ #, {x, -10, 10}, {y, -20, 20}, {z, -20, 20}] & /@

Mathematica graphics

OK, since the rest is done in Kubas answer, I'll stop here and leave this as it is.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.