def test_cheb2_scheme(scheme):
def integrate_exact(k):
# \int_-1^1 x^k * sqrt(1 - x^2)
if k == 0:
return 0.5 * numpy.pi
if k % 2 == 1:
return 0.0
return numpy.sqrt(numpy.pi) * ((-1)**k + 1) \
* math.gamma(0.5*(k+1)) / math.gamma(0.5*k+2) \
/ 4
degree = check_degree_1d(
lambda poly: quadpy.line_segment.integrate(
poly, numpy.array([[-1.0], [1.0]]), scheme
),
integrate_exact,
scheme.degree + 1
)
assert degree >= scheme.degree
return
评论列表
文章目录