如何数值计算残渣?


15

我需要计算以下积分: 其中是一个矩阵(一个粒子的动能和势能以基数表示),是一个依赖于的矩阵(一个单粒子多-体格林函数),轮廓积分是左半圆。积分在负实轴上具有极点,因此评估起来很昂贵。计算这种积分最有效的方法是什么?

1个2π一世CFËdË
fË=Ť[RH+ËGË
HGËFË

到目前为止,这是我的研究:

1)我使用高斯积分,我的积分路径是一个矩形。我固定了左侧和右侧(即宽度),并以高度(在实轴上方和下方)播放,因此对于给定的积分顺序,我可以获得最高的精度。例如,对于20阶,如果高度太大,则精度会下降(很明显),但是如果它太小,则精度也会下降(我的理论是,随着高度的增加,极点周围需要越来越多的点0)。我将功能的最佳高度定为0.5。

2)然后我将矩形的右侧设置为E0,通常为E0 = 0,但也可以是E0 = -0.2或类似的值。

3)我开始将矩形的左侧移到左侧,并为每一步进行积分顺序收敛,以确保每个矩形的积分都完全收敛。通过增加宽度,我最终在无穷左半圆的极限处得到了一个收敛值。

计算确实很慢,而且对于大宽度也不太准确。一种改进是将长宽度简单地划分为“元素”,并对每个元素使用高斯积分(就像在FE中一样)。

另一个选择是在每个极点周围集成一个小圆圈并将其汇总。问题:

a)如何从数值上找到函数的极点?它应该很健壮。我唯一知道的是它们在负实轴上。对于其中一些(但不是全部),我也知道一个很好的初步猜测。是否存在适用于任何解析函数?还是取决于的实际形式?FËFËFË

b)一旦我们知道了极点,哪种数值方案最适合积分围绕它的小圆圈?我应该在圆上使用高斯积分吗?还是应该使用点的均匀分布?

另一个选择可能是,一旦有了a)我就知道了极点,那么可能会有一些半解析的方式来获得残基,而无需复杂的集成。但是现在,我很乐意仅优化轮廓集成。


1
您是否检查过科恩(2007年)撰写的《拉普拉斯变换反演的数值方法》一书?IIRC的QUADPACK名人头的Robert Piessens也致力于这个话题。
GertVdE 2012年

Answers:


7

我可以为您的第一个问题提供建议:如果您知道极点在实轴上某处,则可以使用Rational插值/逼近相当有效地定位它们。这等于找到多项式和使得pXqX

FXpXqX

对于在一些时间间隔。的极点与的根匹配。XFX qX

有理插值/逼近可能是一件棘手的事情,但是我最近与人合着了一篇关于稳定算法的论文,该论文使用SVD计算它们。本文包含Matlab代码实现的算法,以及其更广泛的版本可用的功能ratinterpChebfun项目,其中我的开发者之一。

对于您的第二个问题,本文可能会有用。


感谢所有的提示!这是Bengt Fornberg论文的代码netlib.org/toms/579。不幸的是,有一些数字错误,因为这是我得到的输出:gist.github.com/2942970#file_output。因此,我将不得不重新实现或调试它。Chebfun链接给了我404(几个月前我尝试过,结果相同,所以也许在美国根本不起作用)。
昂德里杰·塞蒂克

@OndřejČertík:我从来没有亲自使用过TOMS 579代码,所以我不知道该告诉您什么错误。至于Chebfun主页,您可以尝试“搜索”它并查看它是否有效吗?
2012年

Google找到Chebfun主页并显示缓存的版本。但是,当我点击页面上的,这是我得到:pastehtml.com/view/c1ts4h3ct.html
昂德里杰·塞蒂克

尝试使用其他浏览器?或来自其他ISP。该网站从这里正常工作(在美国)
斯特凡诺

我尝试了Firefox和Chrome。因此,必须由我的ISP来完成。奇怪的。
昂德里杰·塞蒂克
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.