[Date Index]
[Thread Index]
[Author Index]
Re: PlotRange Trouble
*To*: mathgroup at smc.vnet.net
*Subject*: [mg90423] Re: PlotRange Trouble
*From*: "Jean-Marc Gulliet" <jeanmarc.gulliet at gmail.com>
*Date*: Wed, 9 Jul 2008 04:52:13 -0400 (EDT)
*References*: <g4vk60$9o3$1@smc.vnet.net> <487365C3.6050407@gmail.com>
On Tue, Jul 8, 2008 at 4:44 PM, Aaron Fude <aaronfude at gmail.com> wrote:
>
> On Tue, Jul 8, 2008 at 9:04 AM, Jean-Marc Gulliet
> <jeanmarc.gulliet at gmail.com> wrote:
>>
>> Aaron Fude wrote:
>>
>>> I may be wondering why I need this, but I do:
>>>
>>> ParametricPlot[{10^-600 z, z}, {z, 0, 100},
>>> PlotRange -> {{0, 10^-100}, {0, 100}}, AspectRatio -> 1]
>>>
>>> works perfectly, but
>>>
>>> ParametricPlot[{10^-600 z, z}, {z, 0, 100},
>>> PlotRange -> {{0, 10^-600}, {0, 100}}, AspectRatio -> 1]
>>>
>>> fails. What gives?
>>
>> The following expressions work "perfectly", since they do not produce any
>> error messages.
>>
>> ParametricPlot[{10^-600 z, z}, {z, 0, 100},
>> PlotRange -> {{0, 10.^-600}, {0, 100}}, AspectRatio -> 1]
>>
>> ParametricPlot[{10^-600 z, z}, {z, 0, 100},
>> PlotRange -> {All, {0, 100}}, AspectRatio -> 1]
>
>
> Thanks! Well, But that's a case where I would like to find out what's wrong
> with my way rather than how to fix it. What's wrong with 10^-600. The fact
> that it is smaller than the smallest double?
Correct.
You have to keep in mind two things.
First, plotting functions use only machine-precision numbers
internally. In other words, though one can writes numeric arguments as
infinite-precision (exact) numbers, these values are going to be
converted into machine-size numbers. If some arguments are out of the
range of machine-precision numbers, Mathematica complains.
Second, writting 10^-600 (infinite precision) as 10.^-600 does not
make it machine-size but *arbitrary-precision* number. Why it is so?
Because Mathematica automatically converts non-infinite-precision
numbers smaller than $MinMachineNumber into arbitrary-precision
numbers.
In[1]:= $MinMachineNumber
Out[1]= 2.22507*10^-308
In[2]:= 10.^-600
Out[2]= 9.99999999999999*10^-601
In[3]:= % // Precision
Out[3]= 15.6536
In[4]:= $MinMachineNumber // Precision
Out[4]= MachinePrecision
In[5]:= $MachinePrecision
Out[5]= 15.9546
Notice that, though 10.^-600 as a precision very close to that of a
machine-size number, it is an arbitrary-precison number and not a
hardware-precision number.
So, when you write PlotRange -> {{0, 10^-600}, {0, 100}}, you are
asking the plotting function to draw a graph using an x-axis which is
indistinguishable from the closed interval [0, 0] :-)
HTH,
--
Jean-Marc
Prev by Date:
**Re: ReplaceAll**
Next by Date:
**Re: Display[ ] renewed?**
Previous by thread:
**Re: PlotRange Trouble**
Next by thread:
**Re: PlotRange Trouble**
| |