我已经有了一个代码来生成高斯 - 勒让德求积分求积分的权重和横坐标,但是我很难将它用于双积分。
为了生成权重和横坐标,我使用以下符号[w,x] = leg(x1,x2,n)其中w是权重,x是横坐标,x1是积分的下限,x2是上限,n是正交点的数量。
我只是给出一个简单的例子,以便它可以帮助我理解这个想法。假设我有以下整数$ \ int_0 ^ 1 \ int_0 ^ 1 x ^ 2 y ^ 2 dx dy $ 我该如何实现?
提前致谢。
答案 0 :(得分:0)
双积分是矩形域上的积分。它们既可以采用专用的矩形方案,也可以采用一维正交的产品方案进行处理。你甚至可以在这里混合搭配两种不同的方案。
产品方案的要点是笛卡尔积中的1D点,即方案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))
)