MathGroup Archive 1999

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Plotting questions

  • To: mathgroup at
  • Subject: [mg19979] Re: [mg19949] Plotting questions
  • From: "David Park" <djmp at>
  • Date: Thu, 23 Sep 1999 23:26:25 -0400
  • Sender: owner-wri-mathgroup at

Michael Chang wrote:

>Hi again!
>Sorry, but in my rush, 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:
>where 0.5<g<1 (say).
>I want to simulate this function x(t) for varying t ... specifically,
>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*
>which is what I really want).
>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 ...
>Sorry for any confusion!
>Thanks again!


There is a package at my web site called DrawingCube which contains a routine for
doing what you wish. I will show here the specific results of the routine and a
plotting statement for your function which you can plot without the package.

x[t_, g_] = (10^(1 - g) - (1 - g)*t)^(1/(1 - g));

This is a 3D parametric representation of your function which is necessary to produce
the plot you wish:

p[t_, g_] = {t, g, x[t, g]}
{t, g, (10^(1 - g) - (1 - g)*t)^(1/(1 - g))}

This is the routine in my package:


"IteratorSubstitution[expr, {var, lim1, lim2}, newvar:w] is used to transform \
a plot range iterator, which may contain variable limits, to one which \
contains constant limits. The plotting expr is transformed to the new \
variable and returned along with the new iterator."

Using this on the parametric representation:

IteratorSubstitution[{t, g, (10^(1 - g) - (1 - g)*t)^(1/(1 - g))},
  {t, 0, 10^(1 - g)/(1 - g)}]
{{-((10^(1 - g)*w)/(-1 + g)), g, (-10^(1 - g)*(-1 + w))^
    (1/(1 - g))}, {w, 0, 1}}

We can now plot the new parametric representation using g and w as the plotting
We actually need a slightly restricted range of g to obtain a nice looking plot.

ParametricPlot3D[{-((10^(1 - g)*w)/(-1 + g)), g,
    (-10^(1 - g)*(-1 + w))^(1/(1 - g))}, {g, 0.5, 0.95}, {w, 0, 1},
   BoxRatios -> {1, 1, 1}, AxesLabel -> {t, g, "x[t,g]"},
   AxesEdge -> {{-1, -1}, {1, -1}, {-1, -1}},
   FaceGrids -> {{0, 0, -1}, {-1, 0, 0}, {0, 1, 0}}];

Try this out and see if it is what you intended.

David Park
djmp at

  • Prev by Date: UnitStep and Simplify
  • Next by Date: Mathematica Animations into Screen Savers
  • Previous by thread: Plotting questions
  • Next by thread: Re: Plotting questions