def prepare_stochastic_operators(M, p1, p2=0, type='L'): I = MultiindexSet.createCompleteOrderSet(M, p1).arr if type == 'L': print "Legendre triple", I.shape polysys = LegendrePolynomials() L = evaluate_triples(polysys, I, I) elif type == 'H': assert False #J = MultiindexSet.createCompleteOrderSet(M, p2).arr #H = evaluate_Hermite_triple(I, I, J) #L = [L[:, :, k] for k in range(L.shape[2])] return L
from matplotlib.pyplot import figure, show, spy from spuq.math_utils.multiindex_set import MultiindexSet from spuq.polyquad.structure_coefficients import evaluate_triples from spuq.polyquad.polynomials import LegendrePolynomials I = MultiindexSet.createCompleteOrderSet(4, 3, reversed=True).arr print I #H = evaluate_Hermite_triple(I, I, J) #print "shape of H:", H.shape # create polynomial instance lp = LegendrePolynomials() L = evaluate_triples(lp, I, I) print len(L), L[0].shape # fig = figure() # spy(np.sum(H, axis=2)) fig = figure() #spy(np.sum(L)) spy(L[3]) show()