Re: PlotRange Trouble
- To: mathgroup at smc.vnet.net
- Subject: [mg90432] Re: PlotRange Trouble
- From: Szabolcs Horvát <szhorvat at gmail.com>
- Date: Wed, 9 Jul 2008 04:53:57 -0400 (EDT)
- References: <g4vk60$9o3$1@smc.vnet.net>
Aaron Fude wrote:
> Hi,
>
> 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?
>
This is because 10^-600 is not representable as a machine number, and
plotting functions only work with machine number. (Yes, Mathematica can handle
much smaller numbers, but then it uses a software implementation of
floating point arithmetic instead of using the built-in arithmetic
instructions of the CPU. A "machine number" is a number in a floating
point format that is supported directly by the CPU, so arithmetic
operations with them can be very fast.)
Read about the hardware representation of floating point numbers here:
http://en.wikipedia.org/wiki/IEEE_754-1985
(This will also answer your previous question about SetPrecision[0.1,50]
and 0.1`50 being different.)
The minimal positive machine number in Mathematica is $MinMachineNumber,
which is ~10^-308 on all CPUs I know.
An unrelated note: There seems to be some trouble at Google, and
today's posts did not show up in Google Groups. Use another news server
to read posts (only Google has trouble, the others work fine), or use
the MG archive on the WRI site: http://forums.wolfram.com/mathgroup/