Volume

Volume computation of convex bodies. MATLAB File Exchange 43596. We give a randomized algorithm to estimate the volume within a target relative error. The algorithm can compute a reasonable estimate for the volume of 100-dimensional bodies within a few minutes. This software will approximate the volume of, or sample from, a high-dimensional convex body. The implementation needs a description of a convex body as the intersection of halfspaces and an ellipsoid (only one of these must be non-empty, e.g. a polytope is only described by halfspaces). The algorithm works in a series of phases, which start out with a distribution very concentrated around a single point inside the body and slowly flatten to the uniform distribution (i.e. the volume). In each phase, a sequence of sample points from a Markov chain is used to estimate the change in volume. When a phase is sufficiently close to the uniform distribution, we will have an estimate for the volume. In addition to the volume (i.e. uniform distribution), it can also estimate the volume of a spherical Gaussian restricted to a convex set. Also, it can compute approximate samples from a convex body, with respect to the uniform distribution or a spherical Gaussian.