MathGroup Archive 1998

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

Search the Archive

Re: Parametric equations

  • To: mathgroup at smc.vnet.net
  • Subject: [mg15008] Re: [mg14980] Parametric equations
  • From: Daniel Lichtblau <danl>
  • Date: Sat, 5 Dec 1998 01:30:12 -0500
  • References: <199812020859.DAA23399@smc.vnet.net.>
  • Sender: owner-wri-mathgroup at wolfram.com

MAvalosJr at aol.com wrote:
> 
> Hi Everyone:
> 
> Any suggestions on how to plug into mathematica to derive parametric
> equations from a quadratic?
> My example is: y= - x^2/ 72 + x.
> Using pencil and paper I get: x= 24 Sqrt[2 t] and y= -16 t^2 + 24 Sqrt[2
> t].
>  Thanks again for whatever
> 
> Manuel

This example is perhaps simpler than you might think. Since you have y
explicitly as a function of x, just parametrize by x. Explicitly: x=t,
y=-t^2/72 + t.

Below is some code that will parametrize conics in general. It is based
on a standard idea, described as follows. Choose a random x coordinate,
find one (of two candidate) y values that lies on the curve over that x
coordinate, intersect the line through that point with the conic to get
another point on the curve. Because we have a conic this second point
will be unique; I parametrize it by the slope of that intersecting
line. 

The reason I use a random x value is to avoid problems with curves such
as x*y-1 that do not lie over x==0.

parametrize[conic_, {x_,y_,t_}] := Module[
	{x1=Random[Integer,{5,15}], y1, sol},
	y1 = y /. First[Solve[(conic /. x->x1) == 0, y]];
	sol = First[Select[
	  Solve[{conic==0, y-y1 == t*(x-x1)}, {x,y}], !FreeQ[#,t]&]]
	]

Here are some examples. Note that this method is less than ideal in that
it may need complex coefficients. The only way to avoid this would be
to find real {x1,y1} on the curve. This of course will not happen in
general when we use a random x value and solving for y.

In[62]:= InputForm[parametrize[4 - x + x^2 - 2*y^2, {x,y,t}]]

Out[62]//InputForm=
{y -> -Sqrt[107] - 15*t + (14*t)/(-1 + 2*t^2) +
   (4*Sqrt[107]*t^2)/(-1 + 2*t^2) + (30*t^3)/(-1 + 2*t^2),
 x -> (2*(7 + 2*Sqrt[107]*t + 15*t^2))/(-1 + 2*t^2)}

In[63]:= InputForm[parametrize[4 - x + x^2 + 2*y^2, {x,y,t}]]

Out[63]//InputForm=
{y -> -2*I*Sqrt[3] - 5*t - (4*t)/(1 + 2*t^2) +
   (8*I*Sqrt[3]*t^2)/(1 + 2*t^2) + (10*t^3)/(1 + 2*t^2),
 x -> (2*(-2 + 4*I*Sqrt[3]*t + 5*t^2))/(1 + 2*t^2)}

In[64]:= InputForm[parametrize[4 - x + x^2 + 2*y^2 - 3*x*y, {x,y,t}]]

Out[64]//InputForm=
{y -> (15 - Sqrt[37] - 20*t - (54*t)/(-2 + 6*t - 4*t^2) +
    (6*Sqrt[37]*t)/(-2 + 6*t - 4*t^2) + (120*t^2)/(-2 + 6*t - 4*t^2) -
    (8*Sqrt[37]*t^2)/(-2 + 6*t - 4*t^2) - (80*t^3)/(-2 + 6*t -
4*t^2))/2,
 x -> (-27 + 3*Sqrt[37] + 60*t - 4*Sqrt[37]*t - 40*t^2)/(-2 + 6*t -
4*t^2)}

In[65]:= InputForm[parametrize[a*x^2 + b*x*y + c*y^2 + d*x + e*y + f,
{x,y,t}]]

Out[65]//InputForm=
{y -> ((-8*b)/c - e/c - Sqrt[(8*b + e)^2 - 4*c*(64*a + 8*d + f)]/c -
16*t +
    (16*b^2*t)/(2*a*c + 2*b*c*t + 2*c^2*t^2) -
    (32*a*c*t)/(2*a*c + 2*b*c*t + 2*c^2*t^2) -
    (4*c*d*t)/(2*a*c + 2*b*c*t + 2*c^2*t^2) +
    (2*b*e*t)/(2*a*c + 2*b*c*t + 2*c^2*t^2) +
    (2*b*Sqrt[(8*b + e)^2 - 4*c*(64*a + 8*d + f)]*t)/
     (2*a*c + 2*b*c*t + 2*c^2*t^2) + (32*b*c*t^2)/(2*a*c + 2*b*c*t +
      2*c^2*t^2) + (4*c*Sqrt[(8*b + e)^2 - 4*c*(64*a + 8*d + f)]*t^2)/
     (2*a*c + 2*b*c*t + 2*c^2*t^2) + (32*c^2*t^3)/(2*a*c + 2*b*c*t +
      2*c^2*t^2))/2, x -> (8*b^2 - 16*a*c - 2*c*d + b*e +
    b*Sqrt[(8*b + e)^2 - 4*c*(64*a + 8*d + f)] + 16*b*c*t +
    2*c*Sqrt[(8*b + e)^2 - 4*c*(64*a + 8*d + f)]*t + 16*c^2*t^2)/
   (2*a*c + 2*b*c*t + 2*c^2*t^2)}


Daniel Lichtblau
Wolfram Research


  • Prev by Date: Re: Re: Way to evaluate D[(1-x^2)y''[x],{x,n
  • Next by Date: Re: Contour Integration
  • Previous by thread: Parametric equations
  • Next by thread: RE: Parametric equations