finding the shape of the higher order equations

57 Views Asked by At

Is there any way to find the shape of the higher-order equation like this one? I am more interested in making an initial guess about the shape (fast prediction) and then the process to find it. Any process or tool would be helpful.

$f(x) = x^2z^3 + 9/80 * y^2z^3 - (x^2 + 9/4 * y^2 + z^2 - 1)^3 $

I tried to plot it using wolframalpha but I am not succeeded.

1

There are 1 best solutions below

1
On BEST ANSWER

You have a function $$f(x, y, z) = x^2 z^3 + \frac{9}{80} y^2 z^3 - (x^2 + \frac{9}{4} y^2 + z^2 - 1)^3$$ This describes an implicit surface $f(x, y, z) = 0$. There are a number of applications that can plot implicit surfaces (or more generally, isosurfaces $f(x, y, z) = c$).

In this particular case, $$\begin{aligned} f(x,y,z) & = 0 \\ x^2 z^3 + \frac{9}{80} y^2 z^3 - (x^2 + \frac{9}{4} y^2 + z^2 - 1)^3 & = 0 \\ z^3 ( x^2 + \frac{9}{80} y^2 ) & = (x^2 + \frac{9}{4} y^2 + z^2 - 1)^3 \\ z ( x^2 + \frac{9}{80} y^2 )^{1/3} & = x^2 + \frac{9}{4} y^2 + z^2 - 1 \\ z^2 - z ( x^2 + \frac{9}{80} y^2 )^{1/3} + 1 - x^2 - \frac{9}{4} y^2 & = 0 \\ \end{aligned}$$ which is a quadratic function in $z$, whose solution is $$\begin{aligned} z & = \left(\frac{9 y^2 + 80 x^2}{640}\right)^\frac{1}{3} \pm \frac{1}{640^\frac{1}{3}}\sqrt{ (9 y^2 + 80 x^2)^\frac{2}{3} - 2160^\frac{2}{3} y^2 - 640^\frac{2}{3} x^2 + 640^\frac{2}{3} } \\ ~ & = \frac{1}{640^\frac{1}{3}} \left( (9 y^2 + 80 x^2)^\frac{1}{3} \pm \sqrt{ (9 y^2 + 80 x^2)^\frac{2}{3} - 2160^\frac{2}{3} y^2 - 640^\frac{2}{3} x^2 + 640^\frac{2}{3} } \right) \\ \end{aligned}$$ The shape is a 3D heart. The $+$ side contains the two bumps on top, and the $-$ side the conical bottom part.

Personally, I would use GNU Octave for this. It is free, and available for Windows, macOS, Linux, and BSDs.

function value = f (x, y, z);
    value = x**2 * z**3 + y**2 * z**3 * 9/80 - ( x**2 + y**2 * 9/4 + z**2 - 1)**3;
endfunction;
xrange = linspace(-1.6, +1.6, 64);
yrange = linspace(-1.6, +1.6, 64);
zrange = linspace(-1.6, +1.6, 64);
[x, y, z] = meshgrid(xrange, yrange, zrange);
v = arrayfun(@f, x, y, z); isosurface(v, 0); pbaspect([1, 1, 1]);