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/