littlemathteacher wrote:
> Dear supporters,
> 
> again thanks for the great support.
> 
> One thing I am missing (or simply not understanding) is 3dplotting
> without automatically scaled up range of the function value.
> 
> (This is just my first example at hand and surely not a good one:
> y, x = var ('x,y')
> plot3d(lambda x,y : (bessel_Y(y,x,"scipy",53)).real(), (-0.002,0.002),
> (-1,1))
> 
> #Put some broader x-range in to see what I mean.)
> 
> 
> Please excuse this sloppy written description: Jmol and Sage seem to
> try to plot the whole graph even at singularities, then "give up" (at
> a level I don't know how to fix) but leave the picture with the scaled
> up value range.
> 
> Use this link to see what I mean would be useful sometimes (and please
> do not blame me because my plot above is another thing as seen there -
> I am just playing around and I just took the first example at hand):
> 
> http://mathworld.wolfram.com/ModifiedBesselFunctionoftheSecondKind.html
> 
> There the value range is simply cut at some point. In the german
> wikipedia article on the exponential function it is done in a similar
> way by Maple and the whole picture is scaled equally in all
> dimensions:
> 
> http://de.wikipedia.org/w/index.php?title=Datei:Exp_re.png&filetimestamp=20050215210532
> 
> (Put the two lines together without intermedate space.)
> 
> Is there a way to limit the value range in a 3dplot other than
> limiting the input range (I want to see, say, the region around the
> singularity)?

Here is a way to do what you want with a new very powerful feature in 4.0:

implicit_plot3d(lambda x,y,z: z-(bessel_Y(y,x,"scipy",53)).real(), ( 
-0.002,0.002),( -1,1), (-100,100))

See http://www.sagenb.org/home/pub/347/

Using implicit_plot3d is a lot slower than I expected to do this, though.

When http://trac.sagemath.org/sage_trac/ticket/5514 is finished and 
merged, you should be able to do something like:

y, x = var ('x,y')
plot3d(lambda x,y : (bessel_Y(y,x,"scipy",53)).real(), (-0.002,0.002), 
(-1,1), region=lambda x,y,z: z<20 and z>-20)

or even

y, x = var ('x,y')
my_plot = plot3d(lambda x,y : (bessel_Y(y,x,"scipy",53)).real(), 
(-0.002,0.002), (-1,1))
my_plot.clip(lambda x,y,z: z<20 and z>-20)

I agree that there should also be an easy way to do this without the 
functionality in #5514 and without having to resort to implicit_plot3d.

Jason

--
Jason Grout



--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to