avatar
如何高速计算这个积分# Computation - 科学计算
m*n
1
Integrate[Exp[-a^2*x^2]*Sin[x]^2/(x-n Pi)/(x-m Pi), {x,-Infinity,Infinity}]
m,n是整数。
a= 10^(-4)-10^(-3)
avatar
h*o
2
有个想法,有待验证。
把Sin[x]^2/(x-n Pi)/(x-m Pi)在x=0泰勒展开成Sigma[a_k*x^k]
k 是奇数的项不用管(奇函数,-Infinity to Infinity integration = 0)
k 是偶数的项和Exp[-a^2*x^2]相乘积分可以表达为gamma函数(Gamma[p+1/2]
的形式)。
××××如果这个积分序列是收敛的,就可以用这种方法快速的算这个积分
的数值解。××××
幸好这是数值计算,不需要严格证明,所以验证还是不难的。
至于泰勒展开,可以用mathematica。

【在 m****n 的大作中提到】
: Integrate[Exp[-a^2*x^2]*Sin[x]^2/(x-n Pi)/(x-m Pi), {x,-Infinity,Infinity}]
: m,n是整数。
: a= 10^(-4)-10^(-3)

avatar
m*n
3
这样处理,本积分(a= 10^(-4)-10^(-3)) 收敛太慢了。
如果a>>1,可以这么处理。


{x,-Infinity,Infinity}]

【在 h***o 的大作中提到】
: 有个想法,有待验证。
: 把Sin[x]^2/(x-n Pi)/(x-m Pi)在x=0泰勒展开成Sigma[a_k*x^k]
: k 是奇数的项不用管(奇函数,-Infinity to Infinity integration = 0)
: k 是偶数的项和Exp[-a^2*x^2]相乘积分可以表达为gamma函数(Gamma[p+1/2]
: 的形式)。
: ××××如果这个积分序列是收敛的,就可以用这种方法快速的算这个积分
: 的数值解。××××
: 幸好这是数值计算,不需要严格证明,所以验证还是不难的。
: 至于泰勒展开,可以用mathematica。

avatar
m*n
4
This one gives the conditions for the method by hanzo, thus it should be
marked.

【在 m****n 的大作中提到】
: 这样处理,本积分(a= 10^(-4)-10^(-3)) 收敛太慢了。
: 如果a>>1,可以这么处理。
:
:
: {x,-Infinity,Infinity}]

avatar
c*e
5
这个为什么是奇函数呢?看不懂,呵呵

【在 h***o 的大作中提到】
: 有个想法,有待验证。
: 把Sin[x]^2/(x-n Pi)/(x-m Pi)在x=0泰勒展开成Sigma[a_k*x^k]
: k 是奇数的项不用管(奇函数,-Infinity to Infinity integration = 0)
: k 是偶数的项和Exp[-a^2*x^2]相乘积分可以表达为gamma函数(Gamma[p+1/2]
: 的形式)。
: ××××如果这个积分序列是收敛的,就可以用这种方法快速的算这个积分
: 的数值解。××××
: 幸好这是数值计算,不需要严格证明,所以验证还是不难的。
: 至于泰勒展开,可以用mathematica。

avatar
h*o
6
首先,还是那句话,我没实际做,只是凭空想的,可能想的和实际上的差别很大。
有个问题是,你这里的收敛慢是指每个gamma函数积出来的时候都会除以一个
a^k, 而a很小,所以最后连加的每项都很大,所以趋进于0很慢,是吗?
我是在想,也许泰勒展开项的符号是正负交错的,如果把几项合并,也许
可以正负抵消一些,导致他们的和会比较快的趋近于0。
这仍然是我的一个空想,现实往往不会这么完美。这个问题我估摸着很象解ODE
里面的stiff问题,你可以查一查这个方面的东东。如果实在不行了,不妨试试
我这个方法,毕竟是一些四则混合运算,比普通的硬积还是要快些的吧。

【在 m****n 的大作中提到】
: 这样处理,本积分(a= 10^(-4)-10^(-3)) 收敛太慢了。
: 如果a>>1,可以这么处理。
:
:
: {x,-Infinity,Infinity}]

avatar
h*o
7
exp[-a^2*x^2]*x^k, k如果是奇数,这个当然是奇函数了

【在 c*******e 的大作中提到】
: 这个为什么是奇函数呢?看不懂,呵呵
avatar
m*n
8
对于本积分,这样处理有两个问题
1。Gamma函数值很大,这样计算累计误差很大。
2。收敛慢,是由于三角函数的Taylor展开对大综量慢收敛。对于本积分,由于a很小,导
致积分区间很大,所以,级数展开效率不开。如果a远大于1,有效积分区间[-1,1],三
角展开收敛较快,但是实际计算时,仍然要使用计算正负交错级数的Euler公式。
这个积分可以转化到[0,Pi]区间计算,工作量大一些,但是我现在不考虑它了,反正累得
是计算机。

【在 h***o 的大作中提到】
: 首先,还是那句话,我没实际做,只是凭空想的,可能想的和实际上的差别很大。
: 有个问题是,你这里的收敛慢是指每个gamma函数积出来的时候都会除以一个
: a^k, 而a很小,所以最后连加的每项都很大,所以趋进于0很慢,是吗?
: 我是在想,也许泰勒展开项的符号是正负交错的,如果把几项合并,也许
: 可以正负抵消一些,导致他们的和会比较快的趋近于0。
: 这仍然是我的一个空想,现实往往不会这么完美。这个问题我估摸着很象解ODE
: 里面的stiff问题,你可以查一查这个方面的东东。如果实在不行了,不妨试试
: 我这个方法,毕竟是一些四则混合运算,比普通的硬积还是要快些的吧。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。