# riem.seb: Find the Smallest Enclosing Ball In Riemann: Learning with Data on Riemannian Manifolds

## Description

Given N observations X_1, X_2, …, X_N \in \mathcal{M}, find the smallest enclosing ball.

## Usage

 1 riem.seb(riemobj, method = c("aa2013"), ...) 

## Arguments

 riemobj a S3 "riemdata" class for N manifold-valued data. method (case-insensitive) name of the algorithm to be used as follows; "aa2013"Arnaudon and Nielsen (2013). ... extra parameters including maxitermaximum number of iterations to be run (default:50). epstolerance level for stopping criterion (default: 1e-5).

## Value

a named list containing

center

a matrix on \mathcal{M} that minimizes the radius.

the minimal radius with respect to the center.

## References

\insertRef

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 #------------------------------------------------------------------- # Euclidean Example : samples from Standard Normal in R^2 #------------------------------------------------------------------- ## GENERATE 25 OBSERVATIONS FROM N(0,I) ndata = 25 mymats = array(0,c(ndata, 2)) mydata = list() for (i in 1:ndata){ mydata[[i]] = stats::rnorm(2) mymats[i,] = mydata[[i]] } myriem = wrap.euclidean(mydata) ## COMPUTE sebobj = riem.seb(myriem) center = as.vector(sebobj$center) radius = sebobj$radius ## VISUALIZE # 1. prepare the circle for drawing theta = seq(from=0, to=2*pi, length.out=100) coords = radius*cbind(cos(theta), sin(theta)) coords = coords + matrix(rep(center, each=100), ncol=2) # 2. draw opar <- par(no.readonly=TRUE) par(pty="s") plot(coords, type="l", lwd=2, col="red", main="Euclidean SEB", xlab="x", ylab="y") points(mymats, pch=19) # data points(center[1], center[2], pch=19, col="blue") # center par(opar)