我已经有一个代码,用于生成用于积分的高斯-勒让德求积规则的权重和横坐标,但我在将其用于二重积分时遇到困难。
为了生成权重和横坐标,我使用以下符号 [w,x]=leg(x1,x2,n),其中 w 是权重,x 是横坐标,x1 是积分的下限,x2 是上限limit,n 是正交点数。
我只举一个简单的例子,这样它可以帮助我理解这个想法。假设我有以下积分 $\int_0^1 \int_0^1 x^2 y^2 dx dy$ 我该如何实施?
提前致谢。
二重积分是矩形域上的积分。它们可以用专用的矩形方案来处理,或者(您尝试做的)用一维求积的乘积方案来处理。您甚至可以在这里混合和匹配两种不同的方案。
乘积方案的点是笛卡尔积中的一维点,即,对于方案 1 中的每个
x_i
和方案 2 中的 y_j
, (x_i, y_j)
是乘积方案中的一个点。权重是两个相应权重的乘积。
如果你想让它变得简单,你可以使用quadpy(我的一个项目):
import numpy
import quadpy
quadpy.quadrilateral.integrate(
lambda x: numpy.exp(x[0]),
[[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]],
quadpy.quadrilateral.Product(quadpy.line_segment.GaussLegendre(4))
)