def __init__(self, n, index):
self.dim = n
if index == 'I':
self.degree = 2
data = [
(fr(1, n+1), sqrt(fr(1, 2)) * _nsimplex(n))
]
elif index == 'II':
self.degree = 3
nu = sqrt(fr(n, 2))
data = [
(fr(1, 2*n), fsd(n, (nu, 1)))
]
elif index == 'III':
self.degree = 3
nu = sqrt(fr(1, 2))
data = [
(fr(1, 2**n), pm(n, nu))
]
else:
assert index == 'IV'
self.degree = 5
nu = sqrt(fr(n+2, 2))
xi = sqrt(fr(n+2, 4))
A = fr(2, n+2)
B = fr(4-n, 2 * (n+2)**2)
C = fr(1, (n+2)**2)
data = [
(A, numpy.full((1, n), 0)),
(B, fsd(n, (nu, 1))),
(C, fsd(n, (xi, 2))),
]
self.points, self.weights = untangle(data)
self.weights *= sqrt(pi)**n
return
评论列表
文章目录