Source code for chaospy.distributions.collection.uniform

"""Uniform probability distribution."""
from ..baseclass import SimpleDistribution, LowerUpperDistribution


class uniform(SimpleDistribution):
    """Uniform distribution fixed on the [-1, 1] interval."""

    def __init__(self):
        super(uniform, self).__init__()

    def _pdf(self, x):
        return 0.5

    def _cdf(self, x):
        return 0.5 * x + 0.5

    def _ppf(self, q):
        return 2 * q - 1

    def _lower(self):
        return -1.0

    def _upper(self):
        return 1.0

    def _mom(self, k):
        return 1.0 / (k + 1) * (k % 2 == 0)

    def _ttr(self, n):
        return 0.0, n * n / (4.0 * n * n - 1)


[docs]class Uniform(LowerUpperDistribution): r""" Uniform probability distribution. Args: lower (float, Distribution): Lower threshold of distribution. Must be smaller than ``upper``. upper (float, Distribution): Upper threshold of distribution. Examples: >>> distribution = chaospy.Uniform(2, 4) >>> distribution Uniform(lower=2, upper=4) >>> uloc = numpy.linspace(0, 1, 6) >>> uloc array([0. , 0.2, 0.4, 0.6, 0.8, 1. ]) >>> xloc = distribution.inv(uloc) >>> xloc.round(3) array([2. , 2.4, 2.8, 3.2, 3.6, 4. ]) >>> numpy.allclose(distribution.fwd(xloc), uloc) True >>> distribution.pdf(xloc).round(3) array([0.5, 0.5, 0.5, 0.5, 0.5, 0.5]) >>> distribution.sample(4).round(3) array([3.307, 2.23 , 3.901, 2.964]) >>> distribution.mom(1).round(4) 3.0 >>> distribution.ttr([0, 1, 2, 3]).round(4) array([[ 3. , 3. , 3. , 3. ], [-0. , 0.3333, 0.2667, 0.2571]]) """
[docs] def __init__(self, lower=0.0, upper=1.0): super(Uniform, self).__init__( dist=uniform(), lower=lower, upper=upper, )