This curve is called a **capricornoid**, because it’s supposed to resemble the sign of Capricorn in the zodiac, though I don’t see how. Its equation is

so it’s described by a quartic equation in two variables.

What makes this curve fun is that it has two different kinds of singularities. At the point

it has a **tacnode**, meaning that two different branches of the curve are tangent at that point. More precisely, two different circles kiss the curve at that point.

Further up, at the point

there is a **crunode**, meaning that two different branches of the curve cross each other, but are not tangent. The word ‘crunode’ is a bit old-fashioned: usually people call a point like this an **ordinary double point**.

The simplest example of a tacnode is the curve

This consists of a parabola and an upside-down parabola that are tangent at the origin: the tacnode is at the origin.

The basic example of an ordinary double point for a curve in the plane is

This consists of two lines that cross at the origin: the ordinary double point is at the origin. This is, in some obvious sense, a simpler singularity than the tacnode. But can we make this obvious sense precise?

There’s an amazing classification of singularities for surfaces in terms of ADE Dynkin diagrams, and V. I Arnol’d used a variant to classify certain singularities of curves. For example, the curve

is said to have singularity of **type A _{n}** at the origin. If we take we get

which has an ordinary double point at the origin: this is another way to draw two lines crossing. If we take we get

which is the simplest example of a **spinode**. Again this term is a bit old-fashioned: these days people call such a singularity a **cusp**.

And if we take we get

which is the simplest example of a tacnode!

So, there’s a systematic way in which these singularities are getting more complicated:

• crunode (ordinary double point):

• spinode (cusp)

• tacnode

and the series goes on forever.

I drew the capricornoid using the SageMathCloud. Since I’m not very good at computing, I found myself cursing a few times in the process. For example, this system seems to fall asleep if you don’t use it fast enough. When it falls asleep, it forgets that you’ve declared variables—that is, told it that variables are variables. Then it spews out obscure error messages.

But a more mathematically interesting reason for cursing is that it’s a bit hard to draw a tacnode! I said that the curve shown above is a picture of

but I was lying. It’s actually a picture of

If I draw a picture of

I get this:

This doesn’t include the origin, so we don’t get the tacnode—due to some discretization effect or small numerical errors, I guess. This says something interesting about what happens to a curve with a tacnode when you perturb it slightly!

All this is part of my slow and much belated plan to learn algebraic geometry.

**Puzzle.** Can you get the equation of the capricornoid by taking the equation of an ellipse

and the equation of another ellipse

and multiplying them to get

I believe the answer to the puzzle is “No”: the capricornoid itself doesn’t factor. When direct attempts to factor the quartic failed, I tried to fit a quadratic to six points on one loop, but the equations for the 6 quadratic coefficients were of full rank, i.e. the only quadratic that was zero on all six points was the zero quadratic.

That said, it’s not hard to find very similar-looking curves by multiplying the quadratics for two ellipses that share a tangent at the same point. For example:

BTW, Mathematica also misses the tacnode if you plot the capricornoid by the most straightforward method, which is a naive “contour plot” that works by evaluating the function on a finite grid and looking for places where it changes sign from grid point to grid point. Because the quartic near the tacnode changes sign as it crosses both of the two, very close, curves, on an insufficiently fine grid the sign change is invisible. You found a clever workaround for that problem!

By the way, I used Sage’s

`implicit_plot`

function, which they say is a specialization of a contour plot. So, it must be that “most straightforward method”.My workaround is surprisingly sensitive to the choice of the number -0.0001: if I choose a somewhat smaller number I get the same picture as if I’d chosen zero, and if I choose a somewhat larger number the tacnode turns into an annoying ‘double crossing’, which you can already start to see for the number -0.0001:

The best way to do this in Mathematica is

Plot[Chop[y/.Solve[x^2 (x^2+y^2)-4(y-x^2-y^2)^2==0,y]],{x,-1,1},Frame->True,Axes->False]

But presumably that wouldn’t work so well if it couldn’t find explicit solutions.

John wrote:

if I choose a somewhat larger number the tacnode turns into an annoying ‘double crossing’.Right, it’s not ideal. X’s approach where you solve for one of the Cartesian variables, or Jesse and Kram’s polar form, are more accurate and reliable.

But it’s also a good policy to be wary about computer plots in general. There can be problems ranging from artifacts of the algorithms to actual bugs in any graphics software. The last few versions of Mathematica (at least on the Mac), including the current one, can’t draw circles accurately! (A few years ago, Java couldn’t either.) I told them about this bug a year ago but they still haven’t fixed it.

Greg, can you say more about the Mathematica bug? (BTW your comment made me realize that regardless how it’s implemented, the “best” rendering of a continuous curve on a discrete lattice may be less well defined than I’d unthinkingly assumed; it now occurs to me that in order to avoid annoying visual artifacts, one might want to minimize variability in the number of dots per unit length along the curve).

