Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

converting implicit equations to parametric form

33 views
Skip to first unread message

g

unread,
Jul 15, 2008, 5:32:55 PM7/15/08
to
Hi
Is there a general method to convert implicit (i.e f(x,y)=0)
equations to a parametric form
(i.e. x=f(t), y=f(t) )? If so, how?
Thanks
GC

sanchop...@web.de

unread,
Jul 15, 2008, 5:45:32 PM7/15/08
to

This is not possible in general, i.e. x^2+y^2-1=0 can not be written
as a "function y(x)" because this would not be an unique assignment
for example if x=0.
Maybe, you can write it as the union of some graphs of "functions
y(x)" like y(x)=\sqrt(x^2-1) and y'(x)=-\sqrt(x^2-1) from [-1,1].
If your f is an arbitrary function an not even a polynomial, it is
possible that there are even no finite family of such "functions y(x)"
which generates your zero-set.

S.

The World Wide Wade

unread,
Jul 15, 2008, 6:58:38 PM7/15/08
to
In article
<a529fb16-48e4-4405...@i76g2000hsf.googlegroups.com>,
g <gcoo...@cs.com> wrote:

> Hi
> Is there a general method to convert implicit (i.e f(x,y)=0)
> equations to a parametric form
> (i.e. x=f(t), y=f(t) )?

That makes zeros sense as stated.

The World Wide Wade

unread,
Jul 15, 2008, 7:21:03 PM7/15/08
to
In article
<7635a697-a9c2-4639...@f36g2000hsa.googlegroups.com>,
sanchop...@web.de wrote:

You misunderstood his question (which was badly stated). He wants to
write the level curve f(x,y) = 0 in parametric form as x = a(t), y =
b(t). The curve x^2 + y^2 - 1 = 0 is clearly no counterexample.

Robert Israel

unread,
Jul 15, 2008, 7:26:43 PM7/15/08
to
sanchop...@web.de writes:

> On 15 Jul., 23:32, g <gcook...@cs.com> wrote:
> > Hi

> > =A0Is there a general method to convert implicit (i.e =A0f(x,y)=3D0)


> > equations to a parametric form

> > (i.e. x=3Df(t), y=3Df(t) )? If so, how?
> > Thanks
> > GC
>
> This is not possible in general, i.e. x^2+y^2-1=3D0 can not be written


> as a "function y(x)" because this would not be an unique assignment

> for example if x=3D0.


> Maybe, you can write it as the union of some graphs of "functions

> y(x)" like y(x)=3D\sqrt(x^2-1) and y'(x)=3D-\sqrt(x^2-1) from [-1,1].


> If your f is an arbitrary function an not even a polynomial, it is
> possible that there are even no finite family of such "functions y(x)"
> which generates your zero-set.
>
> S.

