Re: For a variety of plotting experiences, maybe bugs?
- To: mathgroup at smc.vnet.net
- Subject: [mg124116] Re: [mg124074] For a variety of plotting experiences, maybe bugs?
- From: Richard Fateman <fateman at eecs.berkeley.edu>
- Date: Mon, 9 Jan 2012 03:20:58 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <je3vti$eeh$1@smc.vnet.net> <je6e5h$q7b$1@smc.vnet.net> <24475751.93762.1326015447306.JavaMail.root@m06> <006601ccce2f$c71c7ee0$55557ca0$@comcast.net>
David:
Thanks. Your suggestions would be useful if I were interested in exploring
the cosine function. However, I was interested in exploring
Cos[MachinePrecisionNumbers].
(actually, some other numerical functions. I just used cos to simplify
the example).
My interest was whether the numerical subroutine reflected the
mathematical functions and
were appropriately monotonic in small ranges. Looking "microscopically"
one expects to see some kind of step function,
but if poorly implemented there may be some reversals-- i.e. local
extrema-- that are not
mathematically justified, but are effects of the implemented algorithm,
roundoff, etc.
I found that Mathematica refused to plot the most straightforward
versions of these
investigations.
As far as why the powers of 2 instead of 10, the fraction part of a
machine float x has, as one
unit in the last place, one part in 2^(52) of x. I find 2^-52 to
be much nicer to look at than
2.220446049250313*^-16
as well as more accurate.
On 1/8/2012 10:03 AM, David Park wrote:
> Small domains and small intervals are often treated masochistically. And why
> the powers of 2 instead of 10?
>
> This is the easy way to make the plots. Use a reasonable domain and range
> and enough WorkingPrecision.
>
> With[{n = 140},
> Plot[(Cos[x 10^-n + 1] - Cos[1]) 10^n, {x, 0, 1},
> WorkingPrecision -> n + 3,
> Frame -> True,
> FrameLabel -> {(y - 1) 10.^n, 10.^n (Cos[y] - Cos[1])}]
> ]
>
> Or use a series expansion:
>
> Series[10^n (Cos[1 + x 10^-n] - Cos[1]), {x, 0, 2}] // Normal
>
> -2^(-1 - n) 5^-n x^2 Cos[1] - x Sin[1]
>
> and then use MachinePrecision:
>
> With[{n = 145},
> Plot[-2^(-1 - n) 5^-n x^2 Cos[1] - x Sin[1], {x, 0, 1},
> WorkingPrecision -> MachinePrecision,
> Frame -> True,
> FrameLabel -> {(y - 1) 10.^n, 10.^n (Cos[y] - Cos[1])}]
> ]
>
> That is the way they do it in technical journals all the time.
>
>
> David Park
> djmpark at comcast.net
> http://home.comcast.net/~djmpark/index.html
>
>
>
>
>
>
> From: Richard Fateman [mailto:fateman at cs.berkeley.edu]
>
>
> try this (I did it on version 7...)
> Table[Plot[Cos[x], {x, 1 , 1 + 2.0^-i}], {i, 40, 45}]
>