【问题标题】:Numerical integration of a double integral using Gauss-Legendre quadrature使用 Gauss-Legendre 求积法对二重积分进行数值积分
【发布时间】:2016-12-13 05:42:04
【问题描述】:

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

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

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

提前致谢。

【问题讨论】:

    标签: matlab integration numerical-integration


    【解决方案1】:

    双积分是矩形域上的积分。它们可以用专门的矩形方案来处理,或者——你尝试做的——用一维正交的产品方案。您甚至可以在这里混合搭配两种不同的方案。

    乘积方案的点是笛卡尔积中的一维点,即对于方案 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))
        )
    

    【讨论】:

      猜你喜欢
      • 2016-12-13
      • 2021-01-31
      • 2021-10-24
      • 1970-01-01
      • 2019-10-01
      • 2016-05-16
      • 1970-01-01
      • 1970-01-01
      • 2015-03-30
      相关资源
      最近更新 更多