In the current version of Mathematica on the Mac, if you draw an arc of a moderately large circle (“large” in the sense that its radius is a couple of orders of magnitude greater than the width of the view, “moderately large” in the sense that two orders of magnitude is not extreme and

ought notlead to numerical overflows or underflows), the arc very visibly fails to pass through points that it should.For anyone with Mathematica who wants to test this: the image produced by the code below shows a tangent to a circle, in red, passing through the point of tangency, but the circle itself, in blue, which ought to pass through the same point, does not.

theta = Pi/8;

point = {Cos[theta], Sin[theta]};

tangent = {-Sin[theta], Cos[theta]};

width = height = 1/100;

Graphics[

{

{Blue,Circle[{0,0},1]},

{Red,Line[{point-tangent,point+tangent}]},

{Black,PointSize[.02],Point[point]}

},

PlotRange->{

{point[[1]]-width/2,point[[1]]+width/2},

{point[[2]]-height/2,point[[2]]+height/2}}

]

On the question of the “best” rendering of a continuous curve, I suppose the gold standard would be something like a perfectly anti-aliased image of a finite-width region whose borders lie at fixed orthogonal distances on either side of the idealised zero-width curve, with some well-defined “capping” behaviour at any endpoints and/or points of discontinuous tangent. In reality, a lot of systems do a pretty good job at this for straight line segments, Bezier curves, and (sometimes) circular arcs, but anything else has to be rendered by combining those elements.

Funny: I had never heard “ordinary double point” used for a curve before, only a surface (e.g. the plane mod negation); likewise I’d only ever heard your simpler singularity called a “node”. Of course this may be a difference between modern mathematician terminology and historical.

Note that your Wikipedia link to “an amazing classification” is to surface, not curve, singularities. (And no not “Riemann surface” i.e. complex curve.)

One way to understand why the answer is No to your second problem is to break the capricornoid into its two ellipse-looking parts. Each one will be a curve, but not at the tacnode. I suppose this means that the polynomial defining it factors as a product of two functions, each smooth away from the tacnode, but I’m not sure one could write them down.

Thanks! I got a bit mixed up about the ‘amazing classification’, so let me fix that:

I wasn’t being deliberately archaic except for the terms ‘crunode’ and ‘spinode’; I got my information here:

• Singular point of a curve, Wikipedia.

Since the equation of the curve mentions and not alone, the figure is symmetric about the vertical axis; corollary: were the figure a union of tangent ellipses, the two ellipses would be congruent, and in particular have the same curvature at the tangent point, which does not seem to be the case. One probably ought to drop the words “monodromy”, or “resolution of singularities”, and then calculate them. But since I’m not that clever, I’ll just work out a polar coordinate equation for the same curve… ignoring an unhelpful factor of we seem to have

Alternate form:

Wait, actually:

Nice, Jesse and Kram!

Actually

is enough to do the job: we can get to change sign while stays the same, so we don’t need to say

I am thinking that if we use a trajectory, a pencil tracing the curve without come off the sheet, then the trajectory is continuous (it is impossible to have singularities along the different coordinates), but there are curves that it is not possible to trace without overlap and that have an Arnold singularity: for example a curve that have an Euler condition on the nodes (it seem similar to the Seven Bridge of Konisberg); so that I think that there is a connection with graph theory.

The trajectory of the capricornoid is:

and it is possible to trace it using gnuplot:

set parametric

plot [0:7] 2 sin(t) cos(t)/(2-cos(t)), 2 sin(t) sin(t)/(2-cos(t))

pause -1

without singularities.

Much fun. I see that desmos allows polar coordinates. Here I show the capricornoid on a polar chart with parameters to explore phase shifts and frequency differences:

https://www.desmos.com/calculator/xvajuqr1yc?tour=restrictions

Very nice, Steve!

Real world, physical application? I believe charged particles like electrons and protons move from point to point over the arc of the cycloid. Why? Because cycloidal motion is a combination of a circular motion and a motion in translation. To my mind, the electrical field impels charged particles in straight lines while the magnetic field, at the same time drives them into circular orbits. So what about uncharged particles like neutrons? I’m thinking the curves under discussion in this thread might just be natural orbits for things like neutrons.

Ah, and these polar equations from Jesse and Kram make it easy to check that, if you want a curve, you can’t go around a single loop, you need to change loops at the tacnode. There are two distinct osculating circles to the curve at the origin, depending on whether or , which I guess is part of the

definitionof a tacnode.By the way, after the

• crunode (ordinary double point):

• spinode (cusp)

• tacnode

comes the

rhamphoid cusp, This comes from a Greek word meaning ‘beak-like’, because it’s sharper than the ordinary cusp. The ordinary cusp looks like this:This is actually a picture of

The higher and higher orders of that just keep becoming flatter in the y-direction and they alternated between power-like and root-like behavior. I suppose these kinds of things happen due to historic accidents (people typically just figure out the simplest couple first and as long as there only are a few around, naming each and every one of them still is somewhat practical) but it’s always kinda weird to me to name early but not at all special terms of an infinite series.

The name for the singularity at the origin of is

A. Not as romantic as ‘tacnode’ or ‘rhamphoid cusp’, I admit._{n}singularityYes, it’s funny how people get very excited about the first few special cases of a series and then lose interest… but in general the first few cases are the ones that show up the most ‘in practice’.

