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.
> 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.
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.
> 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
> 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.
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
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.
-----------------
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.
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
,
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
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);
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