具有已知边界的多维积分的数值积分


12

我有一个(二维)不正确的积分

I=AW(x,y)F(x,y)dxdy

其中积分的域小于X = [ - 1 1 ]ÿ = [ - 1 1 ]但通过进一步限制˚F X ÿ > 0。由于FW平滑且W 0Ax=[1,1]y=[1,1]F(x,y)>0FWW0在边界处,后一种关系意味着被积物在边界处可以是奇异的。但是,被积数是有限的。到目前为止,我已经使用嵌套数值积分计算了该积分。这是成功的但很慢。我寻找一种更合适(更快)的方法来解决积分问题,也许是蒙特卡洛方法。但是我需要一个不将点放在非三次域A的边界上并且正确地接受不适当积分的极限的函数。积分转换可以帮助此一般表达吗?请注意,我可以解决Ÿ作为函数X,甚至计算出的一些特殊功能,重量w ^ F(x,y)yxIW(x,y)


F(x,y)0AF(x,y)

GSL算法QAGS:gnu.org/software/gsl/manual/html_node/…。感谢您的编辑(看不到排版方程式的选项)!
highsciguy 2012年

Answers:


7

免责声明:我写了关于自适应正交的博士学位论文,因此这个答案将严重偏向我自己的工作。

GSL的QAGS是旧的QUADPACK积分器,并且并不完全健壮,尤其是在存在奇点的情况下。这通常导致用户要求的准确度远远超出其实际需要,因此使集成变得非常昂贵。

如果您使用的是GSL,则可能需要尝试本文所述的我自己的代码CQUAD。它旨在处理间隔边缘和域内的奇异性。请注意,误差估计非常可靠,因此仅要求您实际需要的数字即可。

关于蒙特卡洛集成,这取决于您要寻找的精度。我也不太确定它在奇异点附近的效果如何。


我一定会看一下它,因为它最容易实现。实际上,我体验到QAGS例程对于此问题并不是非常稳定。
highsciguy 2012年

有没有办法影响'GSL_EDIVERGE'的发生?它似乎出现了一些参数。
highsciguy 2012年

@highsciguy:如果算法认为积分不是有限的,则返回GSL_EDIVERGE。如果您能给我一个失败的例子,我可以仔细看一下。
佩德罗(Pedro)2012年

隔离一个简单的例程有点困难,因为它被嵌入到n维积分的通用代码中。我会看到...但是对于固定的y,因为x接近F(x,y)的零,所以自F(x,y)以来,1 / sqrt(F(x,y))的行为应类似于1 / sqrt(x)。然后可以写成x的多项式。但可能是1 / sqrt(x)行为开始得很晚。也可能是被整数的数字精度不太好。
highsciguy 2012年

1
@highsciguy:是的,这是一个坏主意。大多数正交规则都假定被积物具有一定程度的平滑度,如果将其设置为任意点的零,则会引入不连续性。如果使用实际间隔,您将获得更好的结果!
2012年

5

除非具有高维积分,而蒙特卡罗方法无法承受具有该维的正交点的组合爆炸,否则通常无法与自适应正交竞争。

[0,1]nf(x)dnxnMMnkN=(kM)nk(2k1)e=O(h5)=O(M(2k1))

e=O(N(2k1)/n).
e=O(N1/2)
k>n/4+1/2

k8n=30M=1N=830集成点,这是您一生中无法评估的。换句话说,只要您可以评估足够的集成点,对集成域的细分进行正交总是最有效的方法。在某些情况下,您拥有一个高维积分,即使人们对单个积分细分的积分点的收敛阶次较差,也无法再使用这些积分来评估积分点。


1

尝试嵌套的双指数正交函数(请参见Ooura的实现)。该技术使用变量变换,使变换后的被积数在边界处表现得非常平滑,并且非常有效地处理边界处的奇点。在他的网站上,关于DE正交的参考文献列表也非常好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.