Re: Plotting questions
- To: mathgroup at smc.vnet.net
- Subject: [mg19969] Re: Plotting questions
- From: Martin Kraus <Martin.Kraus at informatik.uni-stuttgart.de>
- Date: Thu, 23 Sep 1999 23:26:19 -0400
- Organization: Institut fuer Informatik, Universitaet Stuttgart
- References: <7sa448$mb7@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Michael Chang wrote: > > Hi again! > > Sorry, but in my rush, In a rush because of Mathematica? Wolfram would like to here that, I guess. > I sent out the *wrong* example regarding my plotting > difficulties in an earlier email (about 1 hour ago) today. > > I *meant* to use the following example: > > Suppose > > x(t)=(10^(1-g)-(1-g)*t)^(1/(1-g)) > > where 0.5<g<1 (say). > > I want to simulate this function x(t) for varying t ... specifically, > > 0<=t<=10^(1-g)/(1-g) > > so that x(t) remains *real* for all t. For t > t_f := 10^(1-g)/(1-g), > > define x(t)=0. > > What I'd like to do is get a parametric 3d *surface* plot with g, t as two > axis, and x(t) as the third axis. I've struggled with this for a while, > but can't seem to do this using Plot3D (due to the fact that the range of > values for t *cannot* be given as a function of g ... i.e. I must use > > {t,0,10} (say), and *not* > {t,0,10^(1-g)/(1-g)} > > which is what I really want). I think it is a inconsistency of ParametricPlot3D and ListSurfacePlot3D from the Graphics`Graphics3D` package that they both do not allow the first parameter to occure in the second iterator, because Table does allow this construction. Anyway, ListSurfacePlot3D from the Graphics`Graphics3D` package saves us (an example for ListSurfacePlot3D using Java can be found here: http://theorie3.physik.uni-erlangen.de/~mkraus/tutorial/tutorial2_3.html , yep, this is another advertisment of LiveGraphics3D! ;-) << Graphics`Graphics3D` plotPoints = 15; points = Table[ Re[{(10^(1 - g) - (1 - g)*t)^(1/(1 - g)), g, t}], {g, 0.5, 1 - 0.01, (1 - 0.5)/plotPoints}, {t, 0, 10^(1 - g)/(1 - g) - 0.01, 10^(1 - g)/(1 - g)/plotPoints}]; ListSurfacePlot3D[points, PlotRange -> All, BoxRatios -> {1, 1, 1}, AxesLabel -> {x[t, g], g, t}, Axes -> True, FormatType -> TraditionalForm]; > > I suspect that I have to change my definition of x(t) so that it knows > that if t>t_f, then x(t) should be 0, so that I can then use a fixed > plotrange for t, but I don't know how to do this ... just: If[t > tF, 0, (10^(1-g)-(1-g)*t)^(1/(1-g))] as the second argument of If is the else-part you are looking for. > Sorry for any confusion! We are all confused by Mathematica all the time... > > Thanks again! > > Mike!