Cal*_*vin 8 matlab wolfram-mathematica numerical-integration
我想以数字方式整合以下内容:

哪里

和a,b并且?是常量,为简单起见,都可以设置为1.
Matlab使用dblquad,Mathematica使用NIntegrate都不能处理分母创建的奇点.由于它是双积分,我无法指定Mathematica中奇点的位置.
我确信它不是无限的,因为这个积分是基于扰动理论而没有
 
 
之前已被发现(只是不是我,所以我不知道它是如何完成的).
有任何想法吗?
(1)如果您提供使用的显式代码,将会很有帮助.这样,其他人(读:我)不需要单独编码.
(2)如果存在积分,则必须为零.这是因为当你交换x和y时你否定了n(y)-n(x)因子,但保持其余部分相同.然而,集成范围对称意味着只需重命名变量,因此它必须保持不变.
(3)这里有一些代码表明它将为零,至少如果我们将奇异部分和它周围的一个小波段归零.
a = 1;
b = 1;
beta = 1;
eps[x_] := 2*(a-b*Cos[x])
n[x_] := 1/(1+Exp[beta*eps[x]])
delta = .001;
pw[x_,y_] := Piecewise[{{1,Abs[Abs[x]-Abs[y]]>delta}}, 0]
我们在被积函数中加1,只是为了避免结果接近于零的精度问题.
NIntegrate[1+Cos[(x+y)/2]^2*(n[x]-n[y])/(eps[x]-eps[y])^2*pw[Cos[x],Cos[y]],
  {x,-Pi,Pi}, {y,-Pi,Pi}] / (4*Pi^2)
我得到下面的结果.
NIntegrate::slwcon: 
   Numerical integration converging too slowly; suspect one of the following:
    singularity, value of the integration is 0, highly oscillatory integrand,
    or WorkingPrecision too small.
NIntegrate::eincr: 
   The global error of the strategy GlobalAdaptive has increased more than 
    2000 times. The global error is expected to decrease monotonically after a
     number of integrand evaluations. Suspect one of the following: the
     working precision is insufficient for the specified precision goal; the
     integrand is highly oscillatory or it is not a (piecewise) smooth
     function; or the true value of the integral is 0. Increasing the value of
     the GlobalAdaptive option MaxErrorIncreases might lead to a convergent
     numerical integration. NIntegrate obtained 39.4791 and 0.459541
     for the integral and error estimates.
Out[24]= 1.00002
这是一个很好的迹象,表明纯粹的结果将为零.
(4)用cx代替cos(x)和cy代替cos(y),并为了收敛评估而去除外来因子,给出下面的表达式.
((1 + E^(2*(1 - cx)))^(-1) - (1 + E^(2*(1 - cy)))^(-1))/
 (2*(1 - cx) - 2*(1 - cy))^2
以cx为中心的cy系列展开表示1阶的极点.所以它看起来确实是一个奇异的积分.
Daniel Lichtblau
| 归档时间: | 
 | 
| 查看次数: | 8255 次 | 
| 最近记录: |