Re: Re: What to do in v. 6 in place of

*To*: mathgroup at smc.vnet.net*Subject*: [mg76767] Re: [mg76728] Re: What to do in v. 6 in place of*From*: Bob Hanlon <hanlonr at cox.net>*Date*: Sun, 27 May 2007 04:50:00 -0400 (EDT)*Reply-to*: hanlonr at cox.net

This works for simple cases such as your examples. Clear[realPlot]; realPlot[expr_, {x_Symbol, xmin_?NumericQ, xmax_?NumericQ}, opts___] := Module[{d, e, f, y}, e = Flatten@{expr}; d = (Denominator@PowerExpand@Log[x, #] & /@ e); f = y /. (ToRules@ Reduce[y^#[[2]] == PowerExpand[#[[1]]^#[[2]]], y, Reals] & /@ Thread[{e, d}]); Plot[f, {x, xmin, xmax}, opts]]; Grid[{{realPlot[x^(1/3), {x, -8, 8}], realPlot[x^(3/5), {x, -8, 8}]}, {realPlot[{x^(1/3), x^(3/5)}, {x, -8, 8}]}}] Bob Hanlon ---- Helen Read <read at math.uvm.edu> wrote: > David W.Cantrell wrote: > > Helen Read <read at math.uvm.edu> wrote: > >> Suppose my calculus students want to plot x^(1/3), for say {x,-8,8}. The > >> problem, of course, is that Mathematica returns complex roots for x<0. > >> In past versions of Mathematica, we could get the desired real roots > >> (and plot the function) by loading the package Miscellaneous`RealOnly. I > >> guess we can still do it that way (and ignore the "obsolete package" > >> message), but is there a suggested way of doing what we need in 6.0? > > > > Perhaps have them define their own > > > > realCubeRoot[x_]:= Sign[x] Abs[x]^(1/3) > > > > which plots as desired, of course. > > Well, yes, but it's kind of a pain to have to define their own root > functions this way on an individual basis. (Not to mention, it > completely hoses the derivative. Try realCubeRoot'[x] or > realCubeRoot'[-8] and see what you get.) > > I was hoping for a more convenient way to do this in Mathematica 6.0. > Surely it *knows* the real nth roots of x for n odd and x<0. It would be > nice to be able to define f[x_]=x^(1/3) or x^(3/5) or whatever and just > set some option to make it return the real value for x<0. > > -- > Helen Read > University of Vermont >

**Follow-Ups**:**Re: Re: Re: What to do in v. 6 in place of***From:*Murray Eisenberg <murray@math.umass.edu>