Esempio n. 1
0
def cdf(self, x):
    out = 9/32.*(x+1)**2*(x<1/3.)
    out += (3*x+1)/4.*(x>=1/3.)
    return out

def bnd(self):
    return -1,1

MyDist = pc.construct(
    pdf=pdf, cdf=cdf, bnd=bnd)
#end

dist = MyDist()
print dist.mom(1, order=100)
#  0.277778240534
#end

print dist.mom(1, order=5, composite=1/3.)
#  0.277777777778
#end

mom = pc.momgen(
    order=100,
    domain=dist,
    composite=1/3.)

dist.addattr(mom=mom)
print dist.mom([1,2,3])
#  [ 0.27777778  0.2962963   0.15925926]
#end
Esempio n. 2
0
    E,V = np.empty((2,len(Z)))
    N = 4*pc.terms(order, 2)
    q = Q.sample(N, "H")
    for i in xrange(len(Z)):

        print "i", i
        z = Z[i]
        solver = Solver(z)
        trans = lambda q: \
            [z/q[0]*(z<q[3]) + \
            (q[3]/q[0]+(z-q[3])/q[1])*(z>=q[3])*(z<q[4]) + \
            (q[3]/q[0]+(q[4]-q[3])/q[1]+(z-q[4])/q[2])*(z>=q[4]),
            q[3]/q[0]+(q[4]-q[3])/q[1]+(1-q[4])/q[2]]
        dist = pc.Dist(_length=2)
        dist._mom = pc.momgen(trans, 15, Q, rule="C",
                composit=[.15,.9,.15, z, z])

        orth = pc.orth_chol(order, dist, normed=0)
        y = np.array(map(solver, q.T))
        approx = pc.fitter_lr(orth, trans(q), y,
                rule="T", order=1, alpha=1e-8)

        E[i] = pc.E(approx, dist)
        V[i] = pc.Var(approx, dist)

    E = np.abs(E-E0)
    V = np.abs(V-V0)
    os.system('echo "%d\n%s\n%s" >> 3a.log' % (N, repr(E), repr(V)))
    os.system('echo "%s, %s" >> 3a.log' % (np.mean(E), np.mean(V)))
Esempio n. 3
0
    N = 4 * pc.terms(order, 2)
    q = Q.sample(N, "H")
    for i in xrange(len(Z)):

        print "i", i
        z = Z[i]
        solver = Solver(z)
        trans = lambda q: \
            [z/q[0]*(z<q[3]) + \
            (q[3]/q[0]+(z-q[3])/q[1])*(z>=q[3])*(z<q[4]) + \
            (q[3]/q[0]+(q[4]-q[3])/q[1]+(z-q[4])/q[2])*(z>=q[4]),
            q[3]/q[0]+(q[4]-q[3])/q[1]+(1-q[4])/q[2]]
        dist = pc.Dist(_length=2)
        dist._mom = pc.momgen(trans,
                              15,
                              Q,
                              rule="C",
                              composit=[.15, .9, .15, z, z])

        orth = pc.orth_chol(order, dist, normed=0)
        y = np.array(map(solver, q.T))
        approx = pc.fitter_lr(orth, trans(q), y, rule="T", order=1, alpha=1e-8)

        E[i] = pc.E(approx, dist)
        V[i] = pc.Var(approx, dist)

    E = np.abs(E - E0)
    V = np.abs(V - V0)
    os.system('echo "%d\n%s\n%s" >> 3a.log' % (N, repr(E), repr(V)))
    os.system('echo "%s, %s" >> 3a.log' % (np.mean(E), np.mean(V)))