How to obtain the lengths of semi axes of an ellipse? in R

ellipse, geometry, r

Solution

The square of the semi-axes are the eigenvalues of the shape matrix, times the average squared radius.

x <- c(1.798805,2.402390,2.000000,3.000000,1.000000)
y <- c(0.3130147,0.4739707,0.2000000,0.8000000,0.1000000)
d <- cbind( x, y )
library(cluster)
r <- ellipsoidhull(d)
plot( x, y, asp=1, xlim=c(0,4) )
lines( predict(r) )
e <- sqrt(eigen(r$cov)$values)
a <- sqrt(r$d2) * e[1]  # semi-major axis
b <- sqrt(r$d2) * e[2]  # semi-minor axis
theta <- seq(0, 2*pi, length=200)
lines( r$loc[1] + a * cos(theta), r$loc[2] + a * sin(theta) )
lines( r$loc[1] + b * cos(theta), r$loc[2] + b * sin(theta) )

Problem

I have this set of x and y coordinates: ``` x<-c(1.798805,2.402390,2.000000,3.000000,1.000000) y<-c(0.3130147,0.4739707,0.2000000,0.8000000,0.1000000) as.matrix(cbind(x,y))->d ``` and I want to calculate the ellipsoid that contains this set of points, I use the function `ellipsoidhull()` in the package "cluster", and I get: ``` > ellipsoidhull(d) 'ellipsoid' in 2 dimensions:` center = ( 2.00108 0.36696 ); squared ave.radius d^2 = 2` and shape matrix = x 0.66590 0.233106 y 0.23311 0.095482 hence, area = 0.60406 ``` However it's not obvious to me how I can get from these results, the lengths of the semi-major axes of this ellipse. Any idea? Thank you very much in advance. Tina.

Original source

Related problems