Revised 11/25/2018  Barry Dayton

Introduction to Numerical Plane Curves

The current American mathematics curriculum provides beginning math students with few examples of plane algebraic curves other than lines and simple quadratics. Even advanced math students who are able to take a course in algebraic geometry get few actual examples of plane curves, even if one of the many available books on curves is used. Instead, the emphasis is on developing the big abstract theorem, and most texts have few, if any, illustrations. For this reason, I will start with a number of examples so the reader can have an idea of what this book is about.

First, however, we start with a definition. A real affine algebraic plane curve is a real solution set of a bivariate polynomial equation f [x,y]=0.

Historically, the word “real” appeared in mathematics about 100 years after the word “imaginary” was introduced by Cardano describing (Sqrt[-1]), “real” meaning “not imaginary.” Likewise the word “affine” has come to mean “not projective” or “not infinite.”

f= 3x^3-2x y+y^2-3x+1

g = 1/9x^2 - 1/4y^2 - 1

h= N[Sqrt[7]x-Sqrt[1/5]y -Sqrt[26]]

The first two are exact because the coefficients are integers or rational numbers; the third, although derived from a symbolic polynomial, is numerical because the symbolic square roots have been converted to machine numbers.

-5.0990195135927845` + 2.6457513110645907` x - 0.4472135954999579` y

Unlike the previous display, which only displays the first few digits, now we can see the full representation of the numbers in the software. We will discuss this fully in Chapter 2, along with what is actually meant when we have an equation of the form f=0 where f is this sort of a polynomial. This book will work mainly with this latter type of bivariate polynomial rather that the first two types seen in classical books on curve theory.

A polynomial may be multiplied by a constant without changing the solution set, but for technical reasons, we may wish to distinguish between f and -f in some cases.

1.1 Linear Curves

The easiest algebraic curves, straight lines, are a basic staple of beginning algebra. Children are taught that an equation of the form y=b+mx or ax+by=c has as a solution set a straight line. For our purposes, we will prefer the more general formulation f [x,y]=ax+by-c=0.

f=RandomReal[{-1,1},3].{x,y,1}

ContourPlot[f == 0, {x,-10,10},{y,-10,10}]

One thing almost everyone knows is that two points determine a straight line. As an example of the spirit of this book, we show how one should find the equation of a line through two points, p={(Subscript[p, 1]),(Subscript[p, 2])} and q={(Subscript[q, 1]),(Subscript[q, 2])}.

We want an equation ax+by+c=0 with at least one of a, b, c not zero. It will become clear why only c≠0 is acceptable. We need to satisfy the system:

a(Subscript[p, 1 ])+b (Subscript[p, 2 ])+c=0
a(Subscript[q, 1 ])+b (Subscript[q, 2 ])+c=0

This is undetermined, so we need another equation. First, we add a dummy variable z for 1 multiplying c, and then a third equation is created, giving us Equation 1:

a (Subscript[p, 1])+b (Subscript[p, 2])+c z=0
a (Subscript[q, 1])+b (Subscript[q, 2])+c z=0 
a (Subscript[r, 1])+b (Subscript[r, 2])+c (Subscript[r, 3])=1

(Subscript[r, 1]), (Subscript[r, 2]), (Subscript[r, 3]) are random real numbers, so the system will give a unique solution. This would be less likely if we used small integers or rational numbers.

e3=RandomReal[{-1,1},3].{a,b,c}

sol={a,b,c}/.NSolve[{2a+5b+c,4a+b+c,e3-1}]

l=sol[[1]].{x,y,1}

l=Expand[l/Coefficient[l,y]]

This equation looks neater, but the Wolfram Language would be just as happy with the former in subsequent calculations.

However, our method does give extra dividends. Suppose instead that we want the equation of the line through p with slope m; instead of evaluating {x,y,z} with {(Subscript[p, 1]),(Subscript[p, 2]),1}, we use {1,m,0}.

e3=RandomReal[{-1,1},3].{a,b,c}

sol={a,b,c}/.NSolve[{2a+5b+c,a-2b,e3-1}]

l=sol[[1]].{x,y,1}

l=Expand[l/Coefficient[l,y]]

Note that if we have a point far away on the line, say x=1000, then y=-1991, so the triple {x,y,1} is approximately 1000 {1,-2,0}.

This suggests that we think of the slope {1,m,0} as being a point on the line but far away, which we call an infinite point.

A third way of thinking about a line is parametrically, that is

{x, y} ={(Subscript[p, 1]),(Subscript[p, 2])}+t{(Subscript[v, 1]),(Subscript[v, 2])}.

The vector v={(Subscript[v, 1]),(Subscript[v, 2])} is called the direction vector or the tangent vector, but again, in Equation 1, just use {(Subscript[v, 1]),(Subscript[v, 2]),0} as the second point.

In our example above, we want the line through p with tangent vector {1,2}, so we use {1,2,0}.

Now the tangent vector also becomes an infinite point on our line, but any nonzero multiple of a tangent vector is also a tangent vector, so in the special case of infinite points, they are homogeneous. However, if we think of a finite point, or as we will call it, an affine point, in the form {(Subscript[p, 1]),(Subscript[p, 2]),1}, then for the purposes of Equation 1, a constant nonzero multiple by k, k {(Subscript[p, 1]),(Subscript[p, 2]),1}={(Subscript[kp, 1]),(Subscript[kp, 2]),k} works just as well. We will call any one of these equivalent forms the homogeneous form of the point. In Chapter 5, we will see that these homogeneous points, affine or infinite, make up the projective plane.

l=line[{2,5},{1,-2,0},x,y]

Expand[l/Coefficient[l,y]]

This all seems very complicated, but Equation 1 gives us a general way of constructing lines, and we will see later in Chapter 2 that we can also use it to construct higher-degree curves. In the process, we have discovered the projective plane, which will be important later. The one disadvantage is that even for a simple, exact case, we get the equation in a decimal form, but that is precisely what we are allowed and encouraged to do in this book.

1.2 Conics

Besides lines, high-school algebra students learn about simple quadratic curves, the parabola, hyperbola, and ellipse.

Row[{ContourPlot[y==1/4x^2-2,{x,-6,6},{y,-4,8},Axes->True, ImageSize->Small],
ContourPlot[y^2-1/4x^2==1, {x,-6,6},{y,-4,4}, Axes->True,ImageSize->Small],ContourPlot[y^2+1/4x^2==1, {x,-3,3},{y,-3,3}, Axes->True, ImageSize->Small]}]

ContourPlot[-4-5x+x^2+4y-2x y+3y^2==0, {x,-3,8},{y,-4,4},Axes->True]

In past years, more advanced students were expected to transform conics, like the one above, into the form of a simple conic. One can rid the equation of the x, y terms by completing the square and then translating it to get the quadratic form a b x y+c (y^2)+(x^2). This can be rotated to a simple conic form using trigonometry or, better but more advanced, the principal axis theorem of linear algebra. In Chapter 7, we will learn some more pleasant ways to transform conics to simple conics or even to circles, depending on the group of transformations you want to allow.

{ContourPlot[y^2-x^2==0,{x,-4,4},{y,-4,4},Axes->True],
ContourPlot[x^2-2x y+y^2==1, {x,-3,3},{y,-3,3}, Axes->True],ContourPlot[x^2-2x y+y^2==0, {x,-3,3},{y,-3,3}, Axes->True]}

In these cases, we get a pair of lines. In the right-hand plot, the lines are actually the same. In the middle plot, the lines are parallel, that is, they have the same slope m=1, so by the previous section, they meet at the infinite point {1,1,0}. We call these curves singular, and in the left picture, the point where they meet is called a singularity. We will deal with this concept in Chapter 3.

f=-1.`-0.43301270189221946` (x^2)+0.5` x y+0.43301270189221946` (y^2)

l1=0.` +0.8583270645009377` x-1.4866660852270714` y