He did say parametric (and presumably the two f's are not the same).
Your example x^2 + y^2 - 1 = 0 does have parametric forms, e.g.
[x = cos(t), y = sin(t)], and can even be parametrized by rational
functions, e.g.
[x = 2t/(1+t^2), y = (1-t^2)/(1+t^2)]
if you don't mind using t=infinity for the point (0,-1).
Of course a case such as (x^2 + y^2 -1)(x^2 + y^2 -2) where the two
branches are disconnected can't have a continuous parametrization.
In principle any connected curve without self-intersections can be
parametrized, but there's no guarantee that there is a parametrization
in "closed form".

If your curve is algebraic and you want a rational parametrization,
the curve needs to have genus 0.
--
Robert Israel isr...@math.MyUniversitysInitials.ca
Department of Mathematics http://www.math.ubc.ca/~israel
University of British Columbia Vancouver, BC, Canada

The World Wide Wade

unread,
Jul 16, 2008, 1:10:38 AM7/16/08
to
In article <rbisrael.20080715231111$70...@news.acm.uiuc.edu>,
Robert Israel <isr...@math.MyUniversitysInitials.ca> wrote:

> sanchop...@web.de writes:
>
> > On 15 Jul., 23:32, g <gcook...@cs.com> wrote:
> > > Hi
> > > =A0Is there a general method to convert implicit (i.e =A0f(x,y)=3D0)
> > > equations to a parametric form
> > > (i.e. x=3Df(t), y=3Df(t) )? If so, how?
> > > Thanks
> > > GC
> >
> > This is not possible in general, i.e. x^2+y^2-1=3D0 can not be written
> > as a "function y(x)" because this would not be an unique assignment
> > for example if x=3D0.
> > Maybe, you can write it as the union of some graphs of "functions
> > y(x)" like y(x)=3D\sqrt(x^2-1) and y'(x)=3D-\sqrt(x^2-1) from [-1,1].
> > If your f is an arbitrary function an not even a polynomial, it is
> > possible that there are even no finite family of such "functions y(x)"
> > which generates your zero-set.
> >
> > S.
>
> He did say parametric (and presumably the two f's are not the same).

There are three f's: f(x,y) and the two you mention.

g

unread,
Jul 16, 2008, 6:56:43 PM7/16/08
to

Hi: Let me try again.
If I have an implicit equation (such as x^4 +2*y*x^2 - 3*x*y^2+y^3
=0).
and plot the x,y pairs which are solutions to this equation.(For each
x, there should be 1 or 3 y
points)
Can I find a set of parametric equations (such as y=f(t) and x=g(t))
which will also
plot the solution?
In general, how is an implicit equation converted to parametric form?
Thanks
GC

Robert Israel

unread,
Jul 17, 2008, 3:15:47 AM7/17/08
to
g <gcoo...@cs.com> writes:

This particular example turns out to have genus 0, so it has a rational
parametrization. According to Maple 12:

> with(algcurves):
f := x^4 +2*y*x^2 - 3*x*y^2+y^3;
parametrization(f, x, y, t);

[-t*(2-3*t+t^2), -t^2*(2-3*t+t^2)]

i.e. this has a parametrization x = -t*(2-3*t+t^2), y = -t^2*(2-3*t+t^2.

The Maple help file says:
----------------
For a description of the method used see M. van Hoeij, "Rational
Parametrizations of Algebraic Curves using a Canonical Divisor", 23, p.
209-227, JSC 1997.
-----------------

Gregg Kelly

unread,
Jul 17, 2008, 8:16:52 PM7/17/08
to

>> g wrote:
>> > Hi
>> > Is there a general method to convert implicit (i.e f(x,y)=0)
>> > equations to a parametric form
>> > (i.e. x=f(t), y=f(t) )? If so, how?
>> > Thanks
>> > GC

This is probably not the answer the original poster is looking for however
... The problem of finding a "nice" parameterization for an algebraic curve
was studied in the 19th century under the name "uniformization problem" and
eventually solved by Poincare et al. The short answer is this:

1) Curves of genus 0 can be parametrized by rational functions.
2) Curves of genus 1 can be parametrized by elliptic functions.
3) Curves of genus >= 2 can be parametrized by automorphic functions.

Elliptic functions are doubly periodic functions.
Automorphic functions are functions invariant under a group on Moebius
transformations.

What is nice about these parametrizations is that they are in fact a
conformal isomorphism between the Riemann surface of the algebraic curve and
a certain quotient space of C.

Explicit construction of the parametrizations, is at least for case 3), a
difficult and probably unsolved problem.

However if the curve is of degree at most 2 in one of the variables, say y,
and has genus 0 or 1 then it is easy. Write the curve in the form

y^2.A(x) + y.B(x) + C(x) = 0

Compute the discriminant and factorize it into a square and square free part
ie

B(x)^2 - 4.A(x).C(x) = E(x)^2.D(x).

Then the genus of the curve is half the degree of D. So if the genus is 0 or
1 the degree of D will be at most 4. Compute the elliptic function solving
the differential equation

