我想了解高斯-拉盖尔算法在大限制条件下的工作原理。例如,我有一个二维函数,在两个维度上从(0,+inf)变化。当我使用Python中的高斯-拉盖尔算法通过权重和横坐标采样函数并将它们相加时,与使用dblquad得到的结果不接近。以下是用于积分的示例代码。lgw输出权重和横坐标,然后使用两个for循环在双重积分中使用它们。我没有看到如何捕获像x,y = 1e8,1e8这样的样本点。增加n并不会给出高横坐标(至少不需要非常高的值)。
有人能解释一下如何捕捉更高的采样点吗?我的正交有误吗?我可以对小限制范围内的函数进行积分,例如 1e2 左右。如果限制很大,例如 1e15,该怎么办?我知道理论上的定义,但我不知道如何捕捉更高的权重和横坐标。
谢谢。
编辑:无法进一步减少我的函数。积分的不同部分通过数值计算得出,因此我没有任何分析表达式。我只能说函数是平滑的,并具有正弦行为。
kzas,kzws = lgw(n)
for kta,ktw, in zip(kzas,kzws):
for kza,kzw in zip(kzas,kzws):
fval = integrand(kza,kta)
wghtx = kzw*numpy.exp(kza)
wghty = ktw*numpy.exp(kta)
integral += wghtx*wghty*fval
有人能解释一下如何捕捉更高的采样点吗?我的正交有误吗?我可以对小限制范围内的函数进行积分,例如 1e2 左右。如果限制很大,例如 1e15,该怎么办?我知道理论上的定义,但我不知道如何捕捉更高的权重和横坐标。
谢谢。
编辑:无法进一步减少我的函数。积分的不同部分通过数值计算得出,因此我没有任何分析表达式。我只能说函数是平滑的,并具有正弦行为。
+inf
时,您的函数会表现出什么样的行为?我怀疑如果您只对“足够远”的点进行采样,那么您永远无法获得良好的数值近似,并且该函数在“足够远”之外的行为在某种程度上是非平凡的。您能否定义一个半径,在该半径内应用数值方法,并通过解析估计其余部分? - 9000