https://github.com/cran/pracma
Tip revision: c1688b374d201c13fb40b4dda2d2a89e34b94ec6 authored by Hans W. Borchers on 23 January 2021, 09:10:02 UTC
version 2.3.3
version 2.3.3
Tip revision: c1688b3
geo_median.Rd
\name{geo_median}
\alias{geo_median}
\title{
Geometric Median
}
\description{
Compute the ``geometric median'' of points in n-dimensional space, that is
the point with the least sum of (Euclidean) distances to all these points.
}
\usage{
geo_median(P, tol = 1e-07, maxiter = 200)
}
\arguments{
\item{P}{matrix of points, \code{x_i}-coordinates in the ith column.}
\item{tol}{relative tolerance.}
\item{maxiter}{maximum number of iterations.}
}
\details{
The task is solved applying an iterative process, known as Weiszfeld's
algorithm. The solution is unique whenever the points are not collinear.
If the dimension is 1 (one column), the median will be returned.
}
\value{
Returns a list with components \code{p} the coordinates of the solution
point, \code{d} the sum of distances to all the sample points, \code{reltol}
the relative tolerance of the iterative process, and \code{niter} the
number of iterations.
}
\references{
See Wikipedia's entry on ``Geometric median''.
}
\note{
This is also known as the ``1-median problem'' and can be generalized to the
``k-median problem'' for k cluster centers;
see \code{kcca} in the `flexclust' package.
}
\seealso{
\code{\link{L1linreg}}
}
\examples{
# Generate 100 points on the unit sphere in the 10-dim. space
set.seed(1001)
P <- rands(n=100, N=9)
( sol <- geo_median(P) )
# $p
# [1] -0.009481361 -0.007643410 -0.001252910 0.006437703 -0.019982885 -0.045337987
# [7] 0.036249563 0.003232175 0.035040592 0.046713023
# $d
# [1] 99.6638
# $reltol
# [1] 3.069063e-08
# $niter
# [1] 10
}
\keyword{ optimize }