Source code for compmod.distributions

# Distributions

from scipy import stats
import numpy as np

[docs]def Triangular(mean = 1., stdev = 1.): """ A triangular symetric distribution function that returns a frozen distribution of the `scipy.stats.rv_continuous <http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.rv_continuous.html>`_ class. :param mean: mean value :type mean: float :param stdev: standard deviation :type stdev: float :rtype: scipy.stats.rv_continuous instance >>> import compmod >>> tri = compmod.distributions.Triangular >>> tri = compmod.distributions.Triangular(mean = 1., stdev = .1) >>> tri.rvs(10) array([ 1.00410636, 1.05395898, 1.03192428, 1.01753651, 0.99951611, 1.1718781 , 0.94457269, 1.11406294, 1.08477038, 0.98861803]) .. plot:: example_code/distributions/triangular.py :include-source: """ width = np.sqrt(6) * stdev return stats.triang(.5, loc = mean - width, scale = 2.*width)
[docs]def Rectangular(mean = 1., stdev = 1.): """ A Rectangular symetric distribution function that returns a frozen uniforn distribution of the 'scipy.stats.rv_continuous <http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.uniform.html>'_class. :param mean: mean value :type mean: float :param stdev: standard deviation :type stdev: float :rtype: scipy.stats.rv_continuous instance >>> import compmod >>> rec = compmod.distributions.Rectangular >>> rec = compmod.distributions.Rectangular(mean = 5. , stdev = 2.) >>> rec.rvs(15) array([ 6.30703805, 5.55772119, 5.69890282, 5.41807602, 6.78339394, 1.83640732, 3.50697054, 7.97707174, 4.54666157, 7.27897515, 2.33288284, 2.62291176, 1.80274279, 3.39480096, 6.09699301]) .. plot:: example_code/distributions/rectangular.py :include-source: """ width = np.sqrt(3.) * stdev a = mean - width b = mean + width return stats.uniform(loc = a, scale = b -a )
[docs]def Rayleigh(mean = 1.): """ A Rayleigh distribution function that returns a frozen distribution of the `scipy.stats.rv_continuous <http://http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.rayleigh.html#scipy.stats.rayleigh.html>`_ class. :param mean: mean value :type mean: float :rtype: scipy.stats.rv_continuous instance >>> import compmod >>> ray = compmod.distributions.Rayleigh >>> ray = compmod.distributions.Rayleigh(5.) >>> ray.rvs(15) array([ 4.46037568, 4.80288465, 5.37309281, 4.80523501, 5.39211872, 4.50159587, 4.99945365, 4.96324001, 5.48935765, 6.3571905 , 5.01412849, 4.37768037, 5.99915989, 4.71909481, 5.25259294]) .. plot:: example_code/distributions/rayleigh.py :include-source: """ return stats.rayleigh(scale = mean * (2./np.pi)**.5)