I'm still pretty new to Mathematica, so I would like to seek advice regarding a geometrical problem.
I am currently trying to define that as an extra condition in the Mathematica code below.
reg = ImplicitRegion[x^2/a^2 + y^2/b^2 + z^2/c^2 <= 1 {z, y, x}];
Volume[reg, Assumptions -> a > 0 && b > 0 && c > 0]
Any one has any idea how to incorporate it into the extra conditions in defining the implicit region?
Answer
Let you have a vector p, which is perpendicular to the plane and an ellipsoid with axes (a,b,c). The illustration (2D for simplicity):
Mathematica can calculate the numeric value of the clipped volume easily
Nvolume[p_, abc_] := Volume[RegionIntersection[
ImplicitRegion[{x, y, z}.N[p] > 0, {x, y, z}],
Ellipsoid[N[abc] {1, 0, 0}, N[abc]]]]
p = RandomReal[{-1, 1}, 3];
abc = RandomReal[{1, 2}, 3];
Nvolume[p, abc]
(* 16.2584 *)
Mathematica cannot derive the general formula, but it isn't difficult to derive manually. Let us introduce new coordinates
x′=x/a,y′=y/b,z′=z/c.
In these coordinates the ellipsoid becomes the unit ball
The Jacobian of this transformation is J=abc. In the new coordinates the normalized perpendicular vector is
n=(apx,bpy,cpz)√a2p2x+b2p2y+c2p2z.
Now it is simple to integrate the volume along the axis ξ because the cross section is a circle
V=abc∫1−nxπ(1−ξ2)dξ=πabc(23+nx−n3x3)
volume[p_, abc_] := π Times @@ abc (2/3 + # - #^3/3) &@@ Normalize[abc p]
volume[p, abc]
(* 16.2584 *)
The result is the same.
Update: OP asks also about the area of the intersection. It is also an interesting question.
Mathematica region functionality is very powerful for numerical computations:
Narea[p_, abc_] := Area[RegionIntersection[ImplicitRegion[{x, y, z}.N[p] == 0, {x, y, z}],
Ellipsoid[N[abc] {1, 0, 0}, N[abc]]]]
Narea[p, abc]
(* 6.20243 *)
The analytic formula can be derived using the Dirac δ-function
A=∫ellipseδ(r⋅pp)dr=abcp∫unit ballδ(x′apx+y′bpy+z′cpz)dr′=abcp√a2p2x+b2p2y+c2p2z∫unit ballδ(r′⋅n)dr′.
area[p_, abc_] := π Times @@ abc (1 - #^2) & @@ Normalize[abc p] Norm[p]/Norm[abc p];
area[p, abc]
(* 6.20243 *)
Comments
Post a Comment