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 ${\bf 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, \quad y' = y/b, \quad 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
$$ {\bf n} = \frac{(ap_x,bp_y,cp_z)}{\sqrt{a^2p_x^2+b^2p_y^2+c^2p_z^2}}. $$
Now it is simple to integrate the volume along the axis $\xi$ because the cross section is a circle
$$ V=abc\int_{-n_x}^1\pi(1-\xi^2)d\xi = \pi abc \left(\frac{2}{3} + n_x - \frac{n_x^3}{3}\right) $$
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 $\delta$-function
\begin{multline} A = \int_\text{ellipse} \delta \left({\bf r}\cdot\frac{{\bf p}}{p}\right)d{\bf r} = abcp \int_\text{unit ball} \delta \left(x'ap_x+y'bp_y+z'cp_z\right)d{\bf r}' = \\ \frac{abcp}{\sqrt{a^2p_x^2+b^2p_y^2+c^2p_z^2}}\int_\text{unit ball} \delta \left({\bf r}'\cdot{\bf n}\right)d{\bf r}'. \end{multline} It is the cross section of the unit ball. Hence \begin{equation} A = \frac{\pi abcp (1-n_x^2)}{\sqrt{a^2p_x^2+b^2p_y^2+c^2p_z^2}}. \end{equation}
area[p_, abc_] := π Times @@ abc (1 - #^2) & @@ Normalize[abc p] Norm[p]/Norm[abc p];
area[p, abc]
(* 6.20243 *)
Comments
Post a Comment