2
$\begingroup$

Consider a semialgebraic set; such as reg below:

With[{reg = 
   x^2 + y^2 + z^2 <= 1 && x^2 y^2 z^2 <= 1/1000 && -x - y + z <= 0},
 RegionPlot3D[ImplicitRegion[reg, {x, y, z}], PlotPoints -> 200]]

enter image description here

My rather simple problem is: how to compute symbolic surface normal for every point (defined as {x, y, z}) on its' surface?

My attempts have been based on CylindricalDecomposition and using Reduce and Solve to compute solution for one surface coordinate as a function of two others, applying D accordingly, and stitching the results together. I find these constructs inelegant and Frankensteinian, and doubt their robustness. Are there nicer ways to do this?

$\endgroup$
2
  • 1
    $\begingroup$ If $(x,y,z)$ is a point on the surface $f(x,y,z)=0$, then the surface normal at $(x,y,z)$ is $\nabla f(x,y,z)/\|\nabla f(x,y,z)\|$. So you just have to decide which of your three conditions is active at $(x,y,z)$ and use its normalized gradient. $\endgroup$
    – user484
    Commented May 11, 2015 at 17:47
  • $\begingroup$ @Rahul True... the real question in this case is about mechanisation of computing this normal for an arbitrary, semialgebraic set definition (that would be good input for CylindricalDecomposition) such as reg. $\endgroup$
    – kirma
    Commented May 11, 2015 at 17:53

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.