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}] >