def generateLaplaceMatrix(factory, level, verbose=False): from pysgpp import DataVector storage = factory.getStorage() gen = factory.createGridGenerator() gen.regular(level) laplace = factory.createOperationLaplace() # create vector alpha = DataVector(storage.size()) erg = DataVector(storage.size()) # create stiffness matrix m = DataVector(storage.size(), storage.size()) m.setAll(0) for i in xrange(storage.size()): # apply unit vectors alpha.setAll(0) alpha[i] = 1 laplace.mult(alpha, erg) if verbose: print erg, erg.sum() m.setColumn(i, erg) return m
def generateBBTMatrixPython(factory, training, verbose=False): storage = factory.getStorage() b = factory.createOperationB() alpha = DataVector(storage.getSize()) erg = DataVector(alpha.getSize()) temp = DataVector(training.getSize()) # create B matrix m = DataVector(storage.getSize(), storage.getSize()) for i in range(storage.getSize()): # apply unit vectors temp.setAll(0.0) erg.setAll(0.0) alpha.setAll(0.0) alpha[i] = 1.0 b.multTranspose(alpha, training, temp) b.mult(temp, training, erg) #Sets the column in m m.setColumn(i, erg) return m