Ejemplo n.º 1
0
def test_nakagami():
    mu = Symbol("mu", positive=True)
    omega = Symbol("omega", positive=True)

    X = Nakagami('x', mu, omega)
    assert density(X)(x) == (2*x**(2*mu - 1)*mu**mu*omega**(-mu)
                                *exp(-x**2*mu/omega)/gamma(mu))
    assert simplify(E(X)) == (sqrt(mu)*sqrt(omega)
                                            *gamma(mu + S.Half)/gamma(mu + 1))
    assert simplify(variance(X)) == (
    omega - omega*gamma(mu + S.Half)**2/(gamma(mu)*gamma(mu + 1)))
    assert cdf(X)(x) == Piecewise(
                                (lowergamma(mu, mu*x**2/omega)/gamma(mu), x > 0),
                                (0, True))
    X = Nakagami('x',1 ,1)
    assert median(X) == FiniteSet(sqrt(log(2)))
Ejemplo n.º 2
0
def test_long_precomputed_cdf():
    x = symbols("x", real=True, finite=True)
    distribs = [
        Arcsin("A", -5, 9),
        Dagum("D", 4, 10, 3),
        Erlang("E", 14, 5),
        Frechet("F", 2, 6, -3),
        Gamma("G", 2, 7),
        GammaInverse("GI", 3, 5),
        Kumaraswamy("K", 6, 8),
        Laplace("LA", -5, 4),
        Logistic("L", -6, 7),
        Nakagami("N", 2, 7),
        StudentT("S", 4)
    ]
    for distr in distribs:
        for _ in range(5):
            assert tn(diff(cdf(distr)(x), x),
                      density(distr)(x),
                      x,
                      a=0,
                      b=0,
                      c=1,
                      d=0)

    US = UniformSum("US", 5)
    pdf01 = density(US)(x).subs(floor(x), 0).doit()  # pdf on (0, 1)
    cdf01 = cdf(US, evaluate=False)(x).subs(floor(x),
                                            0).doit()  # cdf on (0, 1)
    assert tn(diff(cdf01, x), pdf01, x, a=0, b=0, c=1, d=0)
Ejemplo n.º 3
0
def test_nakagami():
    mu = Symbol("mu", positive=True)
    omega = Symbol("omega", positive=True)

    X = Nakagami('x', mu, omega)
    assert density(X)(x) == (2*x**(2*mu - 1)*mu**mu*omega**(-mu)
                                *exp(-x**2*mu/omega)/gamma(mu))
    assert simplify(E(X, meijerg=True)) == (sqrt(mu)*sqrt(omega)
           *gamma(mu + S.Half)/gamma(mu + 1))
    assert simplify(variance(X, meijerg=True)) == (
    omega - omega*gamma(mu + S(1)/2)**2/(gamma(mu)*gamma(mu + 1)))
Ejemplo n.º 4
0
def test_nakagami():
    mu = Symbol("mu", positive=True)
    omega = Symbol("omega", positive=True)

    X = Nakagami('x', mu, omega)
    assert density(X) == (Lambda(_x, 2*_x**(2*mu - 1)*mu**mu*omega**(-mu)
                                *exp(-_x**2*mu/omega)/gamma(mu)))
    assert simplify(E(X, meijerg=True)) == (sqrt(mu)*sqrt(omega)
           *gamma(mu + S.Half)/gamma(mu + 1))
    assert (simplify(variance(X, meijerg=True)) ==
                            (omega*(gamma(mu)*gamma(mu + 1)
                          - gamma(mu + S.Half)**2)/(gamma(mu)*gamma(mu + 1))))