Beispiel #1
0
 def remove(self, n, update=True):
     assert n >= 0
     if n > 0:
         self.x = np.delete(self.x, np.s_[-n:], 0)
         self.y = np.delete(self.y, np.s_[-n:], 0)
     if update:
         self._update()
Beispiel #2
0
def GS_basis(Kc, verbose=False):
    (n, n_) = Kc.shape
    assert n == n_
    if verbose: print "Beginning GS process. n = {}".format(n)
    G = mat.eye(n,n)
    deleted = 0
    for ell in xrange(n):
        if verbose: 
            if ell%10 == 0: print "ell = {}".format(ell)
        ell -= deleted
        for i in xrange(ell):
            G[:,ell] -= (G.T * Kc * G)[ell,i] * G[:,i]
        cf = (G.T*Kc*G)[ell,ell]
        if cf < (10**-8):
            if verbose: print "Deleting column " + str(ell)
            G = mat.delete(G, ell, 1)
            deleted += 1
        else:
            G[:,ell] /= cf ** .5
    GKG = G.T*Kc*G
    (dummy, g_dim) = G.shape
    assert not mat.isnan(G).any()
    if verbose: 
        print "GKG Divergence: {:e}".format(sum(abs(GKG - mat.eye(g_dim,g_dim))))
    return G
Beispiel #3
0
def GS_basis(Kc, verbose=False):
    (n, n_) = Kc.shape
    assert n == n_
    if verbose: print "Beginning GS process. n = {}".format(n)
    G = mat.eye(n, n)
    deleted = 0
    for ell in xrange(n):
        if verbose:
            if ell % 10 == 0: print "ell = {}".format(ell)
        ell -= deleted
        for i in xrange(ell):
            G[:, ell] -= (G.T * Kc * G)[ell, i] * G[:, i]
        cf = (G.T * Kc * G)[ell, ell]
        if cf < (10**-8):
            if verbose: print "Deleting column " + str(ell)
            G = mat.delete(G, ell, 1)
            deleted += 1
        else:
            G[:, ell] /= cf**.5
    GKG = G.T * Kc * G
    (dummy, g_dim) = G.shape
    assert not mat.isnan(G).any()
    if verbose:
        print "GKG Divergence: {:e}".format(
            sum(abs(GKG - mat.eye(g_dim, g_dim))))
    return G