Recently I read an article in a magazine describing how an inverse graphing calculator on this page adds domains and ranges to implicit functions. Unfortunately the page is down and I can't see it for myself, so I tried to plot one of the formulas in wolfram alpha,

(y-x)^2 + (y^2 - 6*y + 8 + sqrt(y^4 - 12*y^3 + 52*y^2 - 96*y + 64))^2=0

but it doesn't plot it, it just shows an empty graph. It does however show the correct solution:

for 2 <= x <= 4, y=x

I also tried plotting it in geogebra and some online things that can handle implicit functions but they also just give empty graphs. Is it too complicated? Is the formula correct? And if so why doesn't it plot the equation?

Thanks in advance.

  • 1
    $\begingroup$ What do you mean by "Is the formula correct?"? Correct with respect to what? $\endgroup$ – trang1618 Sep 26 '16 at 20:24
  • $\begingroup$ I mean that the formula does what I expect it to do, y=x in 2<=y<=4. Wolfram Alpha says what I expect of the formula, but perhaps it could be wrong. $\endgroup$ – The PJ Sep 26 '16 at 20:28

Most numerical implicit function plotters actually depend on recognizing changes of sign. Basically, if you want to plot $f(x,y) = 0$, you start by sampling a bunch of points $f(x_i,y_j)$, and you know that if this has opposite signs at two neighbouring points, there should be a piece of the curve somewhere between them. But if you have a function such that $f(x,y) \ge 0$ for all $x,y$, unless you are lucky enough to hit exactly on a point where $f(x,y) = 0$ you will only see positive values, and you will never detect the presence of a curve. That's the case here, since your function is the sum of two squares.

  • $\begingroup$ Good to know! Do you know how to explain @grixor 's observation that replacing $\sqrt{y^4 - 12y^3 + 52y^2 - 96y + 64} \to \vert y^2-6y+8\vert$ allows WA to graph it? $\endgroup$ – GFauxPas Sep 26 '16 at 21:17
  • $\begingroup$ My guess is that WA is sampling points on the diagonal $x=y$. In principle, when $2 \le y \le 4$ this should give you $f(y,y) = 0$. However, in numerical evaluation roundoff error is likely to produce a result that is slightly nonzero. But when you use the simplification, numerical evaluation of $y^2 - 6 y + 8 - |y^2 - 6 y + 8|$ will produce an exact $0$ result. $\endgroup$ – Robert Israel Sep 26 '16 at 21:24

In Mathematica, the command

ContourPlot[Log[(y - x)^2 + (y^2 - 6 y + 8 + 
   Sqrt[y^4 - 12 y^3 + 52 y^2 - 96 y + 64])^2],
   {x, 1, 5}, {y, 1, 5}, PlotPoints -> 50, MaxRecursion -> 5]

produces this output:

enter image description here

Changing ContourPlot to Plot3D gives

enter image description here

ContourPlot on the original relation will not work well even if we don't explicitly try to obtain the level set at $f(x,y) = 0$:

ContourPlot[(y - x)^2 + (y^2 - 6 y + 8 + 
    Sqrt[y^4 - 12 y^3 + 52 y^2 - 96 y + 64])^2, 
    {x, 1, 5}, {y, 1, 5}, PlotPoints -> 50, MaxRecursion -> 5, Contours -> 20]


enter image description here

This suggests there is something going on, but a more sensitive step size in the level sets is needed. Clearly, a major part of the problem is not just the fact that $f(x,y) \ge 0$, but also that in the region outside $[2,4]^2$, the function increases quite rapidly. Together, these properties of the function conspire to prevent the detection of the level set.

However, a simple command

Reduce[(y - x)^2 + (y^2 - 6 y + 8 + 
  Sqrt[y^4 - 12 y^3 + 52 y^2 - 96 y + 64])^2 == 0, {x, y}, Reals]

gives the output

2 <= x <= 4 && y == x

which still fails to plot in ContourPlot, but is easily plotted with RegionPlot:

RegionPlot[2 <= x <= 4 && y == x, {x, 1, 5}, {y, 1, 5}]


enter image description here

This is because RegionPlot uses different algorithms.

  • $\begingroup$ Strangely enough does your "reduce" query not produce the output you told it would, it only produces two x=... outputs, while the query as described in the original question does produce the output "reduce" should give. $\endgroup$ – The PJ Sep 26 '16 at 21:44

Since $a^2 + b^2 \geq 0 \ \forall\ a,b \in \mathbb{R} $, $a^2 + b^2 =0$ when $a = b = 0$. You get this when $x = y$ and $y^2 - 6y+8 + |y^2 - 6y+8|=0.$

Update: I think it's mainly because they don't simplify square root of a square. If you change your sqrt to $|y^2 - 6y+8|$, you get this new plot in WolframAlpha

  • $\begingroup$ I believe his question is regarding why this solution set isn't graphed by graphing software. $\endgroup$ – GFauxPas Sep 26 '16 at 20:41
  • $\begingroup$ GFauxPas is right, the question is why it isn't graphed, not how it works. Thanks for the answer anyways. $\endgroup$ – The PJ Sep 26 '16 at 20:44
  • $\begingroup$ @GFauxPas Ah I see. Thank you for clarifying! I'm not sure about wolframalpha, but desmos.com/calculator shows the correct graph. $\endgroup$ – trang1618 Sep 26 '16 at 20:47
  • $\begingroup$ @grixor Thanks, now I can plot the formulas to play with them, I was unaware of the existence of Desmos, but now I am. The answer from Robert Israel explains why it doesn't work with wolfram alpha. $\endgroup$ – The PJ Sep 26 '16 at 20:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.