For plane curves this happens because the ordinary double point is ‘generic’, in the technical sense. In other words: if you smoothly deform a smooth plane curve with an ordinary double point very slightly, it will still have an ordinary double point.

The cusp is not generic in this sense, but if you consider a smooth 1-parameter family of smooth curves, it’s generically true that

someof these curves have cusps. If you look at the reflection of sunlight in a coffee cup and move the cup, you’ll see what I mean.And so on: as we increase

n, a smoothn-parameter family of smooth curves will generically encounter more and more complicated singularities.Thanks for sharing this fascinating curve. I’m always interested in playing with the parameters, and this one was fascinating. (On Desmos https://www.desmos.com/calculator/vdofal9swy)

Wow, that’s really nice! I like what happens when you reduce to almost zero. And even more, I like the ability to adjust parameters and instantly see what happens.

Is it possible to use Desmos to make an animated gif of a curve as one varies one of the parameters?

I would like to do something with the capricornoid on my blog

Visual Insight, but a simple static image of this curve just isn’t charismatic enough for that blog. Varying the parameters allows for a nice explanation of what can happen to a tacnode as a curve changes.Yes, it’s possible!

Ah, so

thatis what a tacnode is! I have been idly wondering ever since encountering the poemWockyjabber(by Hilbert Schenk, Jr.) years ago. So now I wonder next: What is a semi-tacnode, and after that, what is the Gudermanian, and does it make sense to say that the semi-tacnode operates on it? (I suspect the answer to the latter question is no, but I’d be delighted to be proved wrong about that.)Incidentally, the word “Wockyjabber” was my first (and only?)

googlewhackblatt, meaning a word that results in exactly one google hit. I had received the poem as an umpteen’th generation photocopy without attribution, and wanted to know who wrote it. That one google hit led me to the book where it had appeared in print. (The Mathematical Magpie, Clifton Fadiman (ed.), 1962.)I don’t know what a semi-tacnode is, or even if such a thing exists. I’ll look it up.

But I’ve known about the Gudermannian ever since I was a kid, because I learned a lot of math from my dad’s 1947 edition of the

CRC Handbook of Chemistry and Physics. Back then it had lots of tables of integrals, tables of logarithms, and more… including tables of trig functions! And I believe it discussed the Gudermannian.The Gudermannian is a real-valued function on the real numbers, , with these wonderful properties, which I can never remember—I had to look them up:

There are thus many equivalent definitions of the Gudermannian, such as these:

but the only thing I remember is the definition of its inverse function:

This is easy to remember because I teach calculus a lot, and the secant is the trickiest trig function to integrate.

This makes it clear that on a Mercator projection, the distance between a line of constant latitude and the equator is (proportional to) the inverse Gudermannian of the latitude

So, to convert the distance from a point on the map to its latitude, you use the Gudermannian!

Part of why I care is that my thesis advisor’s advisor’s advisor’s advisor’s advisor’s advisor’s advisor was Christophe Gudermann… and

hisadvisor was Gauss.A quick Google search suggests that ‘semi-tacnode’ is a word made up Hilbert Schenk for his poem

Wockyjabber.Free users of https://cloud.sagemath.com get 1 hour of no activity until SageMathCloud idle timeouts a project; also, free projects run on pre-emptible computers, which get rebooted randomly at least once every 24 hours. If you pay (a very small fee) then you can move your projects to machines that aren’t rebooted and increase the idle timeout a lot. We have a huge number of people using SMC for free every day, and without the idle timeout it would cost too much and we would just have to shut down the service entirely.

Thanks for the explanation. I would have been less annoyed if the error message had made it easier to figure out what was going on—so it might be nice to have a sign pop up that makes it clear to newbies what’s going on.

But anyway, I eventually figured it out, and I’m realy glad that this free service exists! If I ever do more math programming, I’ll consider paying the fee for extra power.

I think the puzzle can be solved by making use of the degree

form, i.e. the sum of the terms with highest degree in a

polynomial. To avoid negative signs we can write the

polynomial as

Suppose there are quadratic polynomials , such

that

,

is an equation for one of the ellipses, and

is an equation for the other ellipse.

The degree form for is the product of the degree forms

for and . After expanding we get its

degree form

The degree form for is a real quadratic form

with positive discriminant, . The ellipses would

have to be mapped to each other by the reflection

so the degree form for is

The product of the degree forms for and is

By equating corresponding coefficients in and

we get and .

Since the discriminant is positive and must have the

same sign. So and

This contradicts . Therefore the polynomials

, do not exist.

Very nice explicit solution—thanks, Scott!

The curve looks vaguely like a ram’s head seen from the front. The center part is the head, while the two horns on the left and right curve down, framing it:

A

cusp of order 5/2is a singularity in an otherwise smooth curve that looks likein some coordinates. In my post on the capricornoid, I gave some old-fashioned names for different kinds of cusps, and in a comment I mentioned that the cusp of order 5/2 was called a

rhamphoid cusp. Strangely, I wrote all thatbeforeknowing that Arnol’d places great significance on the cusp of order 5/2 in the involute of a cubical parabola!