def doLearningIteration(self, set): # initialize values self.linearSystem = DMSystemMatrix(self.grid, set.getPoints(), self.specification.getCOperator(), self.specification.getL()) size = self.grid.getSize() # Reuse data from old alpha vector increasing its dimension if self.solver.getReuse() and self.alpha is not None: alpha = DataVector(self.alpha) alpha.resize(size) # Use new alpha vector else: alpha = DataVector(size) alpha.setAll(0.0) b = DataVector(size) self.linearSystem.generateb(set.getValues(), b) # calculates alphas self.solver.solve(self.linearSystem, alpha, b, self.solver.getReuse(), False, self.solver.getThreshold()) return alpha
# create regular grid, level 3 level = 3 gridGen = grid.createGridGenerator() gridGen.regular(level) print "number of initial grid points: {}".format(gridStorage.size()) # definition of function to interpolate - nonsymmetric(!) f = lambda x0, x1: 16.0 * (x0 - 1) * x0 * (x1 - 1) * x1 * x1 # create coefficient vector alpha = DataVector(gridStorage.size()) print "length of alpha vector: {}".format(alpha.getSize()) # now refine adaptively 5 times for refnum in range(5): # set function values in alpha for i in xrange(gridStorage.size()): gp = gridStorage.get(i) alpha[i] = f(gp.getCoord(0), gp.getCoord(1)) # hierarchize createOperationHierarchisation(grid).doHierarchisation(alpha) # refine a single grid point each time gridGen.refine(SurplusRefinementFunctor(alpha, 1)) print "refinement step {}, new grid size: {}".format( refnum + 1, gridStorage.size()) # extend alpha vector (new entries uninitialized) alpha.resize(gridStorage.size())
# set function values in alpha for i in range(gs.getSize()): gs.getPoint(i).getStandardCoordinates(p) alpha[i] = dist.pdf(p.array()) # hierarchize createOperationHierarchisation(grid).doHierarchisation(alpha) for refnum in range(refnums): # refine a single grid point each time gridGen.refine(SurplusRefinementFunctor(alpha, 1)) print("refinement step {}, new grid size: {}".format( refnum + 1, gs.getSize())) # extend alpha vector (new entries uninitialized) alpha.resize(gs.getSize()) # set function values in alpha for i in range(gs.getSize()): gs.getPoint(i).getStandardCoordinates(p) alpha[i] = dist.pdf(p.array()) # hierarchize createOperationHierarchisation(grid).doHierarchisation(alpha) alpha = alpha.array() sgdeDist = SGDEdist(grid, alpha, trainData=trainSamples, bounds=dist.getBounds()) print(
# create regular grid, level 3 level = 3 gridGen = grid.createGridGenerator() gridGen.regular(level) print "number of initial grid points: {}".format(gridStorage.size()) # definition of function to interpolate - nonsymmetric(!) f = lambda x0, x1: 16.0 * (x0-1)*x0 * (x1-1)*x1*x1 # create coefficient vector alpha = DataVector(gridStorage.size()) print "length of alpha vector: {}".format(alpha.getSize()) # now refine adaptively 5 times for refnum in range(5): # set function values in alpha for i in xrange(gridStorage.size()): gp = gridStorage.get(i) alpha[i] = f(gp.getCoord(0), gp.getCoord(1)) # hierarchize createOperationHierarchisation(grid).doHierarchisation(alpha) # refine a single grid point each time gridGen.refine(SurplusRefinementFunctor(alpha, 1)) print "refinement step {}, new grid size: {}".format(refnum+1, gridStorage.size()) # extend alpha vector (new entries uninitialized) alpha.resize(gridStorage.size())