ó
¡¼™\c           @  sK  d  d l  m Z m Z d d l m Z m Z m Z m Z m Z m	 Z	 m
 Z
 m Z m Z m Z m Z m Z m Z m Z m Z d  d l m Z d d d d d	 d
 d d d d d d d d d d d d d d d d g Z d d$ d „ Z d$ d „ Z d$ d „ Z e Z d$ d „ Z d$ d  „ Z d$ d! „ Z d$ d" „ Z d$ d# „ Z e Z  e Z! d$ S(%   iÿÿÿÿ(   t   print_functiont   divisioni   (   t   probabilityt   expectationt   densityt   wheret   givent   pspacet   cdft   characteristic_functiont   samplet   sample_itert   random_symbolst   independentt	   dependentt   sampling_densityt   moment_generating_function(   t   sqrtt   Pt   ER   R   R   R
   R   R	   R   R   t   variancet   stdt   skewnesst
   covarianceR   R   R   t   correlationt   momentt   cmomentR   R   i    c         K  s   t  |  | | | |  S(   s4  
    Return the nth moment of a random expression about c i.e. E((X-c)**n)
    Default value of c is 0.

    Examples
    ========

    >>> from sympy.stats import Die, moment, E
    >>> X = Die('X', 6)
    >>> moment(X, 1, 6)
    -5/2
    >>> moment(X, 2)
    91/6
    >>> moment(X, 1) == E(X)
    True
    (   R   (   t   Xt   nt   ct	   conditiont   kwargs(    (    s7   lib/python2.7/site-packages/sympy/stats/rv_interface.pyR      s    c         K  s   t  |  d | |  S(   sn  
    Variance of a random expression

    Expectation of (X-E(X))**2

    Examples
    ========

    >>> from sympy.stats import Die, E, Bernoulli, variance
    >>> from sympy import simplify, Symbol

    >>> X = Die('X', 6)
    >>> p = Symbol('p')
    >>> B = Bernoulli('B', p, 1, 0)

    >>> variance(2*X)
    35/3

    >>> simplify(variance(B))
    p*(1 - p)
    i   (   R   (   R   R   R   (    (    s7   lib/python2.7/site-packages/sympy/stats/rv_interface.pyR   #   s    c         K  s   t  t |  | |  ƒ S(   sG  
    Standard Deviation of a random expression

    Square root of the Expectation of (X-E(X))**2

    Examples
    ========

    >>> from sympy.stats import Bernoulli, std
    >>> from sympy import Symbol, simplify

    >>> p = Symbol('p')
    >>> B = Bernoulli('B', p, 1, 0)

    >>> simplify(std(B))
    sqrt(p*(1 - p))
    (   R   R   (   R   R   R   (    (    s7   lib/python2.7/site-packages/sympy/stats/rv_interface.pyt   standard_deviation<   s    c         K  s4   t  |  t  |  | |  | t  | | |  | |  S(   s"  
    Covariance of two random expressions

    The expectation that the two variables will rise and fall together

    Covariance(X,Y) = E( (X-E(X)) * (Y-E(Y)) )

    Examples
    ========

    >>> from sympy.stats import Exponential, covariance
    >>> from sympy import Symbol

    >>> rate = Symbol('lambda', positive=True, real=True, finite=True)
    >>> X = Exponential('X', rate)
    >>> Y = Exponential('Y', rate)

    >>> covariance(X, X)
    lambda**(-2)
    >>> covariance(X, Y)
    0
    >>> covariance(X, Y + rate*X)
    1/lambda
    (   R   (   R   t   YR   R   (    (    s7   lib/python2.7/site-packages/sympy/stats/rv_interface.pyR   R   s    c         K  s3   t  |  | | |  t |  | |  t | | |  S(   s˜  
    Correlation of two random expressions, also known as correlation
    coefficient or Pearson's correlation

    The normalized expectation that the two variables will rise
    and fall together

    Correlation(X,Y) = E( (X-E(X)) * (Y-E(Y)) / (sigma(X) * sigma(Y)) )

    Examples
    ========

    >>> from sympy.stats import Exponential, correlation
    >>> from sympy import Symbol

    >>> rate = Symbol('lambda', positive=True, real=True, finite=True)
    >>> X = Exponential('X', rate)
    >>> Y = Exponential('Y', rate)

    >>> correlation(X, X)
    1
    >>> correlation(X, Y)
    0
    >>> correlation(X, Y + rate*X)
    1/sqrt(1 + lambda**(-2))
    (   R   R   (   R   R!   R   R   (    (    s7   lib/python2.7/site-packages/sympy/stats/rv_interface.pyR   q   s    !c         K  s(   t  |  | |  } t |  | | | |  S(   s<  
    Return the nth central moment of a random expression about its mean
    i.e. E((X - E(X))**n)

    Examples
    ========

    >>> from sympy.stats import Die, cmoment, variance
    >>> X = Die('X', 6)
    >>> cmoment(X, 3)
    0
    >>> cmoment(X, 2)
    35/12
    >>> cmoment(X, 2) == variance(X)
    True
    (   R   R   (   R   R   R   R   t   mu(    (    s7   lib/python2.7/site-packages/sympy/stats/rv_interface.pyR      s    c         K  s1   t  |  | |  } d | | t |  | | |  S(   sÊ  
    Return the nth Standardized moment of a random expression i.e.
    E( ((X - mu)/sigma(X))**n )

    Examples
    ========

    >>> from sympy.stats import skewness, Exponential, smoment
    >>> from sympy import Symbol
    >>> rate = Symbol('lambda', positive=True, real=True, finite=True)
    >>> Y = Exponential('Y', rate)
    >>> smoment(Y, 4)
    9
    >>> smoment(Y, 4) == smoment(3*Y, 4)
    True
    >>> smoment(Y, 3) == skewness(Y)
    True
    i   (   R   R   (   R   R   R   R   t   sigma(    (    s7   lib/python2.7/site-packages/sympy/stats/rv_interface.pyt   smoment¥   s    c         K  s   t  |  d | |  S(   sý  
    Measure of the asymmetry of the probability distribution

    Positive skew indicates that most of the values lie to the right of
    the mean

    skewness(X) = E( ((X - E(X))/sigma)**3 )

    Examples
    ========

    >>> from sympy.stats import skewness, Exponential, Normal
    >>> from sympy import Symbol
    >>> X = Normal('X', 0, 1)
    >>> skewness(X)
    0
    >>> rate = Symbol('lambda', positive=True, real=True, finite=True)
    >>> Y = Exponential('Y', rate)
    >>> skewness(Y)
    2
    i   (   R$   (   R   R   R   (    (    s7   lib/python2.7/site-packages/sympy/stats/rv_interface.pyR   »   s    N("   t
   __future__R    R   t   rvR   R   R   R   R   R   R   R	   R
   R   R   R   R   R   R   t   sympyR   t   __all__t   NoneR   R   R    R   R   R   R   R$   R   R   R   (    (    (    s7   lib/python2.7/site-packages/sympy/stats/rv_interface.pyt   <module>   s"   d