Re: Random spherical troubles
- To: mathgroup at smc.vnet.net
- Subject: [mg25315] Re: Random spherical troubles
- From: Yossi Lonke <jrl16 at po.cwru.edu>
- Date: Tue, 19 Sep 2000 03:45:45 -0400 (EDT)
- Organization: Dept. Mathematics, CWRU
- References: <8pkl8u$m80@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi Barbara
A normalized 0-1 Gaussian vector would be "correctly" distributed over
the sphere.
So:
Needs["Statistics`NormalDistribution`"]
Needs["LinearAlgebra`Orthogonalization`"]
unitRandomVector[n_]:=Normalize[Table[Random[NormalDistribution[0,1]],{n}]]
Gives a random unit vector on the sphere in R^n.
There are ways to do it in 3,4 dimensions. See
http://mathworld.wolfram.com/SpherePointPicking.html
Yossi Lonke
Barbara DaVinci wrote:
> Hi MathGrouppisti
>
> This time, my problem is to generate a set of
> directions randomly
> distributed over the whole solid angle.
>
> This simple approach is incorrect (spherical
> coordinates are assumed) :
>
> Table[{Pi Random[], 2 Pi Random[]} , {100}]
>
> because this way we obtain a set of point uniformly
> distributed
> over the [0 Pi] x [0 2Pi] rectangle NOT over a
> spherical surface :-(
>
> If you try doing so and plot the points {1,
> random_theta , random_phi}
> you will see them gathering around the poles because
> that simple
> transformation from rectangle to sphere isn't
> "area-preserving" .
>
> Such a set is involved in a simulation in statistical
> mechanics ...
> and I can't get out this trouble.
>
> May be mapping [0 Pi] x [0 2Pi] in itself , using an
> suitable
> "non-identity" transformation, can spread points in a
> way balancing
> the poles clustering effect.
>
>
> ====================================================================
>
> While I was brooding over that, an intuition flashed
> trought my mind :
> since spherical to cartesian transformation is
>
> x = rho Sin[ theta ] Cos[ phi ]
> y = rho Sin[ theta ] Sin[ phi ]
> z = rho Cos[ theta ]
>
> perhaps the right quantities to randomly spread
> around are Cos[ theta ] and
> Cos[ phi ] rather than theta and phi for itself. Give
> a glance at this :
>
> Table[{
> ArcCos[ Random[] ],
> ArcCos[ Random[] Sign[ 0.5 - Random[] ]
> } , {100}]
>
> Do you think it is close to the right ? Do you see a
> better way ?
> Have you just done the job in the past ? Should I
> reinvent the wheel ?
>
> ====================================================================
>
> I thanks you all for prior replies and in advance
> this time.
>
> Distinti Saluti
> (read : "Faithfully yours")
>
> Barbara Da Vinci
> barbara_79_f at yahoo.it
>
>
> ______________________________________________________________________
> Do You Yahoo!?
> Il tuo indirizzo gratis e per sempre @yahoo.it su http://mail.yahoo.it
--
*************************************************
Dr. Yossi Lonke
Mathematics Department
Case Western Reserve University
10900 Euclid Avenue
Cleveland, Ohio 44106
216 368-5423
http://www.cwru.edu/artsci/math/lonke/home.html
*************************************************