我正试图在一个由其顶点描述的二维多边形上集成一个函数,如下所示
import numpy as np
import quadpy
def f(x):
return x[0]
poly = np.array([[0.0, 0.0], [1.0, 0.0], [0, 1], [1,1]])
scheme = quadpy.t2.get_good_scheme(10)
val = scheme.integrate(f, poly)
但我有
QuadpyError:域形状错误。
我非常感谢的任何帮助
quad.t2
是三角形,需要三个点。你的多边形是正方形,你必须使用quad.c2
。
import quadpy
scheme = quadpy.c2.get_good_scheme(7)
val = scheme.integrate(
lambda x : x[0],
[ [[0.0, 0.0], [1.0, 0.0]], [[0.0, 1.0], [1.0, 1.0]] ]
)
val
这就给出了0.5
,它在数学上很容易得到。
有关指定四边形的方法,请参见链接。