(dx/dt)^2 = D(x)

Lets call it f(t). This can be done for example be done using the
Weierstrass P function Ie.

f(t) = (a.P(t) + b) / (c.P(t) + d) for some contants a,b,c,d


Then the parametrization of the curve is given by

x = f(t)

y = ( -B(f(t)) + E(f(t).f"(t) ) / 2.A(f(t))

(using the formula y = (-B + sqrt(B^2 - 4.A.C)) / 2.A )


Cheers,
Gregg.


g

unread,
Jul 17, 2008, 10:03:42 PM7/17/08
to


Hi Gregg:
Yes, that is the general information I was originally trying to
ascertain.
I was hoping that there was a somewhat simple algorithm to convert
general implicit equations to parametric form for easy plotting.
By your explanation and the previous reference from Mr. Israel,
I see that an easy solution is not probable:
The parametric equations calculated by Maple do indeed plot the
implicit equation
f(x,y) originally given which I plotted using Mathcad.
Unfortunately, Mathcad does not have a parametrizing function.
Thanks for your input
GC
,

Mariano Suárez-Alvarez

unread,
Jul 18, 2008, 8:37:35 AM7/18/08
to

If what you really want is to plot the function, then
that is usually done without a parametrization.

One possible, very simplistic approach is the following.
To plot

f(x,y) = 0 (*)

or, rather, to obtain an approximation to the plot,
you first `guess' a point (x0,y0) on the curve
(by computing any solution to the equation) and then
you, for example, use it as an initial condition
to the differential equation

x' = -f_y(x, y)
y' = f_x(x, y)

(here f_x is the partial derivative w.r.t. x,
and so on) The solution curve to the differential
equation (under appropriate conditions) is
the curve given by (*).

This idea can probably be easily inplemented
using maple. Of course, this will only get you
an approximation to the curve...

-- m

Robert Israel

unread,
Jul 18, 2008, 10:01:20 PM7/18/08
to
On Jul 18, 5:37 am, Mariano Suárez-Alvarez

If you're plotting, you can never hope for anything other
than an approximation to the curve, even for straight lines.

I believe your idea is essentially what Maple uses in the procedure
plot_real_curve in the algcurves package. For
example:

> algcurves[plot_real_curve](f(x,y),x,y);

Gregg Kelly

unread,
Jul 22, 2008, 5:51:11 PM7/22/08
to

"Gregg Kelly" <gregg...@silverbrookresearch.com> wrote in message
news:12163402...@login-host.silverbrookresearch.com...

Actually the branch points of the Riemann surface of the curve over the
x-plane are given by the roots of D. If D has odd degree there is also a
branch point at infinity. Hence

ceiling(degree(D) / 2) = 2.g + 2 where g is the genus of the curve.

If D has degree zero the curve is reducible and splits into two components.

> So if the genus is 0 or 1 the degree of D will be at most 4. Compute the
> elliptic function solving the differential equation
>
> (dx/dt)^2 = D(x)
>
> Lets call it f(t). This can be done for example be done using the
> Weierstrass P function Ie.
>
> f(t) = (a.P(t) + b) / (c.P(t) + d) for some contants a,b,c,d
>
>
> Then the parametrization of the curve is given by
>
> x = f(t)
>
> y = ( -B(f(t)) + E(f(t).f"(t) ) / 2.A(f(t))

y = ( -B(f(t)) + E(f(t)).f '(t) ) / 2.A(f(t))

>
> (using the formula y = (-B + sqrt(B^2 - 4.A.C)) / 2.A )

Moreover if the curve has genus zero the P function degenerates to the
cotangent function and we have

f(t) = (a.cos(t) + b.sin(t)) / (c.cos(t) + d.sin(t))

and the parametrization is a simple generalisation of the x=cos(t) y=sin(t)
parametrization of the circle.

Cheers,
Gregg


0 new messages