Re: Re: Re: What to do in v. 6 in place of
- To: mathgroup at smc.vnet.net
- Subject: [mg76821] Re: [mg76767] Re: [mg76728] Re: What to do in v. 6 in place of
- From: Murray Eisenberg <murray at math.umass.edu>
- Date: Mon, 28 May 2007 00:56:03 -0400 (EDT)
- Organization: Mathematics & Statistics, Univ. of Mass./Amherst
- References: <200705270850.EAA03202@smc.vnet.net>
- Reply-to: murray at math.umass.edu
Imagine trying to introduce a beginner in Mathematica to plotting a
"simple" function like the real cube-root by means of that code! Enough
to put them off Mathematica for life.
Bob Hanlon wrote:
> 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
>>
>
>
--
Murray Eisenberg murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower phone 413 549-1020 (H)
University of Massachusetts 413 545-2859 (W)
710 North Pleasant Street fax 413 545-1801
Amherst, MA 01003-9305
- References:
- Re: Re: What to do in v. 6 in place of
- From: Bob Hanlon <hanlonr@cox.net>
- Re: Re: What to do in v. 6 in place of