MathGroup Archive 2003

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

Search the Archive

Re: Minimization

  • To: mathgroup at smc.vnet.net
  • Subject: [mg42271] Re: [mg42256] Minimization
  • From: Selwyn Hollis <selwynh at earthlink.net>
  • Date: Thu, 26 Jun 2003 05:36:25 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Here's my candidate:

nClosest[pts_, target_, n_] :=
  With[{dists = (#.#)^(1/2)& /@ ((#-target &) /@ pts)},
   pts[[Flatten[Position[dists,#]& /@ Sort[dists][[Range[n]]] ] ]] ]

pts = Table[{Random[],Random[],Random[]}, {10000}];

nClosest[pts, {0, 1, 0}, 5] // Timing

    {0.28 Second, {{0.0277056, 0.986619, 0.0229535},
    {0.0640714, 0.962999, 0.0156905}, {0.0742468, 0.980008, 0.0194012},
    {0.0196177, 0.918258, 0.0146842}, {0.0438055, 0.98697, 0.0753717}}}

-----
Selwyn Hollis
http://www.math.armstrong.edu/faculty/hollis


On Wednesday, June 25, 2003, at 01:53  AM, Moranresearch at aol.com wrote:

>
> I have a list of points l1= (xi,yi, zi) and a target point (x0,y0,z0) 
> how
> would I efficiently find the 5 points in l1 closest to, ie with the 
> smallest
> Euclidian disance to, the target point? Thank you.
> John
>
>


  • Prev by Date: Re: Minimization
  • Next by Date: Re: 2D recursion relation
  • Previous by thread: Re: Minimization
  • Next by thread: Re: Re: Minimization