l2=0.` -0.9830458468618561` x-0.5675617843114374` y

ContourPlot[{f==0,l1==0,l2==0}, {x,-6,6},{y,-6,6}, ContourStyle->{Blue,Dashed,Dashed}]

In the plot, we have a numerical hyperbola and two lines that closely approximate the hyperbola when both x, y are large. These are called asymptotes. We will see these again in the next section, but they will reappear in greater detail in Chapter 7.

1.3 Cubics

Many people who have gone further in mathematics, including PhD mathematicians, have never seen algebraic curves of a higher degree, other than function curves like y=f(x), than cubics. Even the cubics they have seen are mostly of the form f(x,y)=(y^2)-(a (x^2)+b x+c+(x^3))=0. Nonsingular curves of this form are called elliptic curves. These form a major topic in mathematics, and especially number theory, so I recommend searching the Wolfram Language & System Documentation Center, Wolfram|Alpha, Wolfram.com, or Wikipedia for elliptic curves or the related elliptic integrals. Among other things, elliptic curves played an important role in Andrew Wiles’s 1996 solution of Fermat’s conjecture, known by many as Fermat’s last theorem.

{ContourPlot[y^2==x^3+3x^2-3x+4,{x,-5,5},{y,-15,15}],ContourPlot[y^2==-12 x+(x^2)+(x^3), {x,-5,7},{y,-15,15}]}

Less well remembered are Issac Newton’s explorations with real cubics, see for example Struik (1986). Newton was largely interested in asymptotes, so he called his curves hyperbolas and numbered them from 1 to 72. In honor of Newton, I have established a large catalog of curves with asymptotes using his ideas. I call these Newton Hyperbolas, and there are 960 cubics, numbered 64 through 1023, among these curves. There are over 268 million Newton hyperbolas, just 960 are of degree 3.

newtonHyperbola[n_,x_,y_]:=Module[{v,c,k,n2dig,s},
If[(n>2^28) ||(n<0), Print["n out of range"];Return[Fail]];
v={{0,0},{1,0},{0,1},{2,0},{1,1},{0,2},{3,0},{2,1},{1,2},{0,3},{4,0},{3,1},{2,2},{1,3},{0,4},{5,0},{4,1},{3,2},{2,3},{1,4},{0,5},{6,0},{5,1},{4,2},{3,3},{2,4},{1,5},{0,6}};
c={1,1,1,.2,1,.2,.008,.2,.2,.008,.000064,
.008,.2,.008,.000064,.2^10,.2^6,.008,.008,.2^6,.2^10,.2^15,.2^10,.2^6,.2^3,.2^6,.2^10,.2^15};
k=Which[ n<8,3,n<64,6,n<1024 ,10,n<32768,15,n<2^21,21,True,28];
n2dig=IntegerDigits[n,2,k];
s=Reverse[n2dig];
Total[Table[(-1)^s[[i]]c[[i]]x^v[[i,1]] y^v[[i,2]],{i,k}]]
]

newtonHyperbola[836,x,y]

Row[{RegionPlot[newtonHyperbola[376,x,y]>0,{x,-25,25},{y,-25,25},ImageSize->Small], RegionPlot[newtonHyperbola[413,x,y]>0,{x,-25,25},{y,-25,25}, ImageSize->Small],RegionPlot[newtonHyperbola[836,x,y]>0,{x,-25,25},{y,-25,25}, ImageSize->Small]}]

We will connect these Newton hyperbolas to the twentieth-century work by Oleg Viro in Chapter 9 (2006). In particular, we can represent these curves by Gauss diagrams, which represent the topology of both the curve and positive region of the equation (brown dots).

There are also singular cubics. The equation (y^2)=f[x], where f[x] is a polynomial of one variable, is called, in general, hyperelliptic. If the polynomial f[x] is a cubic with a multiple real zero at x=r, then the resulting curve will have a singularity at {r,0}.

Row[{ContourPlot[y^2==x^3+2x^2, {x,-3,3},{y,-5,5}, ImageSize->Small],
ContourPlot[y^2==x^3, {x,-1,3},{y,-5,5}, ImageSize->Small],
ContourPlot[x^3+y^3 == 3 x y,{x,-2,2},{y,-2,2},ImageSize->Small]}]

The left-hand singularity is called a node; the middle singularity is called a cusp. Other cubics may also be singular, such as the folium of Descartes on the right, which also has a node. We will explain in Chapter 5 why an irreducible cubic can have only one singularity.

{ContourPlot[x y (x+y-1) ==0, {x,-2,2},{y,-2,2}],ContourPlot[(x^2+y^2-1)(x-y)==0,{x,-2,2},{y,-2,2}]}

In Chapter 7, I show that each irreducible cubic can be reduced to an equivalent hyperelliptic form. This is well known for nonsingular cubics in theory, but using my method, it actually can be done for almost any cubic, including those with numerical coefficients.

1.4 Higher Degree

Linear curves are of degree 1, conics are of degree 2, and cubics are of degree 3. Some people call curves of degree 4 biquadratics; others call them quartics. Otherwise, we simply say that the curve has degree d. Specifically, the total degree of a monomial (x^i) (y^j) is i+j. The total degree of a polynomial is the highest total degree of a monomial with a nonzero coefficient.

As you have seen, quite a bit is known about algebraic curves of degree 3 or lower. There is still a lot to discover about higher-degree curves. We will give some well-known examples in this section. Much of the rest of this book will be concerned with methods to represent higher-degree curves, especially when a contour plot is not sufficient.

Row[{Labeled[ContourPlot[x^4+4x y+y^4 ==.25, {x,-2,2},{y,-2,2}, ImageSize->Small],"Peanut Curve"],Labeled[ContourPlot[x^4+y^4==1,{x,-2,2},{y,-2,2},ImageSize->Small],"Fermat Curve"],Labeled[ContourPlot[(x^2+y^2/4-1)(x^2/4+y^2-1)==-.04,{x,-3,3},{y,-3,3}, ImageSize->Small],"Klein Curve"]}]

Actually, “peanut curve” is my own name; this curve is similar to certain Cassini ovals.

Row[{Labeled[ContourPlot[(x^2-4)(x-2)^2+(y^2-4)^2==0, {x,-4,4},{y,-4,4}, ImageSize->Small],"Bicuspid Curve"],Labeled[ContourPlot[x^4+4x y+y^4==0,{x,-2,2},{y,-2,2}, ImageSize->Small],"Lemniscate"],Labeled[ContourPlot[ 3(x^2+y^2)^2+8x(3y^2-x^2)+6(x^2+y^2)==1,{x,-2,2},{y,-2,2}, ImageSize->Small],"Hypocycloid"]}]

Three more singular curves are plotted below. The first two curves do not look singular but, in fact, are at {0,0}. The more interesting part of these singularities is hidden in the complex plane. The third curve has an isolated, hence singular, point at {0,1,0}. In fact, for technical reasons such as not allowing reducible curves to be nonsingular, a curve will be called nonsingular only if there are no infinite or complex singular points as well as no affine real singular points. We will go into more detail in Chapters 3, 5, 6, and 8.

Row[{Labeled[ContourPlot[x^4+x^2y^2+y^4==x(x^2+y^2), {x,-.5,1.5},{y,-1,1}, ImageSize->Small],"Bean Curve"],Labeled[ContourPlot[y^3==x^6, {x,-4,4},{y,-2,6},ImageSize->Small],"Smooth Singular Curve"], Labeled[ContourPlot[6+9x^2-8x^4-7y+9x^2 y-3y^2-8x^2y^2==0, {x ,-3,3},{y,-4,2}, ImageSize->Small],"Heart Curve"]}]

The last curve is given as a Gauss diagram. This curve of degree 5 is discussed in Chapters 8 and 9 and cannot be properly represented by a contour, or similar, plot. The letters label infinite points, and the brown dots indicate where the defining polynomial is positive.

The same can be plotted for a whole family of curves described by Gauss in his 1799 dissertation, now called Gauss curves. We start with a univariate complex polynomial in z, possibly with complex coefficients, and use the following procedure to replace z with x+iy, expand it, and take the formal real part, which is the monomials with a real coefficient.

gaussCurve[p_,x_,y_,z_]:=ComplexExpand[Re[p/.{z->x+I*y}]];

gaussCurve[z^2+2z-1,x,y,z]

gaussCurve[z^2+ I z+(2-3I),x,y,z]

Here are some region plots of Gauss curves; note that Gauss explicitly allowed the case where the polynomial p[z] had multiple zeros. These produce singularities in the Gauss curve; however, in the right-hand plot, not all singularities come from multiple zeros of p[z]. We show RegionPlot because Gauss was specifically interested in the region where the Gauss curve was positive. Note also that the middle curve is Gauss’s original example for his fourth proof of the fundamental theorem of algebra in 1849.

g1=gaussCurve[(z^2+I)(z^2-2I)z,x,y,z]

g2=gaussCurve[z^5-5z^4+9z^3-5z^2,x,y,z]

g3=gaussCurve[(z-I)^3 (z+I)^2,x,y,z]

Row[{RegionPlot[g1>0,{x,-7,7},{y,-7,7}, ImageSize->Small], RegionPlot[g2>0, {x,-7,7},{y,-7,7}, ImageSize->Small],
RegionPlot[g3>0,{x,-5,5},{y,-5,5}, ImageSize->Small]}]

In the right-hand plot, there are three singular points, {0,1}, {0,-1}, and {0,-0.2}. The first two come from multiple zeros of g3; the last does not. We will discuss Gauss curves more in Chapter 4.

1.5 Rational Functions

Actually, you have seen higher-degree algebraic curves before. For instance, the graph of the polynomial function y-p[x]=0 is an algebraic curve, but the curve properties are simple, and there is no advantage in thinking of them in curve terms. Graphs of rational functions y=((p[x])/(q[x])) can also be thought of as algebraic curves in the form y q[x]-p[x]=0.

The first has two vertical asymptotes and one horizontal one. As mentioned earlier, the slope of a vertical line can be entered using our line function as {0,1,0}, which we interpreted as saying that {0,1,0} is a point at infinity, but then both vertical asymptotes pass through that point, so {0,1,0} becomes a singular point. The second plot has the same two vertical asymptotes but also a third asymptote called, in high-school algebra, a slant asymptote. The right-hand plot shows one vertical asymptote, but here is a case where the curve does not approach the asymptote at both ends, again making the infinite point {0,1,0} singular. However, we show in Chapter 7 that this rational function also approaches {0,1,0} as x->±∞, making that singularity even worse! We will see later that rational function curves of degree 2 or higher are always singular.

Do not confuse rational function curves with rational curves; every rational function curve is a rational curve, but the converse is not always true. We will discuss rational curves in the next section.

1.6 Parametric Curves

Aside from algebraic curves, there are also parametric curves. A parametric curve is the image of a continuous function F[t]={(Subscript[f, 1])[t],(Subscript[f, 2])[t]} of one real variable taking values in the affine plane, possibly augmented by infinite points. This function may have a domain that is a bounded open or closed interval in the line or perhaps the entire real line. The study of parametric curves with differentiable parameterization is part of differential geometry, while algebraic geometry includes the the study of algebraic curves. Curves in topology are required to have only continuous parameters. The connection between these ideas is one of the key ideas in this book:

Every real plane algebraic curve is the union of continuously parameterized curves.

Since we are only requiring the parameterizing functions to be continuous, we will not, in general, be able to explicitly describe the parameterizing functions, but we will be able to approximate these curves well by giving as many points on them as desired.

f= y^2-x^2-1;
F1 = {t,Sqrt[t^2+1]};
F2 = {t, -Sqrt[t^2+1]};

{ContourPlot[f==0,{x,-4,4},{y,-4,4}], ParametricPlot[{F1,F2},{t,-4,4},PlotRange->4, Frame->True, Axes->False]}

Note above that the Wolfram Language gives the same point sets, but on the right, it treats the two parameterized curves as separate, with different default coloring. In the second case, the two colors represent different topological components, while the first picture shows one algebraic component. This is because there is no algebraic equation with a full real solution set: just one of the topological components on the right. For that to happen, these equations would have to be factors of the original equation f, but since f is of degree 2, the factors would have to be of degree 1, which are lines, but the two topological curves on the right are clearly not lines.

{ContourPlot[{(x^2+y^2-1)==0,(x-y)==0},{x,-2,2},{y,-2,2}], ParametricPlot[{{t,t}, {Cos[t],Sin[t]}}, {t,-Pi,Pi},PlotStyle->Blue,PlotRange->2,Frame->True,Axes->False]}

In this case, the curve has two algebraic components because f3 factors as f3=((x^2)+(y^2)-1)(x-y), but for the parametrization on the right, there is only one topological component because, as a point set, it is connected. For those not familiar with topology, see the first section of Chapter 4.

In general, if a curve is defined with an exact (integer or rational number coefficients) polynomial equation, then the Wolfram Language’s Factor may be able decide if the curve can be factored into integer factors or not. If a curve can be factored, possibly with non-rational or complex coefficients, we call the curve reducible; if not, we call it irreducible. The Wolfram Language does not have built-in factoring for numerical polynomials, but we will see that, as in the previous example, reducible curves always have singular points, although possibly complex. Using these singular points, we can often visually guess the decomposition, possibly using the interpolation algorithm, covered in the next Chapter, and nDivide, covered in Appendix 1, to verify.

A simple example is the curve

h=x^3-y^3;
Factor[h]

But we know this equation is simply x= (1^(1/3)) y and (1^(1/(3□))) =(((Sqrt[3])+i)/(2i)) so Mathematica could factor this knowing there is a (Sqrt[3]) and an i in the result.

Factor[x^3-y^3, Extension->{Sqrt[3],I}]

So this factors completely over the complex numbers but the only factor with real points is x-y so the plot is just the line x = y.  We will see later that there is a singular point at {0,0}.

ContourPlot[x^3-y^3==0,{x,-3,3},{y,-3,3}, ImageSize->Small, Epilog->{Red,PointSize[Medium],Point[{{0,0}}]}]

g=Expand[(x^2+y^2-1)^2(x-y)]

ContourPlot[g==0,{x,-2,2},{y,-2,2}, ImageSize->Small]

The entire algebraic component defined by c=(x^2)+(y^2)-1=0 is missing. ContourPlot works using Gauss’s definition of a curve by finding where the sign of c[x,y] changes, but since c occurs squared in the equation of g, the sign of g(x,y) does not change near c. Since we will be using Gauss’s idea even in our more sophisticated plotting in Chapter 4, we want to avoid polynomials like g that have a factor that is raised to the second or higher power. Again, if the equation is given exactly, as is g, then often we can use the Wolfram Language’s Factor to see if there is any repeated factor and discard all repetitions. Unlike factoring, which is hard and theoretically impossible for numerical polynomials, it is easy to find and delete repeating factors numerically to get a square-free polynomial; for that, use sqFree, created for this book, which works with both exact and numerical polynomials.

gs=sqFree[g,x,y,1.*^-12]

gs=Expand[gs/Coefficient[gs,x^3]]

Now, you will notice we have f3, except now coefficients are treated as numerical quantities.

For the rest of this book, we will assume all curves are given by square-free polynomials.

If a curve is reducible, then each factor of a square-free defining polynomial defines a sub-curve, which will be called an algebraic component of the curve. Topological components, which we will also call connected components, will be defined in Chapter 4.

We end this section by looking at several more curves that can be described as parametric or algebraic curves.

Fbow = {(-1+t^2)/t^3, (-1+t^2)/t^4}

fbow= x^4-x^2y+y^3;

Row[{Show[ParametricPlot[Fbow, {t, -20,-.1}, PlotRange->.4,Axes->False, Frame->True], ParametricPlot[Fbow,{t,.1,20}], ImageSize->Small],RegionPlot[x^4-x^2y+y^3<0,{x,-.4,.4},{y,-.4,.4}, ImageSize->Small],Show[,ImageSize->Small]}]

In general, an algebraic curve that can be locally parameterized by a pair of rational functions of one variable is called a rational curve. In Chapter 7, we will show that conics are rational curves. Singular cubics are rational curves. In Chapter 5, we will show that an irreducible curve of degree d has at most (((d-1)(d-2))/2) singular points. A classical theorem of algebraic geometry says that rational curves have many or complicated singularities. Conversely, if a curve has the maximal number of singularities for that degree, as seen above, then it is rational but there is no simple method to find the rational parametrization.  At the end of  Chapter 7 we do discuss Caley’s method for finding the parameterization in a special case.

In Chapter 3 of Fischer (2001), he gives several examples of complicated algebraic curves derived from parametric curves.

Cheb[d_]:=ParametricPlot[{ChebyshevT[d-1,t],ChebyshevT[d,t]},{t,-1,1}, Axes->False, Frame->True, ImageSize->Small];

Row[{Cheb[4],Cheb[5], Cheb[6]}]

Fischer (2001) shows that Cheb[d] is algebraic of degree d with (((d-1)(d-2))/2) singularities, which, as mentioned, is the maximum number allowed for an irreducible curve of degree d. For example, the equation 8 (x^4)-8 (x^2)-4 (y^3)+3 y+1=0 has three singularities, the maximum for a degree 4 curve.

Rose[k_]:={Cos[t]Cos[k t],Sin[t] Cos[k t]};

k can be any constant real number. This gives an algebraic curve for each rational number k, but it is not algebraic for irrational k. For more detail, see mathworld.wolfram.com/Rose.html.

{ParametricPlot[Rose[3],{t,-2Pi,2Pi},Frame->True,Axes->False], ParametricPlot[Rose[2/3],{t,-3Pi,3Pi},Frame->True,Axes->False]}

Here are two thought questions to be answered later.

In Shreeram Abhyankar’s book Algebraic Geometry for Scientists and Engineers (1990), he gives the following picture of a quartic (Subscript[C, 4]) surrounded by a conic (Subscript[Q, 2]) in the plane:

This is meant only to be illustrative, not literal. It is too bad he did not think to use the Chebyshev quartic for (Subscript[C, 4]). Give at least two reasons why (Subscript[C, 4]) is not an actual plot of a square-free real plane algebraic curve. This question will be answered in Chapters 4 and 5.

A plot of Newton Hyperbola 336941 is shown below:

ContourPlot[newtonHyperbola[336941,x,y]==0, {x,-20,20},{y,-20,20}]

We will see later that there is obviously missing information about the full curve. Without further plotting or calculations, give several possible ways this curve could be completed to the entire affine (or projective) plane. Chapter 10 gives the answer to this question.