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 *************************************************