[Date Index]
[Thread Index]
[Author Index]
Re: Re: Normal distribtion
*To*: mathgroup at smc.vnet.net
*Subject*: [mg49298] Re: [mg49281] Re: Normal distribtion
*From*: DrBob <drbob at bigfoot.com>
*Date*: Mon, 12 Jul 2004 02:11:40 -0400 (EDT)
*References*: <7228735a.0407050100.4695fc68@posting.google.com> <QaednZQbSYcwpnTdRVn-vA@comcast.com> <ccdlms$sd5$1@smc.vnet.net> <200407110616.CAA16702@smc.vnet.net>
*Sender*: owner-wri-mathgroup at wolfram.com
> I was trying to get a random over the whole number line
Nobody doubts the numbers are random; they're a function of Random[], after all. But ANY function will do, if that's all you want. If you want the range to include the whole line, uncountably many functions will do that, too.
Your ListPlots indicated the variates are uncorrelated (white noise), but they say nothing about the distribution. Once again, ANY function of Random[] will give uncorrelated variates (to the extent that Random[] itself is properly uncorrelated).
So... what you did successfully (generate random, uncorrelated variates) is trivial. Random[] does the hard part for you.
If you want the result to be Gaussian (same as Normal), and that's what your posts indicated (look at the subject of THIS e-mail, for instance), there's only ONE function of Random[] that will do (up to choices of scale, location, and a symmetric "flip")--namely, the inverse of the Normal CDF. Your function doesn't do it.
So... what you failed to do is generate normal/Gaussian variates.
You also failed to carry on your half of a civil conversation.
> I, then, use that solved result for x from the for
> a value to get an amplitude from a Gaussian distribution.
No. Not Gaussian. Cauchy (Lorentzian).
> That my result behaves in a more Lorentzian fashion as Drbob and Ray
> Kooperman continue to point out is something I'm investigating.
Not "more Lorentzian". It IS Lorentzian.
Either a distribution IS normal, or it isn't. It IS Lorentzian, or it isn't. It's not a matter of degree.
Bobby
On Sun, 11 Jul 2004 02:16:15 -0400 (EDT), Roger L. Bagula <rlbtftn at netscape.net> wrote:
> I'll restate it again:
> I was trying to get a random over the whole number line
> by taking a projective line.
> 2*x/(1+xup2)=Sin[2*Pi*y]
> (1-xup2)/(1+xup2)=Cos[2*Pi*y]
> (Using up for "^" as it still isn't coming through as Ascii)
> y has domain [0,1]
> x has domain [-Infinity, Infinity]
> I, then, use that solved result for x from the for
> a value to get an amplitude from a Gaussian distribution.
> I only added the Sign[2*Random-1] so it would give equal
> on both sides of zero.
> In most cases a Gaussian is used as symmetrical about a mean/ median or
> zero.
> That my result behaves in a more Lorentzian fashion as Drbob and Ray
> Kooperman continue to point out is something I'm investigating.
> I appreciate the time they have both spent on this.
> It is my hope they don't turn around and publish about it.
> I have a lot of detractors, but in most cases they tend to admit
> ,grudgingly, that my result is new and worth while.
>
> I've become very stoic about this over the years
> and many results.
>
>
> Roger L. Bagula wrote:
>> I found a better faster way to get a Gaussian/ white noise:
>> In Mathematica notebook style:
>>
>> x[a_]=(1+Sqrt[1-a^2))/a
>> Noise=Table[Exp[-x[Sin[2*Pi*Random[]]]^2/2/Sqrt[2*Pi],{n,1,500}]
>> ListPlot[noise,PlotRange--> All,PlotJoined->True]
>>
>> It is a projective line ( circle to line random taken as the basic for a
>> normal distribution's amplitude.) based algorithm.
>> Since it doesn't use either the polar method with has a choice loop or
>> the older 12 random method, the random operation has only to be used
>> once for each noise value.
>> It is faster by several factors and can be translated to almost any
>> language.
>> George Marsaglia wrote:
>>
>>> "philou" <philou2000 at msn.com> wrote in message
>>> news:7228735a.0407050100.4695fc68 at posting.google.com...
>>>
>>>
>>>> Hi,
>>>> I heard that it was possible to get a realisation of a normal
>>>> distribution from two realisations of an uniform distribution. Can
>>>> someone explain me how to do that ? What transformations should I do ?
>>>
>>>
>>> Your hazy reference may have been based on my polar method for
>>> generating a pair of independent standard normal variates X and Y:
>>>
>>> If U and V are independent uniform in (-1,1), conditioned by
>>>
>>> S = U^2+V^2 < 1
>>>
>>> then S is uniform in (0,1) and independent of the point
>>> (U/sqrt(S),V/sqrt(S)), which is uniform on the unit circumference.
>>>
>>> Thus if R=sqrt(-2*ln(S)/S) then
>>> X=R*U
>>> Y=R*V
>>> are a pair independent standard normal variates, obtained by
>>> projecting that uniform point on the unit circumference
>>> a random distance with a root-chi-square-2 distribution,
>>> exploiting the uniformity of S and its independence of
>>> the random point on the circumference.
>>>
>>> Of course one has to discard uniform (-1,1) pairs U,V
>>> for which S=U^2+V^2>1, so each normal variate is produced
>>> at an average cost of 4/pi=1.27 uniform variates.
>>>
>>> This method is sometimes improperly attributed to Box and Muller,
>>> who pointed out that pairs of normal variates could be generated as
>>> rho*cos(theta), rho*sin(theta) with rho root-chisquare-2 , sqrt(-2*ln(U)),
>>> and theta uniform in (0,2pi), a result we owe to Laplace, who showed us
>>> how to find the infinite integral of exp(-x^2) by getting its square
>>> as the integral of exp(-x^2-y^2), then transforming to polar coordinates.
>>>
>>> For a method faster than my polar method, requiring about 1.01 uniform
>>> variates per normal variate, try the ziggurat method of
>>> Marsaglia and Tsang, in volume 5, Journal of Statistical Software:
>>> http://www.jstatsoft.org/index.php?vol=5
>>>
>>> George Marsaglia
>>>
>>>
>>
>>
>
>
--
DrBob at bigfoot.com
www.eclecticdreams.net
Prev by Date:
**Re: Getting rid of ProductLog**
Next by Date:
**a noise with a better histogram**
Previous by thread:
**Re: Normal distribtion**
Next by thread:
**Re: Normal distribtion**
| |