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