Random offsets in Plot &aliasing
- To: mathgroup at smc.vnet.net
- Subject: [mg8045] Random offsets in Plot &aliasing
- From: Allan Hayes <hay at haystack.demon.co.uk>
- Date: Sat, 2 Aug 1997 22:32:53 -0400
- Sender: owner-wri-mathgroup at wolfram.com
Paul Abbott <paul at physics.uwa.edu.au> in [mg7995] Re: Minima Gives the following function for finding all roots in an interval Needs["Utilities`FilterOptions`"] RootsInRange[d_, {l_, lmin_, lmax_}, opts___] := Module[{s, p, x, f = Function[l, Evaluate[d]]}, s = Plot[f[l], {l, lmin, lmax}, Compiled -> False, Evaluate[FilterOptions[Plot, opts]]]; p = Cases[s, Line[{x__}] -> x, Infinity]; p = Map[First, Select[Split[p, Sign[Last[#2]] == -Sign[Last[#1]] & ], Length[#1] == 2 & ] Since the initial number of sample points for Plot is 25 it looks as if this should fail for RootsInRange[x, {x, -12, 12}] since we would expect that the first p would be something like {{-12,-12},.....,{-1,-1},{0,0},{1,1},.....{12,12}} and the second p would therefor be { }. But this is not so. This is because a new feature of 3.0 is that a small random offsets are given to the sample points. We can look at the actual sample points, sp, use as follows sp = {}; Plot[AppendTo[sp, x]; x, {x, -12, 12}]; sp {-12.,-11.0264,-9.96459,-8.96738,-8.00836,-6.98754,-6.00491,-4.96049,-3.95426,-2.98622,-1.95638,-0.964744,-0.0112999,1.00395,1.981,3.01985,4.02051,4.98297,6.00724,6.9933,8.04118,9.05085,10.0223,11.0556,12.} The distances between successive sample points are -Partition[sp, 2, 1, Subtract] {0.973607,1.0618,0.997214,0.959017,1.02082,0.982624,1.04443,1.00623,0.968034,1.02984,0.991641,0.953444,1.01525,0.977051,1.03885,1.00066,0.962461,1.02426,0.986068,1.04787,1.00967,0.971478,1.03328,0.944389} The reason for this is to avoid *aliasing* For example, without it Plot[Sin[24 x], {x,0,Pi}] would be along the x-axis, since Sin would be zero at every sample point.Compare: Table[Sin[24 x], {x,0,Pi, Pi/24}] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} The same technique seems to be used with ParametricPlot - maybe also with other plotting functions. Allan Hayes hay at haystack.demon.co.uk http://www.haystack.demon.co.uk/ voice:+44 (0)116 2714198 fax: +44 (0)116 2718642 Leicester, UK