使用高斯-勒让德求积对二重积分进行数值积分

问题描述 投票:0回答:1

我已经有一个代码,用于生成用于积分的高斯-勒让德求积规则的权重和横坐标,但我在将其用于二重积分时遇到困难。

为了生成权重和横坐标,我使用以下符号 [w,x]=leg(x1,x2,n),其中 w 是权重,x 是横坐标,x1 是积分的下限,x2 是上限limit,n 是正交点数。

我只举一个简单的例子,这样它可以帮助我理解这个想法。假设我有以下积分 $\int_0^1 \int_0^1 x^2 y^2 dx dy$ 我该如何实施?

提前致谢。

matlab numerical-integration
1个回答
0
投票

二重积分是矩形域上的积分。它们可以用专用的矩形方案来处理,或者(您尝试做的)用一维求积的乘积方案来处理。您甚至可以在这里混合和匹配两种不同的方案。

乘积方案的点是笛卡尔积中的一维点,即,对于方案 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))
    )
© www.soinside.com 2019 - 2024. All rights reserved.