MathGroup Archive 2000

[Date Index] [Thread Index] [Author Index]

Search the Archive

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




  • Prev by Date: Re: Use of Miscellaneous`RealOnly` Package
  • Next by Date: Re: Point inside a plygon?
  • Previous by thread: Re: Random spherical troubles
  • Next by thread: When ploting a differential equation, sigularities cause big ugly vertical lines on the graph - how can I get rid of them? By some magic mathematica incantaion?