Re: Intersection of 2D Surfaces in 3D
- To: mathgroup at smc.vnet.net
- Subject: [mg86909] Re: [mg86892] Intersection of 2D Surfaces in 3D
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Wed, 26 Mar 2008 04:51:37 -0500 (EST)
- References: <200803250617.BAA10628@smc.vnet.net>
Narasimham wrote:
> Following is an example (slightly altered) given in intersection of 2-
> D curves with one real root.
>
> c1 = {x - (t^2 - 1), y - (s^3 + s - 4) };
> c2 = {x - (s^2 + s + 5), y - (t^2 + 7 t - 2) };
These are not curves. To get a curve you would use one parameter, not
two. Your "intersection points" are an artifact from using the same two
parameters in each definition.
> It uses NSolve[Join[c1, c2], {x, y}, {s, t}] for supplying real roots
> of 2D curves in 2D itself.
>
> Next, how to generalize further to Solve and find real intersection
> curves of two parameter surfaces in 3-D by extending the same
> Mathematica Join procedure?
>
> And how to Show the one parameter 3D space curve of intersection so
> obtained ? The following attempt of course fails.
>
> c3 = {x - (t^2 - 1), y - (s^3 + s - 4), z - (t + s)};
> c4 = {x - (s^2 + s + 5), y - (t^2 + 7 t - 2),z -( t + s^2/2)};
> NSolve[Join[c3, c4], {x, y, z}, {t,s}];
>
> FindRoot also was not successful.
>
> Regards,
> Narasimham
You can get the implicit form of the intersection as below. Notice that
I use diffferent parameters for the two surfaces.
c3 = {x - (t1^2-1), y - (s1^3+s1-4), z - (t1+s1)};
c4 = {x - (s2^2+s2+5), y - (t2^2+7*t2-2), z - (t2 + s2^2/2)};
InputForm[Timing[gb = GroebnerBasis[Join[c3,c4], {x,y,z}, {t1,s1,t2,s2},
MonomialOrder->EliminationOrder]]]
Out[20]//InputForm=
{0.03200199999999967, {7483 - 4068*x + 736*x^2 - 48*x^3 + x^4 -
564*y + 176*x*y - 8*x^2*y + 16*y^2 + 7360*z - 2848*x*z +
284*x^2*z - 8*x^3*z - 368*y*z + 32*x*y*z + 2756*z^2 -
560*x*z^2 + 24*x^2*z^2 - 32*y*z^2 + 368*z^3 - 32*x*z^3 + 16*z^4,
12 - 8*x - 5*x^2 - x^3 + 8*y + y^2 - 32*z - 24*x*z - 8*y*z -
6*x*y*z + 4*z^2 + 6*x*z^2 + 3*x^2*z^2 - 8*z^3 - 2*y*z^3 -
z^4 - 3*x*z^4 + z^6}}
This might or might not be (rationally) parametrizable. You could try to
get a description of the real parts using
Reduce[gb==0, {x,y,z}, Reals]
This is computationally intensive. It will give an algebraic (but not
rational) parametrization of the intersection curve. Interestingly,
there seems to be an isolated point around
{x -> 3.27266, y -> -14.6193, z -> -4.11367}
A more efficient approach, if you can find points on each intersection
curve (real topological) component, might be to use homotopy tracking to
trace out the curve sections.
Daniel Lichtblau
Wolfram Research
- References:
- Intersection of 2D Surfaces in 3D
- From: Narasimham <mathma18@hotmail.com>
- Intersection of 2D Surfaces in 3D