Hi,

that's true... I have been playing with maxima.

I define the function

F(x,y,z):=38244.74787*%pi*(x^2+y^2+z^2)^0.125

+1615.975261*%pi*z^2/(x^2+y^2+z^2)^0.875

+(-1292.78021)*%pi*z^2/((x^2+y^2+z^2)^0.875*(1+y^2/x^2))

+1292.78021*%pi*(x^2+y^2+z^2)^0.125/(1+y^2/x^2);

then I factor it

factor(F(x,y,z)=0);

Multiply it by the denominator

% * 32365900000*(z^2+y^2+x^2)^(7/8);

divide by pi

% / %pi;

So that F(x,y,z)=0 is equivalent to

1290128178785633*z^2+1237825685085633*y^2+1279667680084472*x^2=0

The only real solution is 0,0,0,

But then I try to define a cube centered at the origin which contains

at least a part of the surface:

load(draw);

n: 10$

draw3d(

enhanced3d = true,

implicit(

F(x,y,z) = k,

x,-n,n,y,-n,n,z,-n,n));

Since it's taking huge values even for small x,y,z, one has to use

either very small n or very large k but even in that case I get

draw3d (implicit): non real value

How could I check the same in matplotlib?

Am I missing something? Maybe this is a bug in maxima...

Any help will be appreciated!

## ···

On Tue, Jan 22, 2013 at 3:29 PM, Benjamin Root <ben.root@...1304...> wrote:

On Mon, Jan 21, 2013 at 8:06 PM, Pau <vim.unix@...982...> wrote:

Hi,

I am somehow new to matplotlib and I am trying to plot this function of x

,y ,z

F(x,y,z)=

38244.74787*Pi*(x^2+y^2+z^2)^.125+1615.975261*Pi*z^2/(x^2+y^2+z^2)^.875-1292.780210*Pi*z^2/((x^2+y^2+z^2)^.875*(1+y^2/x^2))+1292.78*Pi*(x^2+y^2+z^2)^.125/(1+y^2/x^2)

in a similar way as

http://matplotlib.org/mpl_examples/mplot3d/contour3d_demo3.hires.png

The code is

http://matplotlib.org/mpl_examples/mplot3d/contour3d_demo3.py

But I have no idea where to start...

some help would be appreciated...

thanks

The reason you are having difficulty coming up with a way to plot this is

because you have 3 input dimensions, and 1 output dimension that you wish to

plot. If you were to plot this in 3D space, it would have to be done as

F(x,y,z) as a colored "mist" in the domain of (x,y,z). While a "mist" can't

be done in mplot3d, you could plot out scatter points to emulate this. One

could also use contourf3d(..., zdir='z', offset=...) to create slices of the

filled contours, similar to this example:

http://matplotlib.org/examples/mplot3d/contourf3d_demo2.html

Now, if the domain of (x,y,z) can be parameterized as a surface (i.e., a

sphere or a cylinder), then you are looking to do an image of F(x,y,z)

plotted on that surface, which is a little bit difficult, but also do-able

using the plot_surface() function.

Cheers!

Ben Root