Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

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




  • Prev by Date: Re: Importing text files
  • Next by Date: Re: Intersection of 2D Surfaces in 3D
  • Previous by thread: Re: Intersection of 2D Surfaces in 3D
  • Next by thread: Re: Intersection of 2D Surfaces in 3D