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