# How to get the area of ImplicitRegion 3d object

ImplicitRegion[z >= x^2 + y^2 && x^2 + y^2 + z^2 <= 6, {x, y, z}] // RegionBoundary // Area


This code returns 20.23041621162892 which isn't a symbolic number. So how to calculate it without use some math transformations?

It takes longer than 2 min but without returning a result in 11.3

Just split the steps.

ImplicitRegion[
z == x^2 + y^2 && x^2 + y^2 + z^2 <= 6, {x, y, z}] // Area


gives

$$\frac{13 \pi }{3}$$

ImplicitRegion[
z >= x^2 + y^2 && x^2 + y^2 + z^2 == 6, {x, y, z}] // Area


gives

$$-4 \left(\sqrt{6}-3\right) \pi$$

• In Mathematica v12(Windows64) your version is much slower (32s) than the version @wuyudi intends to speed up (0.4s) ! Commented Jun 29, 2020 at 10:31
• @UlrichNeumann ,thx for pointing out that, RegionBoundary seems not so useful in this case. Commented Jun 29, 2020 at 10:54
• And this two results add up to $20.531\dots$ instead of $20.236\dots$ Commented Jun 29, 2020 at 11:22
• @wuyudi No , the RegionBoundary-version seems to be much faster! Commented Jun 29, 2020 at 11:32
• @wuyudi I usually say something like "I let it run for 10 minutes and then aborted it." It wasn't clear what "really slow" meant. Sometimes it's 1 second (compared to a millisecond, that's really slow) and so on. Commented Jun 29, 2020 at 15:16

For semialgebraic regions we can express the boundary as disjoint pieces through the third argument of CylindricalDecomposition. We can then find the area of each piece and sum.

OrList[HoldPattern[Or][args__]] := {args}
OrList[expr_] := expr

expr = z >= x^2 + y^2 && x^2 + y^2 + z^2 <= 6;

bdcomps = OrList[BooleanConvert[CylindricalDecomposition[expr, {x, y, z}, "Boundary"]]];

acomps = With[{reg = ImplicitRegion[#, {x, y, z}]},
If[RegionDimension[reg] == 2, Area[reg], 0]
] & /@ bdcomps;

Simplify[Total[acomps]]

(49/3 - 4Sqrt[6])π

• What is the version of mma? I run this code in 11.3, returns 0 imgur.com/a/wfwJ9aT . In wolfram cloud, imgur.com/a/1mLkNs4 . in tio.run , imgur.com/a/FIVGMM5 Commented Jun 30, 2020 at 2:23
• Sorry, I had a typo. It should be fixed now. Commented Jun 30, 2020 at 2:33