These functions generate uniform samples from lemniscates (figure eights) in 2-dimensional space, optionally with noise.
Number of observations.
Standard deviation of (independent multivariate) Gaussian noise.
These functions use a simple parameterization from the unit circle to the lemniscate of Gerono, as presented on Wikipedia. The uniform sample is generated through a rejection sampling process as described by Diaconis, Holmes, and Shahshahani (2013).
P Diaconis, S Holmes, and M Shahshahani (2013) Sampling from a Manifold. Advances in Modern Statistical Theory and Applications: A Festschrift in honor of Morris L. Eaton, 102–125. doi: 10.1214/12-IMSCOLL1006
1 2 3 4 5 6 7 8 9 10 11 12 13 14
set.seed(12051L) # Uniformly sampled figure eight in 2-space x <- sample_lemniscate_gerono(720) plot(x, asp = 1, pch = 19, cex = .5) # Naively sampled figure eight, for comparison theta <- runif(n = 720, min = 0, max = 2*pi) x_naive <- cbind(x = cos(theta), y <- cos(theta) * sin(theta)) plot(x_naive, asp = 1, pch = 19, cex = .5) # Uniformly sampled figure eight in 2-space with Gaussian noise x <- sample_lemniscate_gerono(720, 0.1) plot(x, asp = 1, pch = 19, cex = .5)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.