Sigma <- matrix(c(4,sqrt(2),sqrt(2),1),ncol=2) eigen(Sigma)$values eigen(Sigma)$vectors #### Points a constant distance from the origin: drive distance/fairway pct ctr <- c(0,0) angles <- seq(0, 2*pi, length.out=200) A <- matrix(c(86.2329, -25.4142, -25.4142, 31.1568), 2, 2) eigVal <- eigen(A)$values eigVec <- eigen(A)$vectors eigScl <- eigVec %*% diag(sqrt(eigVal)) # scale eigenvectors to length = square-root xMat <- rbind(ctr[1] + eigScl[1, ], ctr[1] - eigScl[1, ]) yMat <- rbind(ctr[2] + eigScl[2, ], ctr[2] - eigScl[2, ]) ellBase <- cbind(sqrt(eigVal[1])*cos(angles), sqrt(eigVal[2])*sin(angles)) # normal ellipse ellRot <- eigVec %*% t(ellBase) # rotated ellipse plot((ellRot+ctr)[1, ], (ellRot+ctr)[2, ], asp=1, type="l", lwd=2, xlim=c(-10,10),ylim=c(-10,10), main="Ellipse of Constant Distance from Origin - LPGA Drive/Fairway", xlab="Drive Dist", ylab="Fairway Pct") matlines(xMat, yMat, lty=1, lwd=2, col="green") points(ctr[1], ctr[2], pch=4, col="red", lwd=3)