Beispiel #1
0
import current as pc


def model_solver(q):
    return q[1] * e**q[0] + 1


#end

coll_points = array([[0, 0, 1], [0, 1, 1]])
#end

basis = pc.basis(0, 1, 2)
print basis
#  [1, q0, q1]
#end

solves = model_solver(coll_points)
print solves
#  [ 1.          2.          3.71828183]
#end

approx_solver = pc.fitter_lr(basis, coll_points, solves)
print approx_solver
#  q1+1.71828182846q0+1.0
#end

print approx_solver(*coll_points)
#  [ 1.          2.          3.71828183]
#end
Beispiel #2
0
print np.max(abs(approx - approx2).coeffs(), -1)
#  [  2.44249065e-15   3.77475828e-15]
# end

nodes = dist.sample(12, "M")
print nodes
#  [[ 1.3074948   1.1461811   0.48907479 -0.99729764 -2.04207273  0.3737412
#    -0.17126603  0.40045745  0.25582169 -1.50683751 -0.47799293  1.21890579]
#   [ 0.61939522  1.72367491 -0.55533514 -0.00905152 -0.87071076 -0.04532524
#    -0.95908033 -1.5433918  -1.10189542  1.19303123 -0.85594892 -0.97358421]]
# end


def model_solver(q):
    return [q[0] * q[1], q[0] * e ** -q[1] + 1]


solves = [model_solver(q) for q in nodes.T]

approx = pc.fitter_lr(orth, nodes, solves)
print pc.around(approx, 14)
#  [q0q1, 0.161037230451q1^2-1.23004736008q0q1+0.152745901925q0^2+
#           0.0439971157359q1+1.21399892993q0+0.86841679007]
# end

approx = pc.fitter_lr(orth, nodes, solves, rule="OMP", n_nonzero_coefs=1)
print approx
#  [q0q1, 1.52536467971q0]
# end
Beispiel #3
0
from numpy import *
import current as pc

def model_solver(q):
    return q[1]*e**q[0]+1
#end

coll_points = array([[0,0,1],[0,1,1]])
#end

basis = pc.basis(0,1,2)
print basis
#  [1, q0, q1]
#end

solves = model_solver(coll_points)
print solves
#  [ 1.          2.          3.71828183]
#end

approx_solver = pc.fitter_lr(basis, coll_points, solves)
print approx_solver
#  q1+1.71828182846q0+1.0
#end

print approx_solver(*coll_points)
#  [ 1.          2.          3.71828183]
#end
Beispiel #4
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)))
Beispiel #5